Resource Quota Specification
Enterprise
Resource Quotas are only available with Nomad Enterprise.
Resource Quotas enable you to limit resource consumption across teams or projects to reduce waste and align budgets.
You can manage quotas using the Nomad CLI via the quota
subcommands,
or with Nomad's Quota HTTP API directly.
You may also follow a Quotas tutorial for more example usage.
Example quota specification
The CLI command nomad quota init
generates an example spec.hcl
file.
name = "default-quota"description = "Limit the shared default namespace" # Create a limit for the global region. Additional limits may# be specified in-order to limit other regions.limit { region = "global" region_limit { cores = 0 cpu = 2500 memory = 1000 memory_max = 1000 device "nvidia/gpu/1080ti" { count = 1 } } variables_limit = 1000}
Quota specification parameters
name
(string)
- The name of the Quota. Nomad usesname
to connect the quota aNamespace
.description
(string: <optional>)
- A human-readable description.limit
(QuotaLimit)
- The resource limit in a Nomad region.
limit
parameters
region
(string)
- The Nomadregion
that the limit applies to.region_limit
(RegionLimit)
- Resources to limit.variables_limit
(int: 0)
- Maximum total size of all Nomadvariables
in MiB. The default0
means unlimited, and-1
means variables are fully disabled.
region_limit
parameters
Region limits define the limits on cumulative task resources
blocks for
allocations in the namespace and region the quota is applied to.
cores
(int: <optional>)
- The limit on total number of CPU cores from allresources.cores
in the namespace. The CPU concepts documentation has more details on CPU resources.cpu
(int: <optional>)
- The limit on total amount of CPU from allresources.cpu
in the namespace.memory
(int: <optional>)
- The limit on total mount of memory in MB from allresources.memory
in the namespace.memory_max
(int: <optional>)
- The limit on total mount of hard memory limits in MB from allresources.memory_max
in the namespace.device
(Device: nil)
device
parameters
The device
label specifies which device(s) the quota applies to,
equivalent to the device
block in a job specification.
count
(int)
- How many of this device may be used.