@@ -22,15 +22,16 @@ type OperatorSchedulerSetConfig struct {
2222 // The scheduler configuration flags allow us to tell whether the user set
2323 // a value or not. This means we can safely merge the current configuration
2424 // with user supplied, selective updates.
25- checkIndex string
26- schedulerAlgorithm string
27- memoryOversubscription flagHelper.BoolValue
28- rejectJobRegistration flagHelper.BoolValue
29- pauseEvalBroker flagHelper.BoolValue
30- preemptBatchScheduler flagHelper.BoolValue
31- preemptServiceScheduler flagHelper.BoolValue
32- preemptSysBatchScheduler flagHelper.BoolValue
33- preemptSystemScheduler flagHelper.BoolValue
25+ checkIndex string
26+ schedulerAlgorithm string
27+ memoryOversubscription flagHelper.BoolValue
28+ rejectJobRegistration flagHelper.BoolValue
29+ pauseEvalBroker flagHelper.BoolValue
30+ preemptBatchScheduler flagHelper.BoolValue
31+ preemptServiceScheduler flagHelper.BoolValue
32+ preemptSysBatchScheduler flagHelper.BoolValue
33+ preemptSystemScheduler flagHelper.BoolValue
34+ nodeLimitForFeasibilityChecks flagHelper.UintValue
3435}
3536
3637func (o * OperatorSchedulerSetConfig ) AutocompleteFlags () complete.Flags {
@@ -41,13 +42,14 @@ func (o *OperatorSchedulerSetConfig) AutocompleteFlags() complete.Flags {
4142 string (api .SchedulerAlgorithmBinpack ),
4243 string (api .SchedulerAlgorithmSpread ),
4344 ),
44- "-memory-oversubscription" : complete .PredictSet ("true" , "false" ),
45- "-reject-job-registration" : complete .PredictSet ("true" , "false" ),
46- "-pause-eval-broker" : complete .PredictSet ("true" , "false" ),
47- "-preempt-batch-scheduler" : complete .PredictSet ("true" , "false" ),
48- "-preempt-service-scheduler" : complete .PredictSet ("true" , "false" ),
49- "-preempt-sysbatch-scheduler" : complete .PredictSet ("true" , "false" ),
50- "-preempt-system-scheduler" : complete .PredictSet ("true" , "false" ),
45+ "-memory-oversubscription" : complete .PredictSet ("true" , "false" ),
46+ "-reject-job-registration" : complete .PredictSet ("true" , "false" ),
47+ "-pause-eval-broker" : complete .PredictSet ("true" , "false" ),
48+ "-preempt-batch-scheduler" : complete .PredictSet ("true" , "false" ),
49+ "-preempt-service-scheduler" : complete .PredictSet ("true" , "false" ),
50+ "-preempt-sysbatch-scheduler" : complete .PredictSet ("true" , "false" ),
51+ "-preempt-system-scheduler" : complete .PredictSet ("true" , "false" ),
52+ "-node-limit-for-feasibility-checks" : complete .PredictAnything ,
5153 },
5254 )
5355}
@@ -72,6 +74,7 @@ func (o *OperatorSchedulerSetConfig) Run(args []string) int {
7274 flags .Var (& o .preemptServiceScheduler , "preempt-service-scheduler" , "" )
7375 flags .Var (& o .preemptSysBatchScheduler , "preempt-sysbatch-scheduler" , "" )
7476 flags .Var (& o .preemptSystemScheduler , "preempt-system-scheduler" , "" )
77+ flags .Var (& o .nodeLimitForFeasibilityChecks , "node-limit-for-feasibility-checks" , "" )
7578
7679 if err := flags .Parse (args ); err != nil {
7780 return 1
@@ -134,6 +137,7 @@ func (o *OperatorSchedulerSetConfig) Run(args []string) int {
134137 o .preemptServiceScheduler .Merge (& schedulerConfig .PreemptionConfig .ServiceSchedulerEnabled )
135138 o .preemptSysBatchScheduler .Merge (& schedulerConfig .PreemptionConfig .SysBatchSchedulerEnabled )
136139 o .preemptSystemScheduler .Merge (& schedulerConfig .PreemptionConfig .SystemSchedulerEnabled )
140+ o .nodeLimitForFeasibilityChecks .Merge (& schedulerConfig .NodeLimitForFeasibilityChecks )
137141
138142 // Check-and-set the new configuration.
139143 result , _ , err := client .Operator ().SchedulerCASConfiguration (schedulerConfig , nil )
@@ -208,6 +212,13 @@ Scheduler Set Config Options:
208212 -preempt-system-scheduler=[true|false]
209213 Specifies whether preemption for system jobs is enabled. Note that if this
210214 is set to true, then system jobs can preempt any other jobs.
215+
216+ -node-limit-for-feasibility-checks=<count>
217+ Limits the number of feasible nodes to consider when scheduling a job that
218+ specifies spread and/or affinity. Defaults to 100 nodes if unset. Lower
219+ numbers result in better scheduler performance and more randomization of jobs
220+ across nodes. Higher numbers result in more deterministic application of
221+ feasibility checks.
211222`
212223 return strings .TrimSpace (helpText )
213224}
0 commit comments