--- layout: docs page_title: Nomad Variable Specification description: Learn about Nomad's Variable specification. --- # Nomad Variable Specification [Nomad Variables][nv] may be specified as HCL files and submitted by the [`nomad var put`][var-put] CLI command. Unlike [Job specifications][jobspecs], Nomad Variables specifications do *not* support HCL2 features like functions. Example variable specification generated by [`nomad var init`][var-init]: ```hcl # 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`: ```shell-session $ nomad var put -in hcl some/path @spec.nv.hcl ``` ## Variable Specification Parameters - `path` `(string: )` - The path to the variable being defined. If empty it must be specified on the command line. - `namespace` `(string: )` - The namespace of the variable. May be overridden by the `-namespace` command line flag or `NOMAD_NAMESPACE` environment variable. - `items` `(object: )` - Object of keys and values to set. Must be strings. See [Variable Restrictions][var-restrict] for details on `path` and `items` name restrictions. [nv]: /nomad/docs/concepts/variables [var-init]: /nomad/docs/commands/var/init [var-put]: /nomad/docs/commands/var/put [jobspecs]: /nomad/docs/job-specification [var-restrict]: /nomad/docs/commands/var/put#restrictions