-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
This issue is tracking the tasks that should be implemented after the Kubernetes minor release has been released.
Tasks
Prerequisites:
- Decide which Cluster API release series will support the new Kubernetes version
- If feasible we usually cherry-pick the changes back to the latest release series.
Supporting managing and running on the new Kubernetes version
This section contains tasks to update our book, e2e testing and CI to use and test the new Kubernetes version
as well as changes to Cluster API that we might have to make to support the new Kubernetes version. All of these
changes should be cherry-picked to all release series that will support the new Kubernetes version.
- Modify quickstart and CAPD to use the new Kubernetes release:
- Bump the Kubernetes version in:
test/*: search for occurrences of the previous Kubernetes versionTiltfile
- Ensure the latest available kind version is used (including the latest images for this kind release)
- Add new images in the kind mapper.go.
- See the kind releases page for the list of released images.
- Set new default image for the test framework
- Add new images in the kind mapper.go.
- Verify the quickstart manually
- Bump
InitWithKubernetesVersionandWorkloadKubernetesVersioninclusterctl_upgrade_test.go- Note: Only bump for Cluster API versions that will support the new Kubernetes release.
- Prior art: ✨ v1.28: Prepare quickstart, capd and tests for the new release including kind bump #9160
- Bump the Kubernetes version in:
- Ensure the jobs are adjusted to provide test coverage according to our support policy:
- For the main branch:
- periodics:
- Drop the oldest upgrade job as the oldest Kubernetes minor version is now out of support.
- Add new upgrade job which upgrades from the previous to the new Kubernetes version.
- periodics & presubmits:
- Bump
KUBERNETES_VERSION_MANAGEMENTof thee2e-mink8sjob to the new minimum supported management cluster version. - Bump
KUBEBUILDER_ENVTEST_KUBERNETES_VERSIONof thetest-mink8sjobs to the new minimum supported management cluster version. - Adjust the
-latestupgrade job to upgrade from the new Kubernetes to the next Kubernetes version.
- Bump
- periodics:
- For the release branch of the latest supported Cluster API minor release:
- periodics & presubmits:
- Adust the
-latestupgrade jobs to upgrade to the new Kubernetes version instead of latest.
- Adust the
- periodics & presubmits:
- Note: Also check if
ETCD_VERSION_UPGRADE_TOorCOREDNS_VERSION_UPGRADE_TOneeds to change for the upgrades jobs to the new or next Kubernetes version.- For etcd, see the
DefaultEtcdVersionkubeadm constant: e.g. for v1.28.0 - For coredns, see the
CoreDNSVersionkubeadm constant:e.g. for v1.28.0
- For etcd, see the
- Prior art: CAPI: bump jobs for v1.28 kubernetes/test-infra#30347 CAPI: fix tabnames and release-1.4 upgrade presubmit kubernetes/test-infra#30406 CAPI fix main mink8s presubmit to also refer the correct KUBERNETES_VERSION_MANAGEMENT kubernetes/test-infra#30407
- For the main branch:
- Update book:
- Update supported versions in
versions.md - Update job documentation in
jobs.md - Prior art: 📖 book: Update versions doc adding Kubernetes 1.28 + prowjob documentation #9161
- Update supported versions in
- Issues specific to the Kubernetes minor release:
- RBAC kubeadm:cluster-admins must be applied before CAPI triggers the upgrade to kubeadm 1.29 machines. (assuming change is merged for 1.29. 🌱 Support admin config for Kubeadm v1.29 #9682
Using new Kubernetes dependencies
This section contains tasks to update Cluster API to use the latest Kubernetes Go dependencies and related topics
like using the right Go version and build images. These changes are only made on the main branch. We don't
need them in older releases as they are not necessary to manage workload clusters of the new Kubernetes version or
run the Cluster API controllers on the new Kubernetes version.
-
Ensure there is a new controller-runtime minor release which uses the new Kubernetes Go dependencies.
-
Update our Prow jobs for the
mainbranch to use the correctkubekins-e2eimage- It is recommended to have one PR for presubmit and one for periodic jobs to reduce the risk of breaking the periodic jobs.
- PRs: CAPI: bump main presubmits kubekins image to v1.29 kubernetes/test-infra#31450 CAPI: bump main presubmits kubekins image to v1.29 kubernetes/test-infra#31450
- Prior art: presubmit jobs: Upgrade cluster-api kubekins-e2e version (v20220829-d5650c79bf-1.24 -… kubernetes/test-infra#27311
- Prior art: periodic jobs: Upgrade cluster-api kubekins-e2e version for periodics-main (v2022082… kubernetes/test-infra#27326
-
Bump the Go version in Cluster API: (if Kubernetes is using a new Go minor version)
- Search for the currently used Go version across the repository and update it
- We have to at least modify it in:
hack/ensure-go.sh,.golangci.yml,cloudbuild*.yaml,go.mod,Makefile,netlify.toml,Tiltfile - PR: 🌱 Bump Go to 1.21.5 #9900
- Prior art: 🌱 Upgrade golang version (1.18.3 -> 1.19.0) #7135
-
Bump controller-runtime ⚠️ Bump to controller-runtime v0.17.0 & k8s.io v0.29 #9964
-
Bump controller-tools 🌱 Bump controller-tools to v0.14 #9987
-
Bump the Kubernetes version used in integration tests via
KUBEBUILDER_ENVTEST_KUBERNETES_VERSIONinMakefile- Note: This PR should be cherry-picked as well. It is part of this section as it depends on kubebuilder/controller-runtime
releases and is not strictly necessary for Supporting managing and running on the new Kubernetes version. - PRs: 🌱 Bump kubebuilder envtest to 1.29.0 #10013 [release-1.6] 🌱 Bump kubebuilder envtest to 1.29.0 #10014
- Prior art: 🌱 Update kubebuilder envtest (1.24.2 -> 1.25.0) #7193
- Note: This PR should be cherry-picked as well. It is part of this section as it depends on kubebuilder/controller-runtime
-
Bump conversion-gen via
CONVERSION_GEN_VERinMakefile -
ensure versions.md on main & release-1.6 is up-to-date after 🌱 Provide faster support for new k8s minor releases #9971