Skip to content

fix: Update kubeVersion to allow pre-releases#842

Merged
toddbaert merged 2 commits into
open-feature:mainfrom
karel1980:patch-1
May 27, 2026
Merged

fix: Update kubeVersion to allow pre-releases#842
toddbaert merged 2 commits into
open-feature:mainfrom
karel1980:patch-1

Conversation

@karel1980
Copy link
Copy Markdown
Contributor

This PR

Makes helm accept pre-releases.

We're trying to upgrade from 0.8.9 to 0.9.1 on EKS (v1.33.10-eks-bbe087e). Unfortunately Helm's semver logic treats v1.33.10-eks-bbe087e as lower than 1.29.0 so we're stuck.

Related Issues

Notes

Alternative:
Unferified but IIUC Helm would accept v1.33.10+eks-bbe087e (+ instead of -). I don't think I'll be able to convince AWS of this though.

Follow-up Tasks

How to test

I guess the easiest way would be to try to install this on an EKS cluster.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the kubeVersion in Chart.yaml to >=1.29.0-0 to support EKS pre-release versions. However, the reviewer points out that due to Helm's SemVer implementation, this constraint will only match pre-releases for version 1.29.0 and will fail for higher versions like 1.33.10-eks-xxx. It is recommended to remove the kubeVersion field to ensure compatibility across EKS versions.

# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: "v0.9.1" # x-release-please-version
kubeVersion: ">=1.29.0"
kubeVersion: ">=1.29.0-0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The proposed change kubeVersion: ">=1.29.0-0" does not achieve the goal of supporting EKS versions like v1.33.10-eks-bbe087e mentioned in the PR description.

Helm uses the Masterminds/semver library, which follows a strict rule for pre-releases: a range constraint will only match a pre-release version if the range itself includes a pre-release identifier and the major, minor, and patch versions match exactly.

Consequently:

  • >=1.29.0-0 will match 1.29.0-eks-xxx.
  • >=1.29.0-0 will not match 1.29.1-eks-xxx or 1.33.10-eks-xxx because the minor/patch versions differ.

Since EKS versions always include a pre-release suffix (e.g., -eks-xxx), they are always treated as pre-releases by Helm. This constraint will therefore block installations on any EKS cluster where the version is not exactly 1.29.0. To properly support EKS across multiple Kubernetes versions, the most common approach is to remove the kubeVersion field entirely, as Helm's SemVer implementation does not currently support a range that matches all pre-releases across different minor or patch versions.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FTR I don't agree with this analysis. I've tested it, adding -0 does makes it accept 1.33.10-eks-xxx

Copy link
Copy Markdown
Member

@toddbaert toddbaert May 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the Masterminds/semver docs:

>=1.2.3 will skip pre-releases when looking at a list of releases while >=1.2.3-0 will evaluate and find pre-releases.

They have tests that seem to assert that this should fix your issue, and it seems other popular projects do similarly as well.

So, ya, I think the bot is wrong. 🤖

Signed-off-by: Karel Vervaeke <karel@vervaeke.info>
@karel1980 karel1980 changed the title Update kubeVersion to allow pre-releases fix: Update kubeVersion to allow pre-releases May 11, 2026
@karel1980
Copy link
Copy Markdown
Contributor Author

Would you have time to review this? If you disagree, I can join you on the CNCF slack to discuss this and see if there are better solutions / workarounds

@toddbaert toddbaert merged commit b0506b3 into open-feature:main May 27, 2026
15 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants