Nomad
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
}
storage {
variables = 1000 # in MB
host_volumes = "1000 GiB"
}
}
}
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.
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)
storage
(Storage: 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.
storage
parameters
The storage
block defines limits on provisioned storage.
host_volumes
(int: 0)
- Maximum total size of all dynamic host volumes in MiB. The default0
means unlimited, and-1
means variables are fully disabled. This field accepts human-friendly string inputs such as "100 GiB". The quota for host volumes is enforced at the time the volume is created via [volume create
][].variables
(int: 0)
- Maximum total size of all Nomad variables in MiB. The default0
means unlimited, and-1
means variables are fully disabled. This field accepts human-friendly string inputs such as "100 GiB".