Scheduler Operator HTTP API
The /operator/scheduler
endpoints provide tools for management of Nomad server scheduler settings.
Read Scheduler Configuration
This endpoint retrieves the latest Scheduler configuration. More options may be added in the future.
Method | Path | Produces |
---|---|---|
GET |
/v1/operator/scheduler/configuration |
application/json |
The table below shows this endpoint's support for blocking queries and required ACLs.
Blocking Queries | ACL Required |
---|---|
NO |
operator:read |
Sample Request
$ curl \
https://localhost:4646/v1/operator/scheduler/configuration
Sample Response
{
"Index": 5,
"KnownLeader": true,
"LastContact": 0,
"SchedulerConfig": {
"CreateIndex": 5,
"ModifyIndex": 5,
"SchedulerAlgorithm": "spread",
"MemoryOversubscriptionEnabled": true,
"PreemptionConfig": {
"SystemSchedulerEnabled": true,
"BatchSchedulerEnabled": false,
"ServiceSchedulerEnabled": false
}
}
}
Field Reference
-
Index
(int)
- TheIndex
value is the Raft index corresponding to this configuration. -
SchedulerConfig
(SchedulerConfig)
- The returnedSchedulerConfig
object has configuration settings mentioned below.-
SchedulerAlgorithm
(string: "binpack")
- Specifies whether scheduler binpacks or spreads allocations on available nodes. -
MemoryOversubscriptionEnabled
(bool: false)
1.1 Beta - Whentrue
, tasks may exceed their reserved memory limit, if the client has excess memory capacity. Tasks must specifymemory_max
to take advantage of memory oversubscription. -
PreemptionConfig
(PreemptionConfig)
- Options to enable preemption for various schedulers.-
SystemSchedulerEnabled
(bool: true)
- Specifies whether preemption for system jobs is enabled. Note that this defaults to true. -
BatchSchedulerEnabled
(bool: false)
- Specifies whether preemption for batch jobs is enabled. Note that this defaults to false and must be explicitly enabled. -
ServiceSchedulerEnabled
(bool: false)
- Specifies whether preemption for service jobs is enabled. Note that this defaults to false and must be explicitly enabled.
-
-
CreateIndex
- The Raft index at which the config was created. -
ModifyIndex
- The Raft index at which the config was modified.
-
Update Scheduler Configuration
This endpoint updates the scheduler configuration of the cluster.
Method | Path | Produces |
---|---|---|
PUT , POST
|
/v1/operator/scheduler/configuration |
application/json |
The table below shows this endpoint's support for blocking queries and required ACLs.
Blocking Queries | ACL Required |
---|---|
NO |
operator:write |
Bootstrap Configuration Element
The default_scheduler_config
attribute of the server stanza will provide a
starting value for this configuration. Once bootstrapped, the value in the
server state is authoritative.
Parameters
-
cas
(int: 0)
- Specifies to use a Check-And-Set operation. The update will only happen if the given index matches theModifyIndex
of the configuration at the time of writing.
Sample Payload
{
"SchedulerAlgorithm": "spread",
"MemoryOversubscriptionEnabled": false,
"PreemptionConfig": {
"SystemSchedulerEnabled": true,
"BatchSchedulerEnabled": false,
"ServiceSchedulerEnabled": true
}
}
-
SchedulerAlgorithm
(string: "binpack")
- Specifies whether scheduler binpacks or spreads allocations on available nodes. Possible values are"binpack"
and"spread"
-
MemoryOversubscriptionEnabled
(bool: false)
1.1 Beta - Whentrue
, tasks may exceed their reserved memory limit, if the client has excess memory capacity. Tasks must specifymemory_max
to take advantage of memory oversubscription. -
PreemptionConfig
(PreemptionConfig)
- Options to enable preemption for various schedulers.-
SystemSchedulerEnabled
(bool: true)
- Specifies whether preemption for system jobs is enabled. Note that if this is set to true, then system jobs can preempt any other jobs. -
BatchSchedulerEnabled
(bool: false)
- Specifies whether preemption for batch jobs is enabled. Note that if this is set to true, then batch jobs can preempt any other jobs. -
ServiceSchedulerEnabled
(bool: false)
- Specifies whether preemption for service jobs is enabled. Note that if this is set to true, then service jobs can preempt any other jobs.
-
Sample Response
{
"Updated": false,
"Index": 15
}