Skip to content

ci: drop support for k8s 1.29 and centralize config #14196

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Feb 17, 2025

Conversation

MasonM
Copy link
Member

@MasonM MasonM commented Feb 15, 2025

Motivation

This drops support for Kubernetes 1.29, which will be end-of-life in 2 weeks (https://endoflife.date/kubernetes). This will allow us to take advantage of new features in 1.30, like ValidatingAdmissionPolicies (#14045). See #14142 (comment) for previous discussions.

Also, I centralized the config for defining the tested Kubernetes versions so that we don't duplicate that in both ci-build.yaml and pre-build.sh.

Modifications

Copied the config changes from #14176 and bumped the min version in hack/k8s-versions.sh.

An alternative to hack/k8s-version.sh would be to move all the logic for installing k3d/k3s/kubectl into the Makefile and then defining versions there, which would arguably be cleaner, but that'd require a lot more changes.

Verification

Rebuilt DevContainer and verified everything came up successfully:

$ kubectl version
Client Version: v1.30.9
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.9+k3s1

Documentation

Docs changes will be handled in #14176

The `Kubernetes Compatibility Matrix` table at https://argo-workflows.readthedocs.io/en/latest/releases/
is misleading, since it isn't actually representing what versions are
being tested ([Slack conversation](https://cloud-native.slack.com/archives/C0510EUH90V/p1732621744050569)).

This makes it so that table is autogenerated for every release branch,
while for `latest` it'll show a message telling the user to switch to a
version. That's identical to what ArgoCD is currently doing, e.g.:
* https://argo-cd.readthedocs.io/en/latest/operator-manual/installation/#tested-versions
* https://argo-cd.readthedocs.io/en/release-2.9/operator-manual/installation/#tested-versions

See argoproj/argo-cd#14180 for the corresponding
PR on Argo CD, which is what I based this on, but I made several
simplifications (e.g. instead of using switching to old release branches
in `supported-versions.sh`, I had it just use `git grep` to directly
extract the relevant version data).

I also updated `.devcontainer/pre-build.sh` to use the same
`hack/k8s-versions.sh` script for determining the k3d version, which
eliminates the need to update that file when upgrading Kubernetes.

Signed-off-by: Mason Malone <[email protected]>
Signed-off-by: Mason Malone <[email protected]>
Signed-off-by: Mason Malone <[email protected]>
@MasonM MasonM added the area/build Build or GithubAction/CI issues label Feb 15, 2025
@MasonM MasonM marked this pull request as ready for review February 15, 2025 20:58
Copy link
Member

@Joibel Joibel left a comment

Choose a reason for hiding this comment

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

This needs a fixup, but looks good to me.

@Joibel Joibel merged commit bec23ac into argoproj:main Feb 17, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build Build or GithubAction/CI issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants