dc9c8d4e47
recommend .nomad.hcl for job files instead of .nomad (without .hcl) * nomad job init -> example.nomad.hcl * update docs
103 lines
3.6 KiB
Plaintext
103 lines
3.6 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: 'Commands: job validate'
|
|
description: >
|
|
The job validate command is used to check a job specification for syntax
|
|
errors and validation problems.
|
|
---
|
|
|
|
# Command: job validate
|
|
|
|
**Alias: `nomad validate`**
|
|
|
|
The `job validate` command is used to check an HCL [job specification] for any
|
|
syntax errors or validation problems.
|
|
|
|
## Usage
|
|
|
|
```plaintext
|
|
nomad job validate <file>
|
|
```
|
|
|
|
The `job validate` command requires a single argument, specifying the path to a
|
|
file containing an HCL [job specification]. This file will be read and the job
|
|
checked for any problems. If the supplied path is "-", the job file is read from
|
|
STDIN. Otherwise it is read from the file at the supplied path or downloaded and
|
|
read from URL specified. Nomad downloads the job file using [`go-getter`] and
|
|
supports `go-getter` syntax.
|
|
|
|
On successful validation, exit code 0 will be returned, otherwise an exit code
|
|
of 1 indicates an error.
|
|
|
|
The run command will set the `vault_token` of the job based on the following
|
|
precedence, going from highest to lowest: the `-vault-token` flag, the
|
|
`$VAULT_TOKEN` environment variable and finally the value in the job file.
|
|
|
|
When ACLs are enabled, this command requires a token with the `read-job`
|
|
capability for the job's namespace.
|
|
|
|
## General Options
|
|
|
|
@include 'general_options.mdx'
|
|
|
|
## Validate Options
|
|
|
|
- `-json`: Parses the job file as JSON. If the outer object has a Job field,
|
|
such as from "nomad job inspect" or "nomad run -output", the value of the
|
|
field is used as the job.
|
|
|
|
- `-hcl1`: If set, HCL1 parser is used for parsing the job spec. Takes
|
|
precedence over `-hcl2-strict`.
|
|
|
|
- `-hcl2-strict`: Whether an error should be produced from the HCL2 parser where
|
|
a variable has been supplied which is not defined within the root variables.
|
|
Defaults to true, but ignored if `-hcl1` is defined.
|
|
|
|
- `-vault-token`: Used to validate if the user submitting the job has
|
|
permission to run the job according to its Vault policies. A Vault token must
|
|
be supplied if the [`vault` block `allow_unauthenticated`] is disabled in
|
|
the Nomad server configuration. If the `-vault-token` flag is set, the passed
|
|
Vault token is added to the jobspec before sending to the Nomad servers. This
|
|
allows passing the Vault token without storing it in the job file. This
|
|
overrides the token found in the `$VAULT_TOKEN` environment variable and the
|
|
[`vault_token`] field in the job file. This token is cleared from the job
|
|
after validating and cannot be used within the job executing environment. Use
|
|
the `vault` block when templating in a job with a Vault token.
|
|
|
|
- `-vault-namespace`: If set, the passed Vault namespace is stored in the job
|
|
before sending to the Nomad servers.
|
|
|
|
- `-var=<key=value>`: Variable for template, can be used multiple times.
|
|
|
|
- `-var-file=<path>`: Path to HCL2 file containing user variables.
|
|
|
|
## Examples
|
|
|
|
Validate a JSON job with invalid syntax:
|
|
|
|
```shell-session
|
|
$ nomad job validate -json example.json
|
|
Job validation errors:
|
|
1 error occurred:
|
|
* Missing job datacenters
|
|
```
|
|
|
|
Validate a job that has a configuration that causes warnings:
|
|
|
|
```shell-session
|
|
$ nomad job validate example.nomad.hcl
|
|
Job Warnings:
|
|
1 warning(s):
|
|
|
|
* Group "cache" has warnings: 1 error(s) occurred:
|
|
|
|
* Update max parallel count is greater than task group count (6 > 3). A destructive change would result in the simultaneous replacement of all allocations.
|
|
|
|
Job validation successful
|
|
```
|
|
|
|
[`go-getter`]: https://github.com/hashicorp/go-getter
|
|
[job specification]: /nomad/docs/job-specification
|
|
[`vault` block `allow_unauthenticated`]: /nomad/docs/configuration/vault#allow_unauthenticated
|
|
[`vault_token`]: /nomad/docs/job-specification/job#vault_token
|