Skip to content

Commit

Permalink
📖 decouple the support new kubernetes version process from kind relea…
Browse files Browse the repository at this point in the history
…ses (#10414)

* github: adjust kubernetes bump template to decouple kind release and kubernetes version support

* review fixes

* review fixes

* review fixes

* review fixes
  • Loading branch information
chrischdi authored Apr 23, 2024
1 parent 858a870 commit 0b61de1
Showing 1 changed file with 35 additions and 21 deletions.
56 changes: 35 additions & 21 deletions .github/ISSUE_TEMPLATE/kubernetes_bump.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,20 @@ This issue is tracking the tasks that should be implemented **after** the Kubern

## 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.
**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.

* [ ] Modify quickstart and CAPD to use the new Kubernetes release:
* Bump the Kubernetes version in:
* `test/*`: search for occurrences of the previous Kubernetes version
* `Tiltfile`
* Ensure the latest available kind version is used (including the latest images for this kind release)
* Add new images in the [kind mapper.go](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L79).
* See the [kind releases page](https://github.com/kubernetes-sigs/kind/releases) for the list of released images.
* Set new default image for the [test framework](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/framework/bootstrap/kind_provider.go#L40)
* If code changes are required for CAPD to incorporate the new Kind version, update [kind latestMode](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L66)
* Prior art: #10094
* Verify the quickstart manually
* Bump `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` in `clusterctl_upgrade_test.go`
* Note: Only bump for Cluster API versions that will support the new Kubernetes release.
* Prior art: #9160
* [ ] 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/*`.
* Prior art: #10384
* [ ] Modify CAPD to use the new Kubernetes release after it is GA:
* Bump the Kubernetes version in `test/*` except for `test/infrastructure/kind/*`.
* Prior art: #10454
* [ ] Ensure the jobs are adjusted to provide test coverage according to our [support policy](https://cluster-api.sigs.k8s.io/reference/versions.html#supported-kubernetes-versions):

* At the `.versions` section in the `cluster-api-prowjob-gen.yaml` file in [test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes-sigs/cluster-api/):
Expand All @@ -55,13 +45,35 @@ changes should be cherry-picked to all release series that will support the new
TEST_INFRA_DIR=../../k8s.io/test-infra make generate-test-infra-prowjobs
```

* Prior art: #32456

* [ ] Update book:
* Update supported versions in `versions.md`
* Prior art: #9161
* Prior art: #10454

* [ ] 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.

### 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](https://github.com/kubernetes-sigs/kind/releases) for the target Kubernetes version

* [ ] Bump quickstart and kind image references in CAPD:
* Bump the Kubernetes version in:
* `docs/*`
* `Tiltfile`
* Bump kind image references in CAPD (and also kind if necessary, including the latest images for this kind release)
* Add new images in the [kind mapper.go](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L79).
* See the [kind releases page](https://github.com/kubernetes-sigs/kind/releases) for the list of released images.
* Set new default image for the [test framework](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/framework/bootstrap/kind_provider.go#L40)
* If code changes are required for CAPD to incorporate the new Kind version, update [kind latestMode](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L66)
* Verify the quickstart manually
* Prior art: TODO (previously #9160 and #10094)

### Using new Kubernetes dependencies

This section contains tasks to update Cluster API to use the latest Kubernetes Go dependencies and related topics
Expand All @@ -72,17 +84,19 @@ 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 correct `kubekins-e2e` image via the configuration file 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.
* Prior art: presubmit jobs: https://github.com/kubernetes/test-infra/pull/27311
* Prior art: periodic jobs: https://github.com/kubernetes/test-infra/pull/27326
* Prior art: https://github.com/kubernetes/test-infra/pull/32380
* [ ] 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: #7135
* Prior art: #10452
* [ ] Bump controller-runtime
* [ ] Bump controller-tools
* [ ] Bump the Kubernetes version used in integration tests via `KUBEBUILDER_ENVTEST_KUBERNETES_VERSION` in `Makefile`
* **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](#supporting-managing-and-running-on-the-new-kubernetes-version).
* Prior art to release envtest binaries: https://github.com/kubernetes-sigs/kubebuilder/pull/3864
* Prior art: #7193
* [ ] Bump conversion-gen via `CONVERSION_GEN_VER` in `Makefile`
* Prior art: #7118
After release of CAPI v1.X.x (that supports Kubernetes v1.Y):

0 comments on commit 0b61de1

Please sign in to comment.