sigs.k8s.io/cluster-api@v1.7.1/.github/ISSUE_TEMPLATE/kubernetes_bump.md (about)

     1  ---
     2  name: 🚀 Kubernetes bump
     3  about: "[Only for release team lead] Create an issue to track tasks to support a new Kubernetes minor release."
     4  title: Tasks to bump to Kubernetes v1.<minor-version>
     5  labels: ''
     6  assignees: ''
     7  
     8  ---
     9  
    10  This issue is tracking the tasks that should be implemented **after** the Kubernetes minor release has been released.
    11  
    12  ## Tasks
    13  
    14  Prerequisites:
    15  * [ ] Decide which Cluster API release series will support the new Kubernetes version
    16    * If feasible we usually cherry-pick the changes back to the latest release series.
    17  
    18  ### Supporting managing and running on the new Kubernetes version
    19  
    20  This section contains tasks to update our book, e2e testing and CI to use and test the new Kubernetes version
    21  as well as changes to Cluster API that we might have to make to support the new Kubernetes version. All of these
    22  changes should be cherry-picked to all release series that will support the new Kubernetes version.
    23  
    24  * [ ] Modify quickstart and CAPD to use the new Kubernetes release:
    25    * Bump the Kubernetes version in:
    26      * `test/*`: search for occurrences of the previous Kubernetes version
    27      * `Tiltfile`
    28    * Ensure the latest available kind version is used (including the latest images for this kind release)
    29      * Add new images in the [kind mapper.go](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L79).
    30        * See the [kind releases page](https://github.com/kubernetes-sigs/kind/releases) for the list of released images.
    31      * Set new default image for the [test framework](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/framework/bootstrap/kind_provider.go#L40)
    32      * 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)
    33      * Prior art: #10094
    34    * Verify the quickstart manually
    35    * Bump `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` in `clusterctl_upgrade_test.go`
    36      * Note: Only bump for Cluster API versions that will support the new Kubernetes release.
    37    * Prior art: #9160
    38  * [ ] 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):
    39  
    40    * 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/):
    41      * Add a new entry for the new Kubernetes version
    42      * Adjust the released Kubernetes's version entry to refer `stable-1.<minor>` instead of `ci/latest-1.<minor>`
    43      * Check and update the versions for the keys `etcd` and `coreDNS` if necessary:
    44        * For etcd, see the `DefaultEtcdVersion` kubeadm constant: [e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L308)
    45        * For coredns, see the `CoreDNSVersion` kubeadm constant:[e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L344)
    46    * For the `.branches.main` 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/):
    47      * For the `.upgrades` section:
    48        * Drop the oldest upgrade
    49        * Add a new upgrade entry from the previous to the new Kubernetes version
    50      * Bump the version set at `.kubernetesVersionManagement` to the new minimum supported management cluster version (This is the image version available as kind image).
    51      * Bump the version set at `.kubebuilderEnvtestKubernetesVersion` to the new minimum supported management cluster version.
    52    * Run `make generate-test-infra-prowjobs` to generate the resulting prowjob configuration:
    53  
    54      ```sh
    55      TEST_INFRA_DIR=../../k8s.io/test-infra make generate-test-infra-prowjobs
    56      ```
    57  
    58  * [ ] Update book:
    59    * Update supported versions in `versions.md`
    60    * Prior art: #9161
    61  * [ ] Issues specific to the Kubernetes minor release:
    62    * Sometimes there are adjustments that we have to make in Cluster API to be able to support
    63      a new Kubernetes minor version. Please add these issues here when they are identified.
    64  
    65  ### Using new Kubernetes dependencies
    66  
    67  This section contains tasks to update Cluster API to use the latest Kubernetes Go dependencies and related topics
    68  like using the right Go version and build images. These changes are only made on the main branch. We don't
    69  need them in older releases as they are not necessary to manage workload clusters of the new Kubernetes version or
    70  run the Cluster API controllers on the new Kubernetes version.
    71  
    72  * [ ] Ensure there is a new controller-runtime minor release which uses the new Kubernetes Go dependencies.
    73  * [ ] 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`.
    74    * It is recommended to have one PR for presubmit and one for periodic jobs to reduce the risk of breaking the periodic jobs.
    75    * Prior art: presubmit jobs: https://github.com/kubernetes/test-infra/pull/27311
    76    * Prior art: periodic jobs: https://github.com/kubernetes/test-infra/pull/27326
    77  * [ ] Bump the Go version in Cluster API: (if Kubernetes is using a new Go minor version)
    78    * Search for the currently used Go version across the repository and update it
    79    * We have to at least modify it in: `hack/ensure-go.sh`, `.golangci.yml`, `cloudbuild*.yaml`, `go.mod`, `Makefile`, `netlify.toml`, `Tiltfile`
    80    * Prior art: #7135
    81  * [ ] Bump controller-runtime
    82  * [ ] Bump controller-tools
    83  * [ ] Bump the Kubernetes version used in integration tests via `KUBEBUILDER_ENVTEST_KUBERNETES_VERSION` in `Makefile`
    84    * **Note**: This PR should be cherry-picked as well. It is part of this section as it depends on kubebuilder/controller-runtime
    85      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).
    86    * Prior art: #7193
    87  * [ ] Bump conversion-gen via `CONVERSION_GEN_VER` in `Makefile`
    88    * Prior art: #7118