This issue is tracking the tasks that should be implemented after the Kubernetes minor release has been released.
Tasks
Note: 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.
[ ] Continuously modify CAPD to use early versions of the upcoming Kubernetes release (betas and rcs):
Bump the Kubernetes version in test/* except for test/infrastructure/kind/*.
[ ] Ensure the jobs are adjusted to provide test coverage according to our support policy:
At the .versions section in the cluster-api-prowjob-gen.yaml file in test-infra:
Add a new entry for the new Kubernetes version
Adjust the released Kubernetes's version entry to refer stable-1.<minor> instead of ci/latest-1.<minor>
Check and update the versions for the keys etcd and coreDNS if necessary:
For etcd, see the DefaultEtcdVersion kubeadm constant: e.g. for v1.28.0
For coredns, see the CoreDNSVersion kubeadm constant:e.g. for v1.28.0
For the .branches.main section in the cluster-api-prowjob-gen.yaml file in test-infra:
For the .upgrades section:
Drop the oldest upgrade
Add a new upgrade entry from the previous to the new Kubernetes version
Bump the version set at .kubernetesVersionManagement to the new minimum supported management cluster version (This is the image version available as kind image).
Bump the version set at .kubebuilderEnvtestKubernetesVersion to the new minimum supported management cluster version.
Run make generate-test-infra-prowjobs to generate the resulting prowjob configuration:
TEST_INFRA_DIR=../../k8s.io/test-infra make generate-test-infra-prowjobs
[ ] 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.
[ ] Cherry-pick above PR to the latest release branch.
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 ProwJobs for the main branch to use the kubekins-e2e with the correct Kubernetes version via cluster-api-prowjob-gen.yaml and by running make generate-test-infra-prowjobs.
It is recommended to have one PR for presubmit and one for periodic jobs to reduce the risk of breaking the periodic jobs.
This issue is tracking the tasks that should be implemented after the Kubernetes minor release has been released.
Tasks
Note: 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.
[ ] Continuously modify CAPD to use early versions of the upcoming Kubernetes release (betas and rcs):
test/*
except fortest/infrastructure/kind/*
.[ ] Modify CAPD to use the new Kubernetes release after it is GA:
test/*
except fortest/infrastructure/kind/*
.[ ] Ensure the jobs are adjusted to provide test coverage according to our support policy:
.versions
section in thecluster-api-prowjob-gen.yaml
file in test-infra:stable-1.<minor>
instead ofci/latest-1.<minor>
etcd
andcoreDNS
if necessary:DefaultEtcdVersion
kubeadm constant: e.g. for v1.28.0CoreDNSVersion
kubeadm constant:e.g. for v1.28.0.branches.main
section in thecluster-api-prowjob-gen.yaml
file in test-infra:.upgrades
section:.kubernetesVersionManagement
to the new minimum supported management cluster version (This is the image version available as kind image)..kubebuilderEnvtestKubernetesVersion
to the new minimum supported management cluster version.make generate-test-infra-prowjobs
to generate the resulting prowjob configuration:[ ] Update book:
versions.md
[ ] Issues specific to the Kubernetes minor release:
Bump quickstart and kind image references in CAPD
Prerequisites:
The target Kubernetes version is GA
There is a new kind version with/or a new set of kind images for the target Kubernetes version
[ ] Bump quickstart and kind image references in CAPD:
docs/*
Tiltfile
[ ] Cherry-pick above PR to the latest release branch.
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.
main
branch to use thekubekins-e2e
with the correct Kubernetes version via cluster-api-prowjob-gen.yaml and by runningmake generate-test-infra-prowjobs
.hack/ensure-go.sh
,.golangci.yml
,cloudbuild*.yaml
,go.mod
,Makefile
,netlify.toml
,Tiltfile
SETUP_ENVTEST_VER
inMakefile
CONTROLLER_GEN_VER
inMakefile
CONVERSION_GEN_VER
inMakefile
KUBEBUILDER_ENVTEST_KUBERNETES_VERSION
inMakefile