mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
* Move commands from docs to its own root-level directory * temporarily use modified dev-portal branch with nomad ia changes * explicitly clone nomad ia exp branch * retrigger build, fixed dev-portal broken build * architecture, concepts and get started individual pages * fix get started section destinations * reference section * update repo comment in website-build.sh to show branch * docs nav file update capitalization * update capitalization to force deploy * remove nomad-vs-kubernetes dir; move content to what is nomad pg * job section * Nomad operations category, deploy section * operations category, govern section * operations - manage * operations/scale; concepts scheduling fix * networking * monitor * secure section * remote auth-methods folder and move up pages to sso; linkcheck * Fix install2deploy redirects * fix architecture redirects * Job section: Add missing section index pages * Add section index pages so breadcrumbs build correctly * concepts/index fix front matter indentation * move task driver plugin config to new deploy section * Finish adding full URL to tutorials links in nav * change SSO to Authentication in nav and file system * Docs NomadIA: Move tutorials into NomadIA branch (#26132) * Move governance and policy from tutorials to docs * Move tutorials content to job-declare section * run jobs section * stateful workloads * advanced job scheduling * deploy section * manage section * monitor section * secure/acl and secure/authorization * fix example that contains an unseal key in real format * remove images from sso-vault * secure/traffic * secure/workload-identities * vault-acl change unseal key and root token in command output sample * remove lines from sample output * fix front matter * move nomad pack tutorials to tools * search/replace /nomad/tutorials links * update acl overview with content from deleted architecture/acl * fix spelling mistake * linkcheck - fix broken links * fix link to Nomad variables tutorial * fix link to Prometheus tutorial * move who uses Nomad to use cases page; move spec/config shortcuts add dividers * Move Consul out of Integrations; move namespaces to govern * move integrations/vault to secure/vault; delete integrations * move ref arch to docs; rename Deploy Nomad back to Install Nomad * address feedback * linkcheck fixes * Fixed raw_exec redirect * add info from /nomad/tutorials/manage-jobs/jobs * update page content with newer tutorial * link updates for architecture sub-folders * Add redirects for removed section index pages. Fix links. * fix broken links from linkcheck * Revert to use dev-portal main branch instead of nomadIA branch * build workaround: add intro-nav-data.json with single entry * fix content-check error * add intro directory to get around Vercel build error * workound for emtpry directory * remove mdx from /intro/ to fix content-check and git snafu * Add intro index.mdx so Vercel build should work --------- Co-authored-by: Tu Nguyen <im2nguyen@gmail.com>
115 lines
4.0 KiB
Plaintext
115 lines
4.0 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: Nomad resource quota specification
|
|
description: |-
|
|
Learn about Nomad's resource quota specification. Review an example resource quota specification. Configure resources, regions, devices, and storage options.
|
|
---
|
|
|
|
# Nomad resource quota specification
|
|
|
|
[Resource quotas][] let you limit resource consumption across teams or
|
|
projects to reduce waste and align budgets. Manage resource quotas with the CLI [`quota` command][quota] or with Nomad's [Quota HTTP API][].
|
|
|
|
<EnterpriseAlert product="nomad" />
|
|
|
|
## Example resource quota specification
|
|
|
|
This example is a resource quota specification generated with the [`nomad quota init` command][init].
|
|
|
|
```hcl
|
|
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"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Parameters
|
|
|
|
- `name` `(string)` - The name of the Quota. Nomad uses `name` to connect the
|
|
quota a [`Namespace`][].
|
|
- `description` `(string: <optional>)` - A human-readable description.
|
|
- `limit` <code>([QuotaLimit](#limit-parameters))</code> - The resource limit
|
|
in a Nomad region.
|
|
|
|
### `limit` parameters
|
|
|
|
- `region` `(string)` - The Nomad `region` that the limit applies to.
|
|
- `region_limit` <code>([RegionLimit](#region_limit-parameters))</code> -
|
|
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 all
|
|
`resources.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 all
|
|
`resources.cpu` in the namespace.
|
|
- `memory` `(int: <optional>)` - The limit on total mount of memory in MB from
|
|
all `resources.memory` in the namespace.
|
|
- `memory_max` `(int: <optional>)` - The limit on total mount of hard memory
|
|
limits in MB from all `resources.memory_max` in the namespace.
|
|
- `device` <code>([Device](#device-parameters): nil)</code>
|
|
- `storage` <code>([Storage](#storage-parameters): nil)</code>
|
|
|
|
### `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 default `0` 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 default `0` means unlimited, and `-1` means variables are fully
|
|
disabled. This field accepts human-friendly string inputs such as "100 GiB".
|
|
|
|
## Resources
|
|
|
|
Visit the [Create and use resource quotas tutorial][tutorial] to learn how to
|
|
create quotas, attach a quota to a namespace, secure a quota with ACL, and
|
|
design quotas for federated clusters.
|
|
|
|
|
|
[Resource Quotas]: /nomad/docs/enterprise#resource-quotas
|
|
[quota]: /nomad/commands/quota
|
|
[Quota HTTP API]: /nomad/api-docs/quotas
|
|
[tutorial]: /nomad/docs/govern/resource-quotas
|
|
[`Namespace`]: /nomad/docs/other-specifications/namespace
|
|
[variables]: /nomad/docs/concepts/variables
|
|
[`resources`]: /nomad/docs/job-specification/resources
|
|
[CPU concepts]: /nomad/docs/architecture/cpu
|
|
[`device`]: /nomad/docs/job-specification/device#device-parameters
|
|
[dynamic host volumes]: /nomad/docs/other-specifications/volume/host
|
|
[init]: /nomad/commands/quota/init
|