Skip to content

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 <651224+MasonM@users.noreply.github.com>
Signed-off-by: Mason Malone <651224+MasonM@users.noreply.github.com>
Signed-off-by: Mason Malone <651224+MasonM@users.noreply.github.com>
Signed-off-by: Mason Malone <651224+MasonM@users.noreply.github.com>
Signed-off-by: Mason Malone <651224+MasonM@users.noreply.github.com>
@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.

Signed-off-by: Mason Malone <651224+MasonM@users.noreply.github.com>
@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