-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add variable specification docs (#16165)
- Loading branch information
1 parent
d0f9008
commit ad35b0d
Showing
3 changed files
with
80 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
--- | ||
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: <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 or `NOMAD_NAMESPACE` | ||
environment variable. | ||
|
||
- `items` `(object: <required>)` - 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 | ||
[var-restrict]: /nomad/docs/commands/var/put#restrictions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters