### Job-related variables

| Variable                 | Description                                                                                                                                                                                                                                                                     |
|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `NOMAD_ALLOC_DIR`        | The path to the shared `alloc/` directory. See the [Runtime Task Directories documentation][taskdirs] for more information.                                                                                                                                                     |
| `NOMAD_TASK_DIR`         | The path to the task `local/` directory. See the [Runtime Task Directories documentation][taskdirs] for more information.                                                                                                                                                       |
| `NOMAD_SECRETS_DIR`      | Path to the task's `secrets/` directory. See the [Runtime Task Directories documentation][taskdirs] for more information.                                                                                                                                                       |
| `NOMAD_MEMORY_LIMIT`     | Memory limit in MB for the task                                                                                                                                                                                                                                                 |
| `NOMAD_MEMORY_MAX_LIMIT` | The maximum memory limit the task may use if client has excess memory capacity, in MB. Omitted if task isn't configured with memory oversubscription.                                                                                                                           |
| `NOMAD_CPU_LIMIT`        | CPU limit in MHz for the task                                                                                                                                                                                                                                                   |
| `NOMAD_CPU_CORES`        | The specific CPU cores reserved for the task in cpuset list notation. Omitted if the task does not request CPU cores. For example, `0-2,7,12-14`                                                                                                                                |
| `NOMAD_ALLOC_ID`         | Allocation ID of the task                                                                                                                                                                                                                                                       |
| `NOMAD_SHORT_ALLOC_ID`   | The first 8 characters of the allocation ID of the task                                                                                                                                                                                                                         |
| `NOMAD_ALLOC_NAME`       | Allocation name of the task. This is derived from the job name, task group name, and allocation index.                                                                                                                                                                          |
| `NOMAD_ALLOC_INDEX`      | Allocation index; useful to distinguish instances of task groups. From 0 to (count - 1). For system jobs and sysbatch jobs, this value will always be 0. The index is unique within a given version of a job, but canaries or failed tasks in a deployment may reuse the index. |
| `NOMAD_TASK_NAME`        | Task's name                                                                                                                                                                                                                                                                     |
| `NOMAD_GROUP_NAME`       | Group's name                                                                                                                                                                                                                                                                    |
| `NOMAD_JOB_ID`           | Job's ID, which is equal to the Job name when submitted through the command-line tool but can be different when using the API                                                                                                                                                   |
| `NOMAD_JOB_NAME`         | Job's name                                                                                                                                                                                                                                                                      |
| `NOMAD_JOB_PARENT_ID`    | ID of the Job's parent if it has one                                                                                                                                                                                                                                            |
| `NOMAD_DC`               | Datacenter in which the allocation is running                                                                                                                                                                                                                                   |
| `NOMAD_PARENT_CGROUP`    | The parent cgroup used to contain task cgroups (Linux only)                                                                                                                                                                                                                     |
| `NOMAD_NAMESPACE`        | Namespace in which the allocation is running                                                                                                                                                                                                                                    |
| `NOMAD_REGION`           | Region in which the allocation is running                                                                                                                                                                                                                                       |
| `NOMAD_META_<key>`       | The metadata value given by `key` on the task's metadata. <br/> **Note:** this is different from [`${meta.<key>}`](/nomad/docs/runtime/interpolation#node-variables-) which are keys in the node's metadata.                                                                    |
| `VAULT_TOKEN`            | The task's Vault token. See the [Vault Integration][vault] documentation for more details                                                                                                                                                                                       |

### Network-related Variables

| Variable                           | Description                                                                                                                                                                                                                                             |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NOMAD_IP_<label>`                 | Host IP for the given port `label`. See the [`network` block documentation][network-block] for more information.                                                                                                                                        |
| `NOMAD_PORT_<label>`               | Port for the given port `label`. Driver-specified port when a port map is used, otherwise the host's static or dynamic port allocation. Services should bind to this port. See the [`network` block documentation][network-block] for more information. |
| `NOMAD_ADDR_<label>`               | Host `IP:Port` pair for the given port `label`.                                                                                                                                                                                                         |
| `NOMAD_HOST_PORT_<label>`          | Port on the host for the port `label`. See the [**Mapped Ports**](/nomad/docs/job-specification/network#mapped-ports) section of the `network` block documentation for more information.                                                                |
| `NOMAD_UPSTREAM_IP_<service>`      | IP for the given `service` when defined as a Consul service mesh [upstream][].                                                                                                                                                                          |
| `NOMAD_UPSTREAM_PORT_<service>`    | Port for the given `service` when defined as a Consul service mesh [upstream][].                                                                                                                                                                        |
| `NOMAD_UPSTREAM_ADDR_<service>`    | Host `IP:Port` for the given `service` when defined as a Consul service mesh [upstream][].                                                                                                                                                              |
| `NOMAD_ENVOY_ADMIN_ADDR_<service>` | Local address `127.0.0.2:Port` for the admin port of the envoy sidecar for the given `service` when defined as a Consul service mesh enabled service. Envoy runs inside the group network namespace unless configured for host networking.              |
| `NOMAD_ENVOY_READY_ADDR_<service>` | Local address `127.0.0.1:Port` for the ready port of the envoy sidecar for the given `service` when defined as a Consul service mesh enabled service. Envoy runs inside the group network namespace unless configured for host networking.              |

<Note>

Nomad replaces characters that are neither alphanumeric nor underscores in
port labels or task names with underscores when generating environment variable
names such as `NOMAD_ADDR_<task>_<label>`

</Note>

### Consul-related Variables

<Note>These variables are only set for Consul service mesh native tasks.</Note>

| Variable                 | Description                                                                                                                                                                                        |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CONSUL_HTTP_ADDR`       | Specifies the address to the local Consul agent. Will be automatically set to a unix domain socket in bridge networking mode, or a TCP address in host networking mode.                            |
| `CONSUL_HTTP_TOKEN`      | Specifies the Consul ACL token used to authorize with Consul. Will be automatically set to a generated Consul service identity token specific to the service instance if Consul ACLs are enabled.  |
| `CONSUL_HTTP_SSL`        | Specifies whether HTTPS should be used when communicating with Consul. Will be automatically set to true if Nomad is configured to communicate with Consul using TLS.                              |
| `CONSUL_HTTP_SSL_VERIFY` | Specifies whether the HTTPS connection with Consul should be mutually verified. Will be automatically set to true if Nomad is configured to verify TLS certificates.                               |
| `CONSUL_CACERT`          | Specifies the path to the CA certificate used for Consul communication. Will be automatically set if Nomad is configured with the `consul.share_ssl` option.                                       |
| `CONSUL_CLIENT_CERT`     | Specifies the path to the Client certificate used for Consul communication. Will be automatically set if Nomad is configured with the `consul.share_ssl` option.                                   |
| `CONSUL_CLIENT_KEY`      | Specifies the path to the Client Key certificate used for Consul communication. Will be automatically set if Nomad is configured with the `consul.share_ssl` option.                               |
| `CONSUL_TLS_SERVER_NAME` | Specifies the server name to use as the SNI host for Consul communication. Will be automatically set if Consul is configured to use TLS and the task is in a group using bridge networking mode.   |

[upstream]: /nomad/docs/job-specification/upstreams
[taskdirs]: /nomad/docs/runtime/environment#task-directories
[network-block]: /nomad/docs/job-specification/network
[vault]: /nomad/docs/integrations/vault-integration
