mirror of
https://github.com/kemko/nomad.git
synced 2026-01-09 03:45:41 +03:00
* cli: add -json flag to support job commands
While the CLI has always supported running JSON jobs, its support has
been via HCLv2's JSON parsing. I have no idea what format it expects the
job to be in, but it's absolutely not in the same format as the API
expects.
So I ignored that and added a new -json flag to explicitly support *API*
style JSON jobspecs.
The jobspecs can even have the wrapping {"Job": {...}} envelope or not!
* docs: fix example for `nomad job validate`
We haven't been able to validate inside driver config stanzas ever since
the move to task driver plugins. 😭
82 lines
2.3 KiB
Plaintext
82 lines
2.3 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.
|
|
|
|
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.
|
|
|
|
- `-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.
|
|
|
|
- `-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
|
|
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]: /docs/job-specification
|