Nomad
Nomad variable specification
Nomad variables let you store and use encrypted configuration data in your
job specifications. Specify variables as HCL files and submit them with the
[nomad var put
command]var-put. Unlike job specifications, Nomad
Variables specifications do not support HCL2 features like functions.
This example is a variable specification generated by nomad var init
command.
# A variable path can be specified in the specification file
# and will be used when writing the variable without specifying a
# path in the command or when writing JSON directly to the `/var/`
# HTTP API endpoint
# path = "path/to/variable"
# The Namespace to write the variable can be included in the specification. This
# value can be overridden by specifying the "-namespace" flag on the "put"
# command.
# namespace = "default"
# The items map is the only strictly required part of a variable
# specification, since path and namespace can be set via other means.
# It contains the sensitive material to encrypt and store as a Nomad
# variable. The entire items map is encrypted and decrypted as a
# single unit.
# REMINDER: While keys in the items map can contain dots, using them
# in templates is easier when they do not. As a best practice, avoid
# dotted keys when possible.
items {
key1 = "value 1"
key2 = "value 2"
}
Example usage if the above is in a file named spec.nv.hcl
:
$ nomad var put -in hcl some/path @spec.nv.hcl
Parameters
path
(string: <optional>)
- The path to the variable being defined. If empty it must be specified on the command line.namespace
(string: <optional>)
- The namespace of the variable. May be overridden by the-namespace
command line flag orNOMAD_NAMESPACE
environment variable.items
(object: <required>)
- Object of keys and values to set. Must be strings.
Refer to the Restrictions section in the command reference for
details on path
and items
name restrictions.
Resources
Visit the Nomad Variables tutorial to learn how to create variables, configure access control for variables, and access variables from within job tasks.