-
Notifications
You must be signed in to change notification settings - Fork 300
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
Rethink Kueue.Queue end purpose #113
Comments
Also discussed in http://bit.ly/kueue-apis :) |
I agree with the fact that having kueue.queue at the user lvl can introduce security risks or resource hijacking risks, a user could create 1 queue per job, and skip the line. If Heap is at ClusterQueue, let's work on enhancing that model |
Eventually, there will be a heap in each Queue too. And only the workloads that, added up, respect the queue limits will enter the ClusterQueue. The use case is explained in the comment linked above. |
For now, the only use of kueue.Queue is discoverability. |
re-Titled to better reflect this conversation |
Queue can have three purposes:
|
I have been thinking about this as well, and here are my thoughts: For 1 ClusterQueue Example: dog := queue{queuedworkloadStepA,queuedworkloadStepB, queuedworkloadStepC}
cat := queuedworkload{queuedworkloadStepA,queuedworkloadStepB, queuedworkloadStepC}
duck := queuedworkload{queuedworkloadStepA,queuedworkloadStepB, queuedworkloadStepC} And queue them to the cluster queue AddOrUpdateClusterQueue{dog}
AddOrUpdateClusterQueue{cat}
AddOrUpdateClusterQueue{duck} Then the The nice thing of looking it like this, is that a Right now you can create a Job without creating a QueuedWorkload, the This adds a more Batch like feeling to Kueue. Thoughts? |
I am not sure I follow your proposal and what exactly is being suggested we change. Is it that a Queue could represent a workflow? do you find the list in #113 (comment) not satisfactory in explaining the purpose of Queue? |
Maybe I was a bit confused, but to my point, is that I would like to add to your list, that queues are a way to define workload steps, kind of job dependency. "Do this, then this" . the list is satisfactory, I was just adding to it. |
We discussed initially that workflows are not in Kueue scope because there are multiple commonly used frameworks for that (like Argo and NextFlow). We could have a Queue configuration to act the way you described (e.g., strictly one workload should run at a time), but I fear this will grow into more complex requirements that turns it into a workflow manager. But, if we think of this in the context of better support for existing workflow managers (#74), then perhaps we can strike that balance between separation of concern and a rich feature set. |
Sounds good. let's re circle to this topic after 0.0.1 |
I think my head was into workloads when I commented here. now that I give it an extra thought |
can we close this? it seems to me Queue has a well defined scope |
/close |
@ArangoGutierrez: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
After #87 , there is not much point on having a controller for kueue.queue.
If someone wants to monitor/track a workload, this would have to be done against ClusterQueue, due the heap being there. We should consider removing
pkg/controller/core/queue.controller.go
andapi/v1aplha1/queue_types.go
The text was updated successfully, but these errors were encountered: