Nomad
Nomad Variable Specification
Nomad Variables may be specified as HCL files and submitted by the
nomad var put
CLI command.
Unlike Job specifications, Nomad Variables specifications do not support HCL2 features like functions.
Example variable specification generated by nomad var init
:
# 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
Variable Specification 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.
See Variable Restrictions for details on path
and items
name restrictions.