-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kubernetes support policy #8040
Comments
cc @kubernetes-sigs/cluster-api-release-team |
This seems like a really good idea to me vs the current unpredictable cadence which is driven by when a Kubernetes version is too hard to keep in the support matrix. One thing to be aware of - given the CAPI support policy is n+1 - there's a wider matrix of CAPI support for older Kubernetes versions across releases. That is - when 1.4 is released 1.3 will stay in support and 1.3 will be supported for Kubernetes versions older than those supported by 1.4. Additionally - we should consider putting hard checks on Kubernetes versions e.g. in clusterclt and in webhook - to enforce the support policy and inform users. |
/triage accepted WRT to having safeguards in place, we already tried to give a push to this effort in the past, see #7011 and #7010, but unfortunately, no one volunteered for it (I assume because similar check already exists in downstream products, but I'm not 100% sure). Given that I personally won't consider safeguards implementation on a critical path for introducing the policy, but definitely, now there is more reason for trying to get them staffed and it will be great if we can get them implemented in time. |
Thank you @sbueringer for starting the conversation. Overall I agree with reducing our maintenance + test matrix, just have two points I want to bring up:
|
thanks for writing this up @sbueringer , in general i'm +1 to this proposal although i do agree with the points that @CecileRobertMichon raised. also,
i think this is a cool idea, but i would want them to be warnings only for some of the reasons that @CecileRobertMichon pointed out. in specific i really agree with this:
|
Thx for the feedback! If I understand correctly, there are no objections against the proposed policy (i.e. which versions we want to support). The discussion is mostly about how we could enforce versions:
I would like to continue this dicussion on the issue which is specifically for this topic (#7010). I think for the policy itself we can and should focus on which versions do we actively support, test and keep code paths around for. I've opened a PR to document the policy: #8134 |
Context
Today every new Cluster API minor release adds support for additional Kubernetes minor releases. We rarely drop support for old Kubernetes minor releases.
Motivation
The support matrix for old Kubernetes releases has reached the considerable size of 9 Kubernetes minor releases as of today; the oldest of those releases is out of support since June 2021. The size of this matrix impacts maintenance effort, costs of infrastructure, as well as it prevents Cluster API from using new-ish Kubernetes features.
Proposal
A Cluster API minor release will support: (at the time of the “.0” release)
When a new Kubernetes minor release will be available, it will be supported in an upcoming Cluster API patch release.
Note: Support for a new Kubernetes minor release will only be packport to the latest supported release.
E.g., Cluster API v1.4.0 would support Kubernetes versions:
Details
The idea is to support a wide range of Kubernetes versions so our users are not forced to use the very latest Kubernetes releases, while not supporting too old versions to ensure maintainability of Cluster API.
We think 4 is a good number for management clusters as it's roughly the number of Kubernetes versions supported upstream by Kubernetes (xref: https://kubernetes.io/releases/)
We think 6 is a good number for workload clusters as end users using the workload clusters are usually slower when migrating to newer Kubernetes versions, so we want to give them more time. Also it's comparatively "cheap" for Cluster API to support more workload cluster versions as Cluster API depends way more on the Kubernetes version in the management cluster (as the controllers are running there).
We want to backport the support for a new Kubernetes minor release to the latest stable Cluster API release so users don't have to wait for the next Cluster API minor version to use the new Kubernetes release. We don't want to backport to all supported releases to reduce maintenance effort and to incentivize users to upgrade to the latest Cluster API version.
Tasks
/kind cleanup
/area testing
The text was updated successfully, but these errors were encountered: