Removing Support For a Kubernetes Version
This guide describes the typical steps to remove support for a Kubernetes version in the Gardener codebase. Use the referenced PRs for implementation details and examples:
Notes
- The exact files and field names can vary between Gardener releases. Use the repository search to find the locations in the codebase (examples below).
Prerequisites
- As mentioned in Adding Support For a New Kubernetes Version - adding support for a new Kubernetes version is a prerequisite for dropping support for versions older than 5 Kubernetes minor versions.
Tasks
- Create an umbrella issue and include a list of all repositories that must be checked out and potentially be modified in order to remove support for the Kubernetes version. (example)
- Research all the deprecations (API, functions, etc) that could be related to the removal of support of the version. (example)
- Adapt the
README.mdfile (remove conformance test results from the table). (example) - Update the supported Kubernetes versions in the
SupportedVersionsvariable and in the Supported Kubernetes Versions documentation. (example) - Search for the version in codebase. Include all its variants - if it's 1.33, search for both "1.33" and "133". If there's a version-specific logic, adapt it according to the supported versions.
- The version usages in unit tests and documentation generally should not be adapted unless they contain version-specific logic or features, as per this discussion.
- The
AddedInVersionfield in Kubernetes feature gate version ranges map, Kubernetes API groups to controllers map and Kubernetes admission plugin version ranges map should not be removed, as it provides valuable historical information about when feature gates, admission plugins, and controllers were introduced.
- Remove the images for the version in
imagevector/containers.yaml. (example) - Adapt charts. (example)
- Remove upstream conformance test results from kubernetes/test-infra. (example).
- This should be done only when the corresponding PRs for removal of the version are already merged and released.