posit-dev / posit-dev/ptd

Upgrade Karpenter from 1.6.0 to 1.9+ (required for Kubernetes 1.36)

Open
#281 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
7
Forks
2
Avg merge
1d 15h
Merged PRs (30d)
3

Description

Summary

Upgrade the default Karpenter version from 1.6.0 to 1.9+ to support the planned Kubernetes 1.36 upgrade on EKS clusters.

Why this is needed

Karpenter publishes an explicit compatibility matrix that bounds each release to a supported Kubernetes version range. Karpenter 1.6.0 (released July 2025) was built and tested for Kubernetes 1.34–1.35. It is outside the supported range for Kubernetes 1.36, which risks node provisioning failures and undefined scheduling behaviour on upgraded clusters.

Karpenter 1.9+ is the minimum version with declared Kubernetes 1.36 support.

Relevant links:

⚠️ Backward compatibility — ordering constraint

Unlike the other pre-upgrade component changes, Karpenter 1.9.x cannot be deployed in place on clusters still running Kubernetes 1.33 or 1.34. The Karpenter compatibility matrix shows:

Karpenter version Supported K8s range
1.6.0 1.34 – 1.35
1.9.x 1.35 – 1.36

This means the upgrade sequence for most EKS clusters must be:

  1. Upgrade Kubernetes to 1.35 (if not already there)
  2. Upgrade Karpenter to 1.9+
  3. Upgrade Kubernetes to 1.36

For any EKS cluster already running K8s 1.35, step 1 can be skipped and Karpenter can be upgraded first.

Breaking changes in the upgrade

Between Karpenter 1.6 and 1.9, review the upgrade guide for any API or configuration changes. The v1beta1 → v1 API migration (NodePool, NodeClaim, EC2NodeClass) should already be complete as of 1.6, but verify no deprecated fields are in use.

Acceptance criteria

  • Default Karpenter version updated to 1.9.x (or latest compatible) in workload.go
  • Upgrade sequence documented: K8s → 1.35, then Karpenter → 1.9+, then K8s → 1.36
  • Verified working on a staging EKS cluster running K8s 1.35 before rolling to production

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in workload.go and inspect how the default Karpenter version is configured, then review the linked Karpenter compatibility matrix and upgrade guide for changes between 1.6 and 1.9. Confirm the upgrade sequence through Kubernetes 1.35, Karpenter 1.9+, and Kubernetes 1.36, and validate the change on a staging EKS 1.35 cluster before production rollout.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, go, kubernetes
Domain
cloud, devops, infrastructure
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.