-
Notifications
You must be signed in to change notification settings - Fork 288
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
Stop supporting FlowSchema and PriorityLevelConfiguration v1beta3. #3983
Stop supporting FlowSchema and PriorityLevelConfiguration v1beta3. #3983
Conversation
✅ Deploy Preview for kubernetes-sigs-kueue canceled.
|
/hold for v0.10.1 release |
Thanks for the PR, I would like to make sure we are safe to drop the support. IIUC the plan is to only install v1 instead of v1beta3? In that case, what is the first version of k8s supporting v1? |
The documentation states that API Priority and Fairness has been stable since Kubernetes v1.29. |
Was v1 supported prior to the graduation? |
4e2158b
to
646adda
Compare
As I can see v1 support from v1.29 (see here). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This indicates that we will change the implied supporting kubernetes version to v1.29 (https://github.com/kubernetes-sigs/kueue?tab=readme-ov-file#installation).
I'm ok since the v1.28 is no longer supported in OSS kubernetes. But let me confirm if @mimowo agrees with the changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBH, I'm not sure, the reason is that cloud providers give usually a little longer support than OSS, and so it is common to see users on 1.28.
For example the policy for gke is 14months of support which is 2 months longer than oss: https://cloud.google.com/kubernetes-engine/versioning (and so it is possible to create new clusters on 1.28 on gke using standard release channels).
I think that as long as it is not extra difficult we try to support one version beyond EOL, but I would like to hear also from @kannon92 and @dgrove-oss
EDIT: my preference is to officially support in Kueue non-EOL for Kubernetes, but when possible and not too difficult then try to support one release beyond. So, in this case I would wait until 1.29 is EOL, but this is not a strong view.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mbobrovskyi if we merge this PR would Kueue be installed and working on k8s 1.28 for the base use cases? or it will be no longer usable even for simple use cases? Can you maybe check on a running k8s 1.28 manually?
I think we definitely want to be able to still install Kueue and support simple use-cases for older versions. It is ok, if some features like pod integration don't work on 1.28, but the very basic features I expect need to work on 1 or even 2 releases beyond EOL.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mbobrovskyi if we merge this PR would Kueue be installed and working on k8s 1.28 for the base use cases? or it will be no longer usable even for simple use cases? Can you maybe check on a running k8s 1.28 manually?
I think we definitely want to be able to still install Kueue and support simple use-cases for older versions. It is ok, if some features like pod integration don't work on 1.28, but the very basic features I expect need to work on 1 or even 2 releases beyond EOL.
This PR added FlowSchema
and PriorityLevelConfiguration
with version v1
to the main manifest. However, Kubernetes 1.28 does not support the v1
version. Therefore, users must manually change the version of these resources to v1beta3
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if the users without any manual changes just follow the installation steps from the documentation https://kueue.sigs.k8s.io/docs/installation/#install-a-released-version? Will the installation break, or how the users would get see that it is not working?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if the users without any manual changes just follow the installation steps from the documentation https://kueue.sigs.k8s.io/docs/installation/#install-a-released-version? Will the installation break, or how the users would get see that it is not working?
k apply -f artifacts/manifests.yaml --server-side
...
resource mapping not found for name: "kueue-visibility" namespace: "kueue-system" from "artifacts/manifests.yaml": no matches for kind "FlowSchema" in version "flowcontrol.apiserver.k8s.io/v1"
ensure CRDs are installed first
resource mapping not found for name: "kueue-visibility" namespace: "kueue-system" from "artifacts/manifests.yaml": no matches for kind "PriorityLevelConfiguration" in version "flowcontrol.apiserver.k8s.io/v1"
ensure CRDs are installed first
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that if a vendor chooses to support beyond EOL it is on them to support that. Wearing my Red Hat it
would be great to have LTS on old release branches but it opens up a large can of worms for upstream projects to
handle.
Right, I don't want to have a rule on supporting more than non-EOL k8s, just best effort. With this PR merged Kueue would not even install on 1.28. So, the installation guide would be wrong: https://github.com/kubernetes-sigs/kueue?tab=readme-ov-file#installation as we say "Requires Kubernetes 1.25 or newer.".
So, I think while it is ok to break older version a little bit on some features, not being even able to install is bad.
So the options I see:
- update the installation guide saying "Requires Kubernetes 1.29 or newer.", but this is a very restricting claim I think for now
- add a section in the installation guide for users on < 1.29
- wait a bit more, I propose 1 release, merge the PR then and update the installation guide saying "Requires Kubernetes 1.29 or newer."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe there is another possibility to drop generation of the artifact for 1.28, but still keep the visibility-apf for v1 as opt-in for the foreseeable future, WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe there is another possibility to drop generation of the artifact for 1.28, but still keep the visibility-apf for v1 as opt-in for the foreseeable future, WDYT?
SGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ack, added release note
/hold |
204f497
to
35a8ab9
Compare
/release-note-edit
|
35a8ab9
to
eee2e4c
Compare
/lgtm |
LGTM label has been added. Git tree hash: 940109af67e3a4cb0e8c3bef521bacb8e35eca7c
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: mbobrovskyi, mimowo The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/hold cancel |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Merge the FlowSchema and PriorityLevelConfiguration v1 manifests into the installation manifests and remove v1beta3 manifests.
Which issue(s) this PR fixes:
Part of #3046
Special notes for your reviewer:
Does this PR introduce a user-facing change?