Skip to content

Refuse to run on incompatible Kubernetes versions #3089

Description

@icelynjennings

Description

What problem are you trying to solve?

Currently, Karpenter pods will still run and report as Running in Kubernetes versions older than fully supported by Karpenter.

Example log inside a Running Karpenter pod, self-reporting as healthy:

{
  "level": "ERROR",
  "time": "2026-06-13T14:27:09.909Z",
  "logger": "controller",
  "message": "Reconciler error",
  "commit": "c8c45c1",
  "controller": "providers.version",
  "namespace": "",
  "name": "",
  "reconcileID": "b5811ff0-e973-4655-ad0f-b1f733be20d4",
  "version": "1.34",
  "error": "updating version, validating kubernetes version, karpenter is not compatible with kubernetes version (version=1.34)"
}

I appreciate that Karpenter may still be generally OK to run this way on older clusters, hence why it doesn't currently immediately self-crash, permitting itself instead to keep working with a limited capacity.

I would love to have an option to remove Karpenter's ability to "still keep running regardless" on older Kubernetes versions, entirely.

We want to cognitively eliminate all problem surfaces that could ever occur when running Karpenter with any incompatibility.

How important is this feature to you?

Very.

We have had several situations where teammates assume that a Running Karpenter will work at a full capacity, but did not additionally check for the presence of the above incompatibility log.

If Karpenter immediately self-reported as unhealthy instead, we would feel more assured that this would get picked up by coworkers immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.needs-priorityneeds-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions