Nomad
Nomad Node Pool Specification
Nomad node pools may be specified as HCL files and submitted by the nomad node
pool apply
CLI command.
Unlike Job specifications, Nomad node pool specifications do not support HCL2 features like functions.
Example node pool specification generated by nomad node pool
init
:
node_pool "example" {
description = "Example node pool"
# meta is optional metadata on the node pool, defined as key-value pairs.
# The scheduler does not use node pool metadata as part of scheduling.
meta {
environment = "prod"
owner = "sre"
}
# The scheduler configuration options specific to this node pool. This block
# supports a subset of the fields supported in the global scheduler
# configuration as described at:
# https://developer.hashicorp.com/nomad/docs/commands/operator/scheduler/set-config
#
# * scheduler_algorithm is the scheduling algorithm to use for the pool.
# If not defined, the global cluster scheduling algorithm is used.
#
# Available only in Nomad Enterprise.
# scheduler_config {
# scheduler_algorithm = "spread"
# }
}
Example usage if the above is in a file named pool.nomad.hcl
:
$ nomad node pool apply ./pool.nomad.hcl
Successfully applied node pool "example"!
Node Pool Specification Parameters
description
(string: <optional>)
- Sets a human readable description for the node pool.meta
(map[string]string: <optional>)
- Sets optional metadata on the node pool, defined as key-value pairs. The scheduler does not use node pool metadata as part of scheduling.scheduler_config
(SchedulerConfig: nil)
Enterprise - Sets scheduler configuration options specific to the node pool. If not defined, the global scheduler configurations are used.
scheduler_config
Parameters Enterprise
scheduler_algorithm
(string: <optional>)
- The scheduler algorithm used for this node pool. Must be one ofbinpack
orspread
.memory_oversubscription_enabled
(bool: <optional>)
- The memory oversubscription setting to use for this node pool.