Repository navigation
feat: support EKS 1.36 and 1.37 - #199
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Raises the latest supported Kubernetes version to 1.37 and the minimum to 1.32, and adds checks for the 1.36 changes that EKS upgrade insights do not report. Both new versions are generally available on EKS (1.36 on 2026-06-02, 1.37 on 2026-10-01).
Supported versions
LATESTgoes from 35 to 37, anddata.yamlgains release links for 1.36 and 1.37. Neither has a section in the upstream deprecation guide, so neither has adeprecation_url.MINIMUMgoes from 30 to 32, so only versions EKS still supports are accepted. Extended support ended for 1.30 on 2026-07-23 and ends for 1.31 on 2026-11-26. The 1.30 to 1.32 entries leavedata.yaml, since the earliest possible target is now 1.33. No check is newly retired.data.yamlhas release data for every target fromMINIMUM + 1toLATEST.K8S012 correction
K8S012 (kube-proxy IPVS mode) used to say IPVS is removed in 1.36 and became a required fix for targets of 1.36 and later. IPVS was not removed in 1.36. The 1.37 release notes say it logs a deprecation warning, is expected to be off by default in 1.40, and is expected to be removed in 1.43 (KEP-5495). Without this fix, raising
LATESTwould have reported a blocker that does not exist. The check now stays at recommended for every target.New checks, from 1.36 targets
None of these appear in the published EKS upgrade insight checks. The insights permissions cannot read pods or Services, so EKS cannot see the last two at all.
Node. It is node level, so it has no ignore support. Fargate and EKS Auto Mode nodes are skipped, because AWS manages their runtime.gitRepovolumes, which the kubelet refuses to run from 1.36 (KEP-5040). It walks the same workload pod templates as the other workload checks and supportsignore.spec.externalIPs, deprecated in 1.36 with removal planned for 1.43 (KEP-5707). This adds a cluster-wide Services list, made only for targets of 1.36 and later, so eksup needs list access to Services for those targets. It supportsignoreby Service name and namespace.1.37 playbook notes
Two 1.37 changes depend on CSI driver settings and on kubelet flags, which the Kubernetes API does not expose: the SELinux mount default and the deprecated cAdvisor flags. Rather than checks,
data.yamlgains an optional per-versionnoteslist, shown in the playbook's pre-upgrade review list. 1.37 carries one note for each change.Resolves #188
Local gate: nightly fmt, clippy -D warnings, cargo test --all and xtask generate-all --check pass.