Open jbartosik opened 1 year ago
Just re-iterating what I tried to say in the SIG meeting: I'm not sure if we really should assign a meaning to VPA version numbers, if we don't need to do this. Right now, we can release VPA and decide freely, if this should be a patch version update, a minor version update, or a major version update. If you're linking this directly to k8s versions, you lose this freedom.
As everything is a tradeoff, let's look at what we're gaining for this freedom. We could be dropping this table in the README, which tries to record the incompatible changes we made in VPA and specify which k8s versions definitely would break (e.g. because a certain API version doesn't exist in k8s versions smaller than x) and replace it with a single statement like Cluster-Autoscaler
We recommend using Cluster Autoscaler with the Kubernetes control plane (previously referred to as master) version for which it was meant. The below combinations have been tested on GCP. We don't do cross version testing or compatibility testing in other environments. Some user reports indicate successful use of a newer version of Cluster Autoscaler with older clusters, however, there is always a chance that it won't work as expected.
(source)
This would also mean that we would need to start maintaining (at least?) 3 VPA releases. Instead of rolling forward whenever we merge a security- or bugfix, we'd need to cherry-pick this to the VPA release branches for the 3 supported k8s versions. All of this is easily possible when releasing and cherry-picking is automated, but given the current state of how to do a VPA release, I'd rather avoid these complications.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale /lifecycle frozen
@voelzmo can you clarify the earlier comment:
As everything is a tradeoff, let's look at what we're gaining for this freedom. We could be dropping this table in the README, which tries to record the incompatible changes we made in VPA and specify which k8s versions definitely would break (e.g. because a certain API version doesn't exist in k8s versions smaller than x) and replace it with a single statement like Cluster-Autoscaler
My interpretation is the following: The Compatibility table clearly shows the minimum supported Kubernetes version for each VPA release. In addition, the maximum is derived by observing if there is a Kubernetes version in the table that is higher than the current row.
So for example. | VPA version | Kubernetes version |
---|---|---|
1.2.1 | 1.27+ | |
1.2.0 | 1.27+ | |
1.1.2 | 1.25+ |
VPA version 1.1.2 is compatible with Kubernetes versions 1.25-1.26
I'd like to change how we version VPA.
Since there's K8s version which:
I think it makes sense to name VPA like that K8s version. It would make it easier to decide which VPA version to use with which K8s version.
During SIG meetings the following downsides were pointed out:
I think 1. isn't likely to be a big issue (we have more of a problem of doing minor releases not frequently enough). I think that 2. we can address by documenting this properly.
During SIG meeting it was also pointed out that before we do a change like that we should check if Kubernetes community has any recommendations around changes like that.