Skip to content

Commit a04d83b

Browse files
committed
add FairSharing, QueueLabelPolicy and GangScheduling
1 parent 0e5728d commit a04d83b

13 files changed

+1103
-67
lines changed

config/schemapatch/kueue-operator.crd.yaml

+75
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,81 @@ spec:
175175
x-kubernetes-validations:
176176
- rule: self.matches(r'^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?([a-z0-9]([-a-z0-9]*[a-z0-9])?)$') && self.size() <= 317
177177
x-kubernetes-list-type: atomic
178+
<<<<<<< HEAD
179+
=======
180+
kueueGangSchedulingPolicy:
181+
description: |-
182+
kueueGangSchedulingPolicy controls how Kueue admits workloads.
183+
Gang Scheduling is the act of all or nothing scheduling.
184+
Kueue provides this ability.
185+
This field is optional.
186+
type: object
187+
properties:
188+
byWorkload:
189+
description: |-
190+
byWorkload controls how admission is done.
191+
When admission is set to Sequential, only pods from the currently processing workload will be admitted.
192+
Once all pods from the current workload are admitted, and ready, Kueue will process the next workload.
193+
Sequential processing may slow down admission when the cluster has sufficient capacity for multiple workloads,
194+
but provides a higher guarantee of workloads scheduling all pods together successfully.
195+
When set to Parallel, pods from any workload will be admitted at any time.
196+
This may lead to a deadlock where workloads are in contention for cluster capacity and
197+
pods from another workload having successfully scheduled prevent pods from the current workload scheduling.
198+
type: string
199+
enum:
200+
- Parallel
201+
- Sequential
202+
x-kubernetes-validations:
203+
- rule: self.policy==ByWorkload
204+
message: byWorkload is only valid if policy equals ByWorkload
205+
policy:
206+
description: |-
207+
policy allows for changing the kinds of gang scheduling Kueue does.
208+
This is an optional field.
209+
The allowed values are ByWorkload and Disabled.
210+
The default value will be Disabled.
211+
ByWorkload allows for configuration how admission is performed
212+
for Kueue.
213+
type: string
214+
enum:
215+
- ByWorkload
216+
- Disabled
217+
preemption:
218+
description: |-
219+
preemption is the process of evicting one or more admitted Workloads to accommodate another Workload.
220+
Kueue has classical preemption and preemption via fair sharing.
221+
type: object
222+
properties:
223+
preemptionStrategy:
224+
description: |-
225+
preemptionStrategy are the types of preemption kueue allows.
226+
Kueue has two types of preemption: classical and fair sharing.
227+
type: string
228+
enum:
229+
- Classical
230+
- FairSharing
231+
queueLabelPolicy:
232+
description: |-
233+
queueLabelPolicy controls how kueue manages workloads
234+
The default behavior of Kueue will manage workloads that have a queue-name label.
235+
This field is optional.
236+
type: object
237+
properties:
238+
queueLabelPolicy:
239+
description: |-
240+
queueLabelPolicy controls whether or not Kueue reconciles
241+
jobs that don't set the label kueue.x-k8s.io/queue-name.
242+
The allowed values are QueueNameRequired and QueueNameOptional.
243+
If set to QueueNameRequired, then those jobs will be suspended and never started unless
244+
they are assigned a queue and eventually admitted. This also applies to
245+
jobs created before starting the kueue controller.
246+
Defaults to QueueNameRequired; therefore, those jobs are not managed and if they are created
247+
unsuspended, they will start immediately.
248+
type: string
249+
enum:
250+
- QueueNameRequired
251+
- QueueNameOptional
252+
>>>>>>> 22bc930 (add FairSharing, QueueLabelPolicy and GangScheduling)
178253
logLevel:
179254
description: |-
180255
logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a

0 commit comments

Comments
 (0)