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.
- We will cherry-pick into release-v1.4. Which means v1.4.x and v1.5.0 will support v1.27.
Supporting managing and running on the new Kubernetes version (@furkatgofurov7)
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)
- Verify the quickstart manually
- Prior art: ⚠️ Use Kubernetes 1.25 in Quick Start docs and CAPD. #7156
- bump
InitWithKubernetesVersion
inclusterctl_upgrade_test.go
- PRs:
- Bump the Kubernetes version in:
- Ensure the jobs are adjusted to provide test coverage according to our support policy:
- For the main branch and the release branch of the latest supported Cluster API minor release:
- Add new periodic upgrade job.
- Adjust presubmit jobs so that we have the latest upgrade jobs available on PRs.
- For the main branch:
- periodics & presubmits:
- Bump
KUBEBUILDER_ENVTEST_KUBERNETES_VERSION
of thetest-mink8s
jobs to the new minimum supported management cluster version.
- Bump
- periodics:
- Bump
KUBERNETES_VERSION_MANAGEMENT
of thee2e-mink8s
job to the new minimum supported management cluster version. - Drop the oldest upgrade job as the oldest Kubernetes minor version is now out of support.
- Bump
- periodics & presubmits:
- Prior art: Bump cluster-api jobs for v1.25/v1.26 kubernetes/test-infra#27421
- PR: Cluster API: Bump CAPI jobs for k8s 1.27 kubernetes/test-infra#29295
- For the main branch and the release branch of the latest supported Cluster API minor release:
- Update book:
- Update supported versions in
versions.md
- Update job documentation in
jobs.md
- Prior art: 🌱 Update versions doc adding Kubernetes 1.25 #7194 📖 docs update jobs.md #7196
- Update supported versions in
- Issues specific to the Kubernetes minor release:
- Sometimes there are adjustments that we have to make in Cluster API to be able to support
a new Kubernetes minor version. Please add these issues here when they are identified.
- Sometimes there are adjustments that we have to make in Cluster API to be able to support
Using new Kubernetes dependencies (@Prajyot-Parab)
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
main
branch to use the correctkubekins-e2e
image- It is recommended to have one PR for presubmit and one for periodic jobs to reduce the risk of breaking the periodic jobs.
- 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
- presubmit jobs PR: Upgrade cluster-api kubekins-e2e version for persubmits-main (v20230406-23cb1879e3-1.26 - v20230406-23cb1879e3-1.27) kubernetes/test-infra#29313
- periodic jobs PR: Upgrade cluster-api kubekins-e2e version for periodics-main (v20230406-23cb1879e3-1.26 - v20230406-23cb1879e3-1.27) kubernetes/test-infra#29314
- 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
- Prior art: 🌱 Upgrade golang version (1.18.3 -> 1.19.0) #7135
- PR: 🌱Upgrade golang version (1.19.6 -> 1.20.3) #8527
- Bump controller-runtime (@sbueringer)
- Bump controller-tools
- Bump the Kubernetes version used in integration tests via
KUBEBUILDER_ENVTEST_KUBERNETES_VERSION
inMakefile
- 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. - Prior art: 🌱 Update kubebuilder envtest (1.24.2 -> 1.25.0) #7193
- PR: 🌱Update kubebuilder envtest (1.26.0 -> 1.27.1) #8599
- 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_VER
inMakefile