mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
* Basic implementation for server members and node status * Commands for alloc status and job status * -ui flag for most commands * url hints for variables * url hints for job dispatch, evals, and deployments * agent config ui.cli_url_links to disable * Fix an issue where path prefix was presumed for variables * driver uncomment and general cleanup * -ui flag on the generic status endpoint * Job run command gets namespaces, and no longer gets ui hints for --output flag * Dispatch command hints get a namespace, and bunch o tests * Lots of tests depend on specific output, so let's not mess with them * figured out what flagAddress is all about for testServer, oof * Parallel outside of test instances * Browser-opening test, sorta * Env var for disabling/enabling CLI hints * Addressing a few PR comments * CLI docs available flags now all have -ui * PR comments addressed; switched the env var to be consistent and scrunched monitor-adjacent hints a bit more * ui.Output -> ui.Warn; moves hints from stdout to stderr * isTerminal check and parseBool on command option * terminal.IsTerminal check removed for test-runner-not-being-terminal reasons
115 lines
4.4 KiB
Plaintext
115 lines
4.4 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: "Command: var put"
|
|
description: |-
|
|
The "var put" command writes a variable to the given path in Nomad.
|
|
---
|
|
|
|
# Command: var put
|
|
|
|
The `var put` command creates or updates an existing [variable][].
|
|
|
|
## Usage
|
|
|
|
```plaintext
|
|
nomad var put [options] <variable spec file reference> [<key>=<value>]...
|
|
nomad var put [options] <path to store variable> [<variable spec file reference>] [<key>=<value>]...
|
|
```
|
|
|
|
Variable metadata and items can be supplied using a [variable
|
|
specification][varspec], by using command arguments, or by a combination of the
|
|
two techniques. An entire variable specification can be provided to the command
|
|
via standard input (stdin) by setting the first argument to "-" or from a file
|
|
by using an @-prefixed path to a variable specification file. When providing
|
|
variable data via stdin, you must provide the `-in` flag with the format of the
|
|
specification, which must be either "hcl" or "json".
|
|
|
|
Items to be stored in the variable can be supplied using the specification, as a
|
|
series of key-value pairs, or both. The value for a key-value pair can be a
|
|
string, an @-prefixed file reference, or a '-' to get the value from stdin. Item
|
|
values provided from file references or stdin are consumed as-is with no
|
|
additional processing and do not require the input format to be specified.
|
|
|
|
Values supplied as command line arguments supersede values provided in any
|
|
variable specification piped into the command or loaded from file. If ACLs are
|
|
enabled, this command requires the `variables:write` capability for the
|
|
destination namespace and path. See the [ACL policy][] documentation for
|
|
details.
|
|
|
|
## Restrictions
|
|
|
|
Variable paths are restricted to [RFC3986][] URL-safe characters that don't
|
|
conflict with the use of the characters `@` and `.` in template blocks. This
|
|
includes alphanumeric characters and the special characters `-`, `_`, `~`, and
|
|
`/`. Paths may be up to 128 bytes long. The following regex matches the allowed
|
|
paths: `^[a-zA-Z0-9-_~/]{1,128}$`
|
|
|
|
The keys for the items in a variable may contain any character, but keys
|
|
containing characters outside the set of Unicode letters, Unicode digits, and
|
|
the underscore (`_`) can not be read directly using dotted references in Nomad's
|
|
template engine. Instead, they require the use of the `index` template function
|
|
to directly access their values. This does not impact cases where the keys and
|
|
values are read using the `range` function.
|
|
|
|
Variable items are restricted to 64KiB in size. This limit is calculated by
|
|
taking the sum of the length in bytes of all of the unencrypted keys and values.
|
|
|
|
## General Options
|
|
|
|
@include 'general_options.mdx'
|
|
|
|
## Put Options
|
|
|
|
- `-check-index` `(int: <unset>)`: If set, the variable is only acted upon if
|
|
the server-side version's index matches the provided value. When a variable
|
|
specification contains a modify index, that modify index is used as the
|
|
check-index for the check-and-set operation and can be overridden using this
|
|
flag.
|
|
|
|
- `-force`: Perform this operation regardless of the state or index of the
|
|
variable on the server-side.
|
|
|
|
- `-in` `(enum: hcl | json)`: Parser to use for data supplied via standard input
|
|
or when the variable specification's type can not be known using the file
|
|
extension. Defaults to "json".
|
|
|
|
- `-out` `(enum: go-template | hcl | json | none | table)`: Format to render
|
|
created or updated variable. Defaults to "none" when stdout is a terminal and
|
|
"json" when the output is redirected.
|
|
|
|
- `-template` `(string: "")`: Template to render output with. Required when
|
|
format is "go-template", invalid for other formats.
|
|
|
|
- `-verbose`: Provides additional information via standard error to preserve
|
|
standard output (stdout) for redirected output.
|
|
|
|
- `-ui`: Open the variable page in the browser.
|
|
|
|
## Examples
|
|
|
|
Writes the data to the path "secret/creds":
|
|
|
|
```shell-session
|
|
$ nomad var put secret/creds passcode=my-long-passcode
|
|
```
|
|
|
|
The data can also be consumed from a file on disk by prefixing with the "@"
|
|
symbol. For example, you can store a variable using a specification created with
|
|
the `nomad var init` command.
|
|
|
|
```shell-session
|
|
$ nomad var put secret/foo @spec.nv.json
|
|
```
|
|
|
|
Or it can be read from standard input using the "-" symbol:
|
|
|
|
```shell-session
|
|
$ echo "abcd1234" | nomad var put secret/foo bar=-
|
|
```
|
|
|
|
|
|
[variable]: /nomad/docs/concepts/variables
|
|
[varspec]: /nomad/docs/other-specifications/variables
|
|
[ACL Policy]: /nomad/docs/other-specifications/acl-policy#variables
|
|
[RFC3986]: https://www.rfc-editor.org/rfc/rfc3986#section-2
|