Skip to content
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

Default LocalQueue #2936

Open
3 of 6 tasks
Tracked by #3599
KPostOffice opened this issue Aug 29, 2024 · 11 comments · May be fixed by #3610
Open
3 of 6 tasks
Tracked by #3599

Default LocalQueue #2936

KPostOffice opened this issue Aug 29, 2024 · 11 comments · May be fixed by #3610
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@KPostOffice
Copy link
Contributor

What would you like to be added:

I would like to be able to indicate a default LocalQueue per namespace to be used for a workload

Why is this needed:

If an administrator creates a single LocalQueue per namespace that all workloads are expected to use, defaulting the queue let's quota consumers ignore the need to include Queue specific request labels in their workloads and enforces the need to be associated with a Queue in order to be scheduled.

Completion requirements:

  • API changes to LocalQueue spec which allow admin to specify it as default
  • Mutating webhook which will get the default LocalQueue and apply the appropriate label
  • Validating webhook which ensures that only one LocalQueue is marked as default

This enhancement requires the following artifacts:

  • Design doc
  • API change
  • Docs update

The artifacts should be linked in subsequent comments.

@KPostOffice KPostOffice added the kind/feature Categorizes issue or PR as related to a new feature. label Aug 29, 2024
@tenzen-y
Copy link
Member

tenzen-y commented Oct 8, 2024

@KPostOffice Do you assume that automatically https://kueue.sigs.k8s.io/docs/tasks/manage/setup_job_admission_policy/ generation?

@KPostOffice
Copy link
Contributor Author

@KPostOffice Do you assume that automatically https://kueue.sigs.k8s.io/docs/tasks/manage/setup_job_admission_policy/ generation?

Are you referring to the example AdmissionPolicy outlined in the documentation?

@tenzen-y
Copy link
Member

https://kueue.sigs.k8s.io/docs/tasks/manage/setup_job_admission_policy/

Yes, I indicated the ValidatingAdmissionPolicy.

@yaroslava-serdiuk
Copy link
Contributor

/assign

@KPostOffice
Copy link
Contributor Author

Yeah, the assumption here would be that the policy would be in place

@yaroslava-serdiuk
Copy link
Contributor

yaroslava-serdiuk commented Nov 15, 2024

If we are going to modify API to have "default" field, it might be tricky to validate that only one LQ is a default. Are we going to abandon setting LQ as default if another default LQ is present in the namespace (in this case we do not validate the object itself)? If we can have multiple default LQs, which one is an actual default? It could be a first one or the last one.

To avoid those questions and the API change, I suggest to default LocalQueue that has default name, WDYT?
However this might be a breaking change for someone.

@yaroslava-serdiuk
Copy link
Contributor

@KPostOffice could you please tell if #2936 (comment) makes sense

@mwielgus
Copy link
Contributor

Let's have the "default" default LocalQueue and put the whole feature behind a feature gate, so we don't break anyone by accident.

@KPostOffice
Copy link
Contributor Author

Using the default LQ name behind a feature gate would be a fine solution from my perspective

@yaroslava-serdiuk yaroslava-serdiuk linked a pull request Nov 21, 2024 that will close this issue
@mimowo
Copy link
Contributor

mimowo commented Nov 25, 2024

It feels this feature requires a KEP, even if there is no "API" changed, we still introduce a feature-gate. Also, I feel the mechanism will evolve in the future, so having some reference we can update will be useful. It does not need to be long, just one pager to collect the use-cases and the proposed solution.

@tenzen-y
Copy link
Member

It feels this feature requires a KEP, even if there is no "API" changed, we still introduce a feature-gate. Also, I feel the mechanism will evolve in the future, so having some reference we can update will be useful. It does not need to be long, just one pager to collect the use-cases and the proposed solution.

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants