--json
Output the result in JSON format.
When enabled, Terragrunt will output the validation results in JSON format, making it easier to parse and process programmatically.
Example:
terragrunt hcl validate --json
Environment Variables:
TG_JSON
Recursively find HashiCorp Configuration Language (HCL) files and validate them.
Discover all HCL files in the current directory, and validate them.
terragrunt hcl validate
--json
Output the result in JSON format.
When enabled, Terragrunt will output the validation results in JSON format, making it easier to parse and process programmatically.
Example:
terragrunt hcl validate --json
Environment Variables:
TG_JSON
--show-config-path
Show a list of files with invalid configuration.
When enabled, Terragrunt will display the full paths of files that contain invalid HCL configurations. This is particularly useful when validating multiple files to quickly identify which files need attention.
Example:
terragrunt hcl validate --show-config-path
Environment Variables:
TG_SHOW_CONFIG_PATH
--inputs
Validate that all variables are set by the module a unit provisions.
When enabled, Terragrunt will validate that all variables are set by the module a unit provisions.
Example:
terragrunt hcl validate --inputs
Environment Variables:
TG_INPUTS
--strict
Throw an error if any inputs are set that are not defined in the module that a unit provisions.
When enabled, Terragrunt will throw an error if any inputs are set that are not defined in the module that a unit provisions.
Example:
terragrunt hcl validate --inputs --strict
Environment Variables:
TG_STRICT
--queue-exclude-dir
Unix-style glob of directories to exclude from the queue of Units to run.
Specifies directories to exclude when running commands with all
.
This flag can be specified multiple times to exclude multiple directories. When using the TG_QUEUE_EXCLUDE_DIR
environment variable, specify the directories as a comma-separated list.
To learn more about how to use this flag, see the Stacks feature documentation.
Environment Variables:
TG_QUEUE_EXCLUDE_DIR
--queue-exclude-external
Exclude external dependencies from the queue of Units to run.
When enabled, Terragrunt will exclude external dependencies (dependencies outside the current working directory) from the queue when running commands with all
.
Note that an external dependency is a dependency that is outside the current Terragrunt working directory and is not within any directories specified by queue-include-dir
.
This flag is useful when you want to limit the scope of execution to only units within your current working directory structure.
Environment Variables:
TG_QUEUE_EXCLUDE_EXTERNAL
--queue-excludes-file
Path to a file with a list of directories that need to be excluded when running `run --all` commands.
Units in these directories will be excluded during execution of the commands. If a relative path is specified, it should be relative from —working-dir. This will only exclude the module, not its dependencies.
This flag has been designed to integrate nicely with the hcl validate
command, which can return a list of invalid files delimited by newlines when passed the --show-config-path
flag. To integrate the two, you can run something like the following using bash process substitution:
terragrunt run --all plan --queue-excludes-file <(terragrunt hcl validate --show-config-path || true)
Environment Variables:
TG_QUEUE_EXCLUDES_FILE
--queue-ignore-dag-order
Ignore DAG order for --all commands.
When enabled, Terragrunt will ignore the dependency order when running commands with --all
. This means units will be executed in arbitrary order, which can be useful for read-only operations like plan
.
Note that this can lead to errors if used with commands that modify state, as dependencies might be processed in the wrong order.
To learn more about how to use this flag, see the Stacks feature documentation.
Environment Variables:
TG_QUEUE_IGNORE_DAG_ORDER
--queue-ignore-errors
Continue processing Units even if a dependency fails.
When enabled, Terragrunt will continue processing remaining units even if one fails. This can be useful when you want to see all potential errors in your configuration, rather than stopping at the first failure.
Note that this may lead to incomplete or inconsistent states if used with commands that modify infrastructure.
To learn more about how to use this flag, see the Stacks feature documentation.
Environment Variables:
TG_QUEUE_IGNORE_ERRORS
--queue-include-dir
Unix-style glob of directories to include in the queue of Units to run.
Specifies directories to include when running commands with --all
.
This flag can be specified multiple times to include multiple directories. When using the TG_QUEUE_INCLUDE_DIR
environment variable, specify the directories as a comma-separated list.
To learn more about how to use this flag, see the Stacks feature documentation.
Environment Variables:
TG_QUEUE_INCLUDE_DIR
--queue-include-external
Include external dependencies in the queue of Units to run.
When enabled, Terragrunt will include external dependencies (dependencies discovered outside the current working directory) in the queue when running commands with --all
or --graph
.
Environment Variables:
TG_QUEUE_INCLUDE_EXTERNAL
--queue-include-units-reading
If flag is set, 'run --all' will only run the command against Terragrunt units that read the specified file via an HCL function or include.
This flag works very similarly to the --queue-units-that-include
flag, but instead of looking only for included configurations,
it also looks for configurations that read a given file.
When passed in, the --all
command will include all units (modules) that read a given file into the queue. This is useful
when you want to trigger an update on all units that read or include a given file using HCL functions in their configurations.
Consider the following folder structure:
Suppose that reading-shared-hcl
and also-reading-shared-hcl
both read shared.hcl
in their configurations, like so:
locals { shared = read_terragrunt_config(find_in_parent_folders("shared.hcl"))}
If you run the command run --all init --queue-include-units-reading shared.hcl
from the root folder, both
reading-shared-hcl
and also-reading-shared-hcl
will be run; not not-reading-shared-hcl
.
This is because the read_terragrunt_config
HCL function has a special hook that allows Terragrunt to track that it has
read the file shared.hcl
. This hook is used by all native HCL functions that Terragrunt supports which read files.
Note, however, that there are certain scenarios where Terragrunt may not be able to track that a file has been read this way.
For example, you may be using a bash script to read a file via run_cmd
, or reading the file via OpenTofu code. To support these
use-cases, the mark_as_read
function can be used to manually mark a file as read.
That would look something like this:
locals { filename = mark_as_read("file-read-by-tofu.txt")}
inputs = { filename = local.filename}
Environment Variables:
TG_QUEUE_INCLUDE_UNITS_READING
--queue-strict-include
Only process the directories matched by --queue-include-dir.
When enabled, Terragrunt will only process directories that match the patterns specified by --queue-include-dir
.
For example, with the following directory structure:
Running terragrunt run --all plan --queue-include-dir "prod/*"
would process all directories, but the --all
flag includes by default when no excludes are provided, so the stage
stack would also be included by default.
Running terragrunt run --all plan --queue-include-dir "prod/*" --queue-strict-include
tells Terragrunt to exclude by default, so it only include units prod/app
and prod/db
.
Environment Variables:
TG_QUEUE_STRICT_INCLUDE