├── .circleci
└── config.yml
├── .coderabbit.yaml
├── .codespellrc
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── 01-bug_report.md
│ ├── 02-rfc.yml
│ ├── 03-feature-request.md
│ └── 04-iac-engine-bug-report.md
├── cloud-nuke
│ └── config.yml
├── dependabot.yml
├── pull_request_template.md
├── scripts
│ ├── announce-release.sh
│ └── setup
│ │ ├── engine.sh
│ │ ├── gcp.sh
│ │ ├── generate-mocks.sh
│ │ ├── generate-secrets.sh
│ │ ├── provider-cache.sh
│ │ ├── run-setup-scripts.sh
│ │ ├── sops.sh
│ │ ├── ssh.sh
│ │ ├── terraform-switch-latest-oss.sh
│ │ ├── terraform-switch-latest.sh
│ │ ├── terraform-switch.sh
│ │ ├── tofu-switch.sh
│ │ └── windows-setup.ps1
└── workflows
│ ├── announce-release.yml
│ ├── base-test.yml
│ ├── build-no-proxy.yml
│ ├── build.yml
│ ├── cloud-nuke.yml
│ ├── codespell.yml
│ ├── flake.yml
│ ├── integration-test.yml
│ ├── license-check.yml
│ ├── lint.yml
│ ├── markdownlint.yml
│ ├── oidc-integration-test.yml
│ ├── pages.yml
│ ├── precommit.yml
│ ├── stale.yml
│ └── strict-lint.yml
├── .gitignore
├── .golangci.yml
├── .gon_amd64.hcl
├── .gon_arm64.hcl
├── .licensei.toml
├── .markdownlint-cli2.yaml
├── .pre-commit-config.yaml
├── .sonarcloud.properties
├── .strict.golangci.yml
├── CODEOWNERS
├── LICENSE.txt
├── Makefile
├── README.md
├── SECURITY.md
├── _ci
└── verify-release-assets.sh
├── awshelper
├── config.go
├── config_test.go
├── policy.go
└── policy_test.go
├── cli
├── app.go
├── app_test.go
├── commands
│ ├── aws-provider-patch
│ │ ├── aws-provider-patch.go
│ │ ├── aws-provider-patch_test.go
│ │ ├── cli.go
│ │ └── errors.go
│ ├── backend
│ │ ├── bootstrap
│ │ │ ├── bootstrap.go
│ │ │ └── cli.go
│ │ ├── cli.go
│ │ ├── delete
│ │ │ ├── cli.go
│ │ │ └── delete.go
│ │ └── migrate
│ │ │ ├── cli.go
│ │ │ └── migrate.go
│ ├── catalog
│ │ ├── catalog.go
│ │ ├── cli.go
│ │ └── tui
│ │ │ ├── command
│ │ │ └── scaffold.go
│ │ │ ├── components
│ │ │ └── buttonbar
│ │ │ │ └── buttonbar.go
│ │ │ ├── delegate.go
│ │ │ ├── keys.go
│ │ │ ├── model.go
│ │ │ ├── tui.go
│ │ │ ├── update.go
│ │ │ └── view.go
│ ├── commands.go
│ ├── common
│ │ ├── errors.go
│ │ ├── graph
│ │ │ ├── cli.go
│ │ │ └── graph.go
│ │ └── runall
│ │ │ ├── cli.go
│ │ │ ├── errors.go
│ │ │ ├── runall.go
│ │ │ └── runall_test.go
│ ├── dag
│ │ ├── cli.go
│ │ └── graph
│ │ │ ├── cli.go
│ │ │ └── cli_test.go
│ ├── deprecated.go
│ ├── exec
│ │ ├── cli.go
│ │ ├── exec.go
│ │ └── options.go
│ ├── find
│ │ ├── cli.go
│ │ ├── find.go
│ │ ├── find_test.go
│ │ └── options.go
│ ├── hcl
│ │ ├── cli.go
│ │ ├── format
│ │ │ ├── cli.go
│ │ │ ├── format.go
│ │ │ ├── format_test.go
│ │ │ └── testdata
│ │ │ │ └── fixtures
│ │ │ │ ├── a
│ │ │ │ ├── b
│ │ │ │ │ └── c
│ │ │ │ │ │ ├── d
│ │ │ │ │ │ ├── e
│ │ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ │ └── services.hcl
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── expected.hcl
│ │ │ │ ├── ignored
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .history
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── .terragrunt-cache
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── terragrunt.hcl
│ │ └── validate
│ │ │ ├── cli.go
│ │ │ ├── validate.go
│ │ │ └── validate_test.go
│ ├── help
│ │ └── cli.go
│ ├── info
│ │ ├── cli.go
│ │ ├── print
│ │ │ ├── cli.go
│ │ │ └── print.go
│ │ └── strict
│ │ │ └── command.go
│ ├── list
│ │ ├── cli.go
│ │ ├── list.go
│ │ ├── list_test.go
│ │ └── options.go
│ ├── output-module-groups
│ │ ├── cli.go
│ │ └── output-module-groups.go
│ ├── render
│ │ ├── cli.go
│ │ ├── options.go
│ │ ├── render.go
│ │ └── render_test.go
│ ├── run
│ │ ├── cli.go
│ │ ├── cli_test.go
│ │ ├── context.go
│ │ ├── creds
│ │ │ ├── getter.go
│ │ │ └── providers
│ │ │ │ ├── amazonsts
│ │ │ │ └── provider.go
│ │ │ │ ├── externalcmd
│ │ │ │ └── provider.go
│ │ │ │ └── provider.go
│ │ ├── debug.go
│ │ ├── download_source.go
│ │ ├── download_source_test.go
│ │ ├── errors.go
│ │ ├── file_copy_getter.go
│ │ ├── flags.go
│ │ ├── help.go
│ │ ├── hook.go
│ │ ├── run.go
│ │ ├── run_test.go
│ │ ├── target.go
│ │ ├── test-fixtures
│ │ │ ├── dir-with-no-files
│ │ │ │ └── .gitignore
│ │ │ ├── dir-with-no-terraform
│ │ │ │ └── main.yaml
│ │ │ ├── dir-with-terraform-and-tofu-json
│ │ │ │ ├── main.tf.json
│ │ │ │ └── main.tofu.json
│ │ │ ├── dir-with-terraform-and-tofu
│ │ │ │ ├── main.tf
│ │ │ │ └── main.tofu
│ │ │ ├── dir-with-terraform-json
│ │ │ │ └── main.tf.json
│ │ │ ├── dir-with-terraform
│ │ │ │ └── main.tf
│ │ │ ├── dir-with-tofu-json
│ │ │ │ └── main.tofu.json
│ │ │ └── dir-with-tofu
│ │ │ │ └── main.tofu
│ │ ├── version_check.go
│ │ ├── version_check_test.go
│ │ └── version_command.go
│ ├── scaffold
│ │ ├── cli.go
│ │ ├── scaffold.go
│ │ └── scaffold_test.go
│ ├── shortcuts.go
│ ├── stack
│ │ ├── cli.go
│ │ ├── output.go
│ │ ├── output_test.go
│ │ └── stack.go
│ └── version
│ │ └── cli.go
├── flags
│ ├── deprecated_flag.go
│ ├── error_handler.go
│ ├── errors.go
│ ├── flag.go
│ ├── flag_opts.go
│ ├── flag_test.go
│ ├── global
│ │ └── flags.go
│ └── prefix.go
├── help.go
└── help_test.go
├── codegen
├── codegen.go
├── errors.go
├── generate.go
└── generate_test.go
├── config
├── cache_test.go
├── catalog.go
├── catalog_test.go
├── config.go
├── config_as_cty.go
├── config_as_cty_test.go
├── config_helpers.go
├── config_helpers_test.go
├── config_partial.go
├── config_partial_test.go
├── config_test.go
├── context.go
├── cty_helpers.go
├── dependency.go
├── dependency_test.go
├── engine.go
├── errors.go
├── errors_block.go
├── exclude.go
├── feature_flag.go
├── hclparse
│ ├── attributes.go
│ ├── block.go
│ ├── errors.go
│ ├── file.go
│ ├── options.go
│ └── parser.go
├── include.go
├── include_test.go
├── locals.go
├── locals_test.go
├── parsing_context.go
├── stack.go
├── stack_test.go
├── stack_validation.go
├── stack_validation_test.go
├── util.go
├── variable.go
└── variable_test.go
├── configstack
├── errors.go
├── log.go
├── log_test.go
├── module.go
├── module_test.go
├── module_writer.go
├── options.go
├── running_module.go
├── running_module_test.go
├── stack.go
├── stack_test.go
└── test_helpers_test.go
├── docs-starlight
├── .gitignore
├── Dockerfile
├── README.md
├── TODO.md
├── astro.config.mjs
├── bun.lock
├── docker-compose.yml
├── mise.toml
├── package.json
├── patches
│ └── @astrojs%2Fstarlight@0.31.1.patch
├── public
│ ├── d2
│ │ └── docs
│ │ │ └── 02-features
│ │ │ └── 05-run-queue-0.svg
│ ├── favicon.ico
│ ├── favicon.svg
│ └── robots.txt
├── src
│ ├── assets
│ │ ├── gruntwork-logo-mark-black.svg
│ │ ├── gruntwork-logo-mark-white.svg
│ │ ├── horizontal-logo-dark.svg
│ │ ├── horizontal-logo-light.svg
│ │ ├── img
│ │ │ ├── collections
│ │ │ │ └── documentation
│ │ │ │ │ ├── dependency-graph.png
│ │ │ │ │ ├── graph.png
│ │ │ │ │ └── promote-immutable-Terraform-code-across-envs.png
│ │ │ ├── d2
│ │ │ │ └── docs
│ │ │ │ │ └── 02-features
│ │ │ │ │ └── 05-run-queue-0.svg
│ │ │ └── screenshots
│ │ │ │ ├── catalog-screenshot.png
│ │ │ │ ├── find-no-color.png
│ │ │ │ ├── find.png
│ │ │ │ ├── list-long.png
│ │ │ │ ├── list-narrow.png
│ │ │ │ ├── list-tree.png
│ │ │ │ └── list.png
│ │ ├── logo-dark.svg
│ │ ├── logo-light.svg
│ │ └── pipelines.svg
│ ├── components
│ │ ├── Command.astro
│ │ ├── Flag.astro
│ │ ├── Header.astro
│ │ ├── InstallTab.astro
│ │ ├── InstallTabs.astro
│ │ ├── ResponsiveTable.astro
│ │ ├── SiteTitle.astro
│ │ └── SkipLink.astro
│ ├── content.config.ts
│ ├── content
│ │ └── docs
│ │ │ ├── 01-getting-started
│ │ │ ├── 01-quick-start.mdx
│ │ │ ├── 02-overview.mdx
│ │ │ ├── 03-install.mdx
│ │ │ └── 04-terminology.md
│ │ │ ├── 02-features
│ │ │ ├── 01-units.mdx
│ │ │ ├── 02-stacks.mdx
│ │ │ ├── 03-includes.mdx
│ │ │ ├── 04-state-backend.mdx
│ │ │ ├── 05-run-queue.mdx
│ │ │ ├── 06-catalog.md
│ │ │ ├── 07-scaffold.md
│ │ │ ├── 08-extra-arguments.mdx
│ │ │ ├── 09-authentication.md
│ │ │ ├── 10-hooks.md
│ │ │ ├── 11-auto-init.md
│ │ │ ├── 12-runtime-control.md
│ │ │ ├── 13-provider-cache-server.md
│ │ │ ├── 14-engine.mdx
│ │ │ └── 15-cas.md
│ │ │ ├── 03-community
│ │ │ ├── 01-contributing.mdx
│ │ │ ├── 02-support.md
│ │ │ └── 03-license.md
│ │ │ ├── 04-reference
│ │ │ ├── 01-hcl
│ │ │ │ ├── 01-overview.mdx
│ │ │ │ ├── 02-blocks.mdx
│ │ │ │ ├── 03-attributes.mdx
│ │ │ │ └── 04-functions.mdx
│ │ │ ├── 02-cli
│ │ │ │ ├── 01-overview.mdx
│ │ │ │ ├── 02-commands
│ │ │ │ │ ├── 0-opentofu-shortcuts.md
│ │ │ │ │ ├── 0100-run.md
│ │ │ │ │ ├── 0200-exec.md
│ │ │ │ │ ├── 0500-catalog.md
│ │ │ │ │ ├── 0600-scaffold.md
│ │ │ │ │ ├── 0700-find.md
│ │ │ │ │ ├── 0800-list.md
│ │ │ │ │ ├── 1100-render.md
│ │ │ │ │ ├── backend
│ │ │ │ │ │ ├── 0300-bootstrap.md
│ │ │ │ │ │ ├── 0301-migrate.md
│ │ │ │ │ │ └── 0302-delete.md
│ │ │ │ │ ├── dag
│ │ │ │ │ │ └── 1000-graph.md
│ │ │ │ │ ├── hcl
│ │ │ │ │ │ ├── 0900-fmt.md
│ │ │ │ │ │ └── 0901-validate.md
│ │ │ │ │ ├── info
│ │ │ │ │ │ └── 1200-print.md
│ │ │ │ │ └── stack
│ │ │ │ │ │ ├── 0400-generate.md
│ │ │ │ │ │ ├── 0401-run.md
│ │ │ │ │ │ ├── 0402-output.md
│ │ │ │ │ │ └── 0403-clean.md
│ │ │ │ ├── 98-global-flags.mdx
│ │ │ │ └── 99-rules.mdx
│ │ │ ├── 03-strict-controls.mdx
│ │ │ ├── 04-experiments.md
│ │ │ ├── 05-supported-versions.md
│ │ │ ├── 06-lock-files.mdx
│ │ │ ├── 07-logging
│ │ │ │ ├── 01-overview.md
│ │ │ │ └── 02-formatting.md
│ │ │ └── 08-terragrunt-cache.md
│ │ │ ├── 05-troubleshooting
│ │ │ ├── 01-debugging.mdx
│ │ │ ├── 02-open-telemetry.md
│ │ │ └── 03-performance.mdx
│ │ │ └── 06-migrate
│ │ │ ├── 01-migrating-from-root-terragrunt-hcl.md
│ │ │ ├── 02-upgrading-to-terragrunt-0-19-x.md
│ │ │ ├── 03-cli-redesign.md
│ │ │ ├── 04-terragrunt-stacks.mdx
│ │ │ └── 05-bare-include.md
│ ├── data
│ │ ├── commands
│ │ │ ├── backend
│ │ │ │ ├── bootstrap.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ └── migrate.mdx
│ │ │ ├── catalog.mdx
│ │ │ ├── dag
│ │ │ │ └── graph.mdx
│ │ │ ├── exec.mdx
│ │ │ ├── find.mdx
│ │ │ ├── hcl
│ │ │ │ ├── fmt.mdx
│ │ │ │ └── validate.mdx
│ │ │ ├── info
│ │ │ │ └── print.mdx
│ │ │ ├── list.mdx
│ │ │ ├── opentofu-shortcuts.mdx
│ │ │ ├── render.mdx
│ │ │ ├── run.mdx
│ │ │ ├── scaffold.mdx
│ │ │ └── stack
│ │ │ │ ├── clean.mdx
│ │ │ │ ├── generate.mdx
│ │ │ │ ├── output.mdx
│ │ │ │ └── run.mdx
│ │ └── flags
│ │ │ ├── all.mdx
│ │ │ ├── auth-provider-cmd.mdx
│ │ │ ├── backend-bootstrap-all.mdx
│ │ │ ├── backend-bootstrap-config.mdx
│ │ │ ├── backend-bootstrap-download-dir.mdx
│ │ │ ├── backend-delete-all.mdx
│ │ │ ├── backend-delete-config.mdx
│ │ │ ├── backend-delete-download-dir.mdx
│ │ │ ├── backend-delete-force.mdx
│ │ │ ├── backend-migrate-config.mdx
│ │ │ ├── backend-migrate-download-dir.mdx
│ │ │ ├── backend-migrate-force.mdx
│ │ │ ├── backend-require-bootstrap.mdx
│ │ │ ├── catalog-no-include-root.mdx
│ │ │ ├── catalog-root-file-name.mdx
│ │ │ ├── config.mdx
│ │ │ ├── dependency-fetch-output-from-state.mdx
│ │ │ ├── disable-bucket-update.mdx
│ │ │ ├── disable-command-validation.mdx
│ │ │ ├── download-dir.mdx
│ │ │ ├── engine-cache-path.mdx
│ │ │ ├── engine-log-level.mdx
│ │ │ ├── engine-skip-check.mdx
│ │ │ ├── experiment-mode.mdx
│ │ │ ├── experiment.mdx
│ │ │ ├── experimental-engine.mdx
│ │ │ ├── feature.mdx
│ │ │ ├── find-dag.mdx
│ │ │ ├── find-dependencies.mdx
│ │ │ ├── find-exclude.mdx
│ │ │ ├── find-external.mdx
│ │ │ ├── find-format.mdx
│ │ │ ├── find-hidden.mdx
│ │ │ ├── find-include.mdx
│ │ │ ├── find-json.mdx
│ │ │ ├── graph.mdx
│ │ │ ├── hcl-fmt-check.mdx
│ │ │ ├── hcl-fmt-diff.mdx
│ │ │ ├── hcl-fmt-exclude-dir.mdx
│ │ │ ├── hcl-fmt-file.mdx
│ │ │ ├── hcl-fmt-stdin.mdx
│ │ │ ├── hcl-validate-inputs.mdx
│ │ │ ├── hcl-validate-json.mdx
│ │ │ ├── hcl-validate-show-config-path.mdx
│ │ │ ├── hcl-validate-strict.mdx
│ │ │ ├── help.mdx
│ │ │ ├── iam-assume-role-duration.mdx
│ │ │ ├── iam-assume-role-session-name.mdx
│ │ │ ├── iam-assume-role-web-identity-token.mdx
│ │ │ ├── iam-assume-role.mdx
│ │ │ ├── in-download-dir.mdx
│ │ │ ├── inputs-debug.mdx
│ │ │ ├── list-dag.mdx
│ │ │ ├── list-dependencies.mdx
│ │ │ ├── list-external.mdx
│ │ │ ├── list-format.mdx
│ │ │ ├── list-hidden.mdx
│ │ │ ├── list-long.mdx
│ │ │ ├── list-tree.mdx
│ │ │ ├── log-custom-format.mdx
│ │ │ ├── log-disable.mdx
│ │ │ ├── log-format.mdx
│ │ │ ├── log-level.mdx
│ │ │ ├── log-show-abs-paths.mdx
│ │ │ ├── no-auto-approve.mdx
│ │ │ ├── no-auto-init.mdx
│ │ │ ├── no-auto-retry.mdx
│ │ │ ├── no-color.mdx
│ │ │ ├── no-destroy-dependencies-check.mdx
│ │ │ ├── no-stack-generate.mdx
│ │ │ ├── non-interactive.mdx
│ │ │ ├── parallelism.mdx
│ │ │ ├── provider-cache-dir.mdx
│ │ │ ├── provider-cache-hostname.mdx
│ │ │ ├── provider-cache-port.mdx
│ │ │ ├── provider-cache-registry-names.mdx
│ │ │ ├── provider-cache-token.mdx
│ │ │ ├── provider-cache.mdx
│ │ │ ├── queue-construct-as.mdx
│ │ │ ├── queue-exclude-dir.mdx
│ │ │ ├── queue-exclude-external.mdx
│ │ │ ├── queue-excludes-file.mdx
│ │ │ ├── queue-ignore-dag-order.mdx
│ │ │ ├── queue-ignore-errors.mdx
│ │ │ ├── queue-include-dir.mdx
│ │ │ ├── queue-include-external.mdx
│ │ │ ├── queue-include-units-reading.mdx
│ │ │ ├── queue-strict-include.mdx
│ │ │ ├── render-all.mdx
│ │ │ ├── render-format.mdx
│ │ │ ├── render-write.mdx
│ │ │ ├── scaffold-no-include-root.mdx
│ │ │ ├── scaffold-root-file-name.mdx
│ │ │ ├── scaffold-var-file.mdx
│ │ │ ├── scaffold-var.mdx
│ │ │ ├── source-map.mdx
│ │ │ ├── source-update.mdx
│ │ │ ├── source.mdx
│ │ │ ├── stack-output-format.mdx
│ │ │ ├── stack-output-json.mdx
│ │ │ ├── stack-output-raw.mdx
│ │ │ ├── strict-control.mdx
│ │ │ ├── strict-mode.mdx
│ │ │ ├── tf-forward-stdout.mdx
│ │ │ ├── tf-path.mdx
│ │ │ ├── units-that-include.mdx
│ │ │ ├── use-partial-parse-config-cache.mdx
│ │ │ ├── version.mdx
│ │ │ └── working-dir.mdx
│ ├── layouts
│ │ └── BaseLayout.astro
│ ├── lib
│ │ └── commands
│ │ │ ├── headings
│ │ │ └── index.ts
│ │ │ └── sidebar
│ │ │ └── index.ts
│ ├── pages
│ │ ├── api
│ │ │ └── compatibility.json.ts
│ │ ├── docs
│ │ │ └── reference
│ │ │ │ └── cli
│ │ │ │ └── commands
│ │ │ │ └── [...slug].astro
│ │ └── index.astro
│ └── styles
│ │ └── global.css
├── tsconfig.json
└── vercel.json
├── docs
├── .gitignore
├── .tool-versions
├── CNAME
├── Dockerfile
├── Gemfile
├── Gemfile.lock
├── README.md
├── _config.yml
├── _docs
│ ├── 01_getting-started
│ │ ├── 01-quick-start.md
│ │ ├── 02-overview.md
│ │ ├── 03-install.md
│ │ └── 04-terminology.md
│ ├── 02_features
│ │ ├── 01-units.md
│ │ ├── 02-stacks.md
│ │ ├── 03-includes.md
│ │ ├── 04-state-backend.md
│ │ ├── 05-run-queue.md
│ │ ├── 06-catalog.md
│ │ ├── 07-scaffold.md
│ │ ├── 08-extra-arguments.md
│ │ ├── 09-aws-authentication.md
│ │ ├── 10-hooks.md
│ │ ├── 11-auto-init.md
│ │ ├── 12-runtime-control.md
│ │ ├── 13-provider-cache-server.md
│ │ ├── 14-engine.md
│ │ └── 15-cas.md
│ ├── 03_community
│ │ ├── 01-contributing.md
│ │ ├── 02-support.md
│ │ └── 03-license.md
│ ├── 04_reference
│ │ ├── 01-configuration.md
│ │ ├── 02-cli-options.md
│ │ ├── 03-built-in-functions.md
│ │ ├── 04-config-blocks-and-attributes.md
│ │ ├── 05-strict-mode.md
│ │ ├── 06-experiments.md
│ │ ├── 07-supported-versions.md
│ │ ├── 08-lock-file-handling.md
│ │ ├── 09-logging.md
│ │ ├── 10-log-formatting.md
│ │ └── 11-terragrunt-cache.md
│ ├── 05_troubleshooting
│ │ ├── 01-debugging.md
│ │ ├── 02-open-telemetry.md
│ │ └── 03-performance.md
│ └── 06_migration_guides
│ │ ├── 01-migrating-from-root-terragrunt-hcl.md
│ │ ├── 02-upgrading_to_terragrunt_0.19.x.md
│ │ ├── 03-cli-redesign.md
│ │ ├── 04-terragrunt-stacks.md
│ │ └── 05-bare-include.md
├── _includes
│ ├── banner.html
│ ├── built-by.html
│ ├── canonical-url.html
│ ├── collection_browser
│ │ ├── _cta-section.html
│ │ ├── _doc-header.html
│ │ ├── _doc-page.html
│ │ ├── _doc-sidebar.html
│ │ ├── _doc-thumb.html
│ │ ├── _docs-list.html
│ │ ├── _no-search-results.html
│ │ ├── _search.html
│ │ ├── _sidebar.html
│ │ ├── browser.html
│ │ └── navigation
│ │ │ └── _collection_toc.html
│ ├── favicon.html
│ ├── footer.html
│ ├── get-access.html
│ ├── head.html
│ ├── header-min.html
│ ├── header.html
│ ├── links-n-built-by.html
│ ├── links-n-get-access.html
│ ├── links-n-use-cases.html
│ ├── links-section.html
│ ├── logo.html
│ ├── navbar.html
│ ├── scripts.html
│ ├── share-meta.html
│ ├── styles.html
│ └── use-cases-box.html
├── _layouts
│ ├── collection-browser-doc.html
│ ├── collection-browser.html
│ ├── contact.html
│ ├── default.html
│ ├── post.html
│ └── subpage.html
├── _pages
│ ├── 404
│ │ └── 404.md
│ ├── commercial-support
│ │ └── index.html
│ ├── contact
│ │ ├── _contact-form.html
│ │ └── index.html
│ ├── cookie-policy
│ │ └── index.md
│ ├── docs
│ │ └── index.html
│ ├── index
│ │ ├── _built_by.html
│ │ ├── _form.html
│ │ ├── _header.html
│ │ ├── _key-features.html
│ │ └── index.html
│ └── thanks
│ │ └── index.html
├── _posts
│ └── .keep
├── assets
│ ├── css
│ │ ├── bootstrap
│ │ │ └── scss
│ │ │ │ └── bootstrap.scss
│ │ ├── collection_browser.scss
│ │ ├── components.scss
│ │ ├── global.scss
│ │ ├── pages
│ │ │ ├── contact.scss
│ │ │ ├── cookie-policy.scss
│ │ │ ├── home.scss
│ │ │ └── support.scss
│ │ ├── prism.css
│ │ ├── styles.scss
│ │ ├── subpage.scss
│ │ └── utilities.scss
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── img
│ │ ├── 05-run-queue-0.svg
│ │ ├── arrows
│ │ │ ├── arrow-down.svg
│ │ │ ├── arrow-right.svg
│ │ │ ├── arrow-thin-down.svg
│ │ │ ├── arrow-thin-right.svg
│ │ │ └── dash-thin.svg
│ │ ├── collections
│ │ │ └── documentation
│ │ │ │ ├── dependency-graph.png
│ │ │ │ ├── graph.png
│ │ │ │ └── promote-immutable-Terraform-code-across-envs.png
│ │ ├── commercial-support
│ │ │ ├── terragrunt-mobile-links.svg
│ │ │ └── top-right.svg
│ │ ├── contact
│ │ │ ├── bottom.svg
│ │ │ ├── bottom@3x.png
│ │ │ ├── contact-mobile-bottom.svg
│ │ │ ├── right.svg
│ │ │ ├── right@3x.png
│ │ │ ├── top.svg
│ │ │ └── top@3x.png
│ │ ├── favicon
│ │ │ ├── android-icon-144x144.png
│ │ │ ├── android-icon-192x192.png
│ │ │ ├── android-icon-36x36.png
│ │ │ ├── android-icon-48x48.png
│ │ │ ├── android-icon-72x72.png
│ │ │ ├── android-icon-96x96.png
│ │ │ ├── apple-icon-114x114.png
│ │ │ ├── apple-icon-120x120.png
│ │ │ ├── apple-icon-144x144.png
│ │ │ ├── apple-icon-152x152.png
│ │ │ ├── apple-icon-180x180.png
│ │ │ ├── apple-icon-57x57.png
│ │ │ ├── apple-icon-60x60.png
│ │ │ ├── apple-icon-72x72.png
│ │ │ ├── apple-icon-76x76.png
│ │ │ ├── apple-icon-precomposed.png
│ │ │ ├── apple-icon.png
│ │ │ ├── browserconfig.xml
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── favicon-96x96.png
│ │ │ ├── favicon.ico
│ │ │ ├── manifest.json
│ │ │ ├── ms-icon-144x144.png
│ │ │ ├── ms-icon-150x150.png
│ │ │ ├── ms-icon-310x310.png
│ │ │ └── ms-icon-70x70.png
│ │ ├── home
│ │ │ ├── built-by-bg.svg
│ │ │ ├── built-by-left.png
│ │ │ ├── built-by-right.png
│ │ │ ├── links-shapes-left.png
│ │ │ ├── links-shapes-right.png
│ │ │ ├── shape-single-right.svg
│ │ │ ├── t-all.png
│ │ │ ├── t-o-1@3x.png
│ │ │ ├── t-o-2@3x.png
│ │ │ ├── t-o-3@3x.png
│ │ │ └── top_left.svg
│ │ ├── icons
│ │ │ ├── bug.svg
│ │ │ ├── chatbubbles.svg
│ │ │ ├── checkmark-blue.svg
│ │ │ ├── checkmark-darkblue.svg
│ │ │ ├── codereviews.svg
│ │ │ ├── menu-dots-icon.png
│ │ │ ├── play_icon.png
│ │ │ ├── quote.svg
│ │ │ ├── wand.svg
│ │ │ └── xmark.svg
│ │ ├── key-features
│ │ │ ├── key-features-backend-dry-sm.png
│ │ │ ├── key-features-backend-dry.png
│ │ │ ├── key-features-backend-dry.svg
│ │ │ ├── key-features-cli-dry-sm.png
│ │ │ ├── key-features-cli-dry.svg
│ │ │ ├── key-features-multiple-modules-at-once-sm.png
│ │ │ ├── key-features-multiple-modules-at-once.png
│ │ │ ├── key-features-multiple-modules-at-once.svg
│ │ │ ├── key-features-terraform-code-dry-sm.png
│ │ │ ├── key-features-terraform-code-dry.png
│ │ │ └── key-features-terraform-code-dry.svg
│ │ ├── link-icon.png
│ │ ├── link-icon.svg
│ │ ├── logos
│ │ │ ├── discord-logo.png
│ │ │ └── github-logo.png
│ │ ├── no-search-results.png
│ │ ├── screenshots
│ │ │ ├── catalog-screenshot.png
│ │ │ ├── custom-log-format-1.jpg
│ │ │ ├── find-no-color.png
│ │ │ ├── find.png
│ │ │ ├── list-long.png
│ │ │ ├── list-narrow.png
│ │ │ ├── list-tree.png
│ │ │ └── list.png
│ │ └── terragrunt-thumbnail.png
│ └── js
│ │ ├── collection-browser_scroll.js
│ │ ├── collection-browser_search.js
│ │ ├── collection-browser_toc.js
│ │ ├── contact-form.js
│ │ ├── cookie.js
│ │ ├── main.js
│ │ └── prism.js
├── docker-compose.yml
├── jekyll-serve.sh
└── scripts
│ ├── convert_adoc_to_md.sh
│ └── convert_md_to_adoc.sh
├── engine
├── engine.go
├── engine_test.go
├── public_keys.go
└── verification.go
├── go.mod
├── go.sum
├── internal
├── cache
│ ├── cache.go
│ ├── cache_test.go
│ └── context.go
├── cas
│ ├── benchmark_test.go
│ ├── cas.go
│ ├── cas_test.go
│ ├── content.go
│ ├── content_test.go
│ ├── errors.go
│ ├── errors_test.go
│ ├── getter.go
│ ├── getter_ssh_test.go
│ ├── getter_test.go
│ ├── git.go
│ ├── git_test.go
│ ├── integration_test.go
│ ├── race_test.go
│ ├── store.go
│ ├── store_test.go
│ ├── tree.go
│ └── tree_test.go
├── cli
│ ├── app.go
│ ├── args.go
│ ├── args_test.go
│ ├── autocomplete.go
│ ├── bool_flag.go
│ ├── bool_flag_test.go
│ ├── category.go
│ ├── command.go
│ ├── command_test.go
│ ├── commands.go
│ ├── context.go
│ ├── errors.go
│ ├── exit_code.go
│ ├── flag.go
│ ├── flag_test.go
│ ├── flags.go
│ ├── flags_test.go
│ ├── funcs.go
│ ├── generic_flag.go
│ ├── generic_flag_test.go
│ ├── help.go
│ ├── map_flag.go
│ ├── map_flag_test.go
│ ├── slice_flag.go
│ ├── slice_flag_test.go
│ ├── sort.go
│ └── sort_test.go
├── cloner
│ ├── clone.go
│ └── cloner.go
├── ctyhelper
│ ├── helper.go
│ └── helper_test.go
├── discovery
│ ├── discovery.go
│ └── discovery_test.go
├── errors
│ ├── errors.go
│ ├── export.go
│ ├── multierror.go
│ └── util.go
├── experiment
│ ├── errors.go
│ ├── experiment.go
│ ├── experiment_test.go
│ └── warnings.go
├── hclhelper
│ ├── wrap.go
│ └── wrap_test.go
├── locks
│ └── lock.go
├── os
│ ├── exec
│ │ ├── cmd.go
│ │ ├── cmd_unix_test.go
│ │ ├── cmd_windows_test.go
│ │ ├── opts.go
│ │ ├── ptty_unix.go
│ │ ├── ptty_windows.go
│ │ └── testdata
│ │ │ ├── infinite_loop.bat
│ │ │ ├── test_exit_code.bat
│ │ │ ├── test_exit_code.sh
│ │ │ ├── test_sigint_multiple.sh
│ │ │ └── test_sigint_wait.sh
│ └── signal
│ │ ├── context_canceled.go
│ │ ├── signal.go
│ │ ├── signal_unix.go
│ │ └── signal_windows.go
├── providercache
│ ├── provider_cache.go
│ └── provider_cache_test.go
├── queue
│ ├── queue.go
│ └── queue_test.go
├── remotestate
│ ├── backend
│ │ ├── backend.go
│ │ ├── common.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── errors.go
│ │ ├── gcs
│ │ │ ├── backend.go
│ │ │ ├── client.go
│ │ │ ├── config.go
│ │ │ ├── config_test.go
│ │ │ ├── errors.go
│ │ │ └── remote_state_config.go
│ │ └── s3
│ │ │ ├── backend.go
│ │ │ ├── backend_test.go
│ │ │ ├── client.go
│ │ │ ├── client_test.go
│ │ │ ├── config.go
│ │ │ ├── counting_semaphore.go
│ │ │ ├── counting_semaphore_test.go
│ │ │ ├── errors.go
│ │ │ ├── remote_state_config.go
│ │ │ ├── remote_state_config_test.go
│ │ │ └── retryer.go
│ ├── config.go
│ ├── remote_encryption.go
│ ├── remote_encryption_test.go
│ ├── remote_state.go
│ ├── remote_state_test.go
│ ├── terraform_state_file.go
│ └── terraform_state_file_test.go
├── services
│ └── catalog
│ │ ├── catalog.go
│ │ ├── catalog_test.go
│ │ └── module
│ │ ├── doc.go
│ │ ├── doc_test.go
│ │ ├── module.go
│ │ ├── repo.go
│ │ ├── repo_test.go
│ │ └── testdata
│ │ └── find_modules
│ │ ├── gitdir
│ │ ├── HEAD
│ │ └── config
│ │ └── modules
│ │ ├── eks-alb-ingress-controller-iam-policy
│ │ ├── README.md
│ │ ├── main.tf
│ │ └── variables.tf
│ │ ├── eks-alb-ingress-controller
│ │ ├── README.md
│ │ ├── main.tf
│ │ └── variables.tf
│ │ └── eks-aws-auth-merger
│ │ ├── README.adoc
│ │ ├── core-concepts.md
│ │ ├── main.tf
│ │ └── variables.tf
├── strict
│ ├── category.go
│ ├── control.go
│ ├── control_test.go
│ ├── controls
│ │ ├── control.go
│ │ ├── controls.go
│ │ ├── deprecated_command.go
│ │ ├── deprecated_env_var.go
│ │ └── deprecated_flag_name.go
│ ├── errors.go
│ ├── status.go
│ ├── strict.go
│ └── view
│ │ ├── plaintext
│ │ ├── plaintext.go
│ │ ├── render.go
│ │ └── template.go
│ │ ├── render.go
│ │ ├── view.go
│ │ └── writer.go
├── view
│ ├── diagnostic
│ │ ├── diagnostic.go
│ │ ├── expression_value.go
│ │ ├── extra.go
│ │ ├── function.go
│ │ ├── range.go
│ │ ├── servity.go
│ │ └── snippet.go
│ ├── human_render.go
│ ├── json_render.go
│ ├── view.go
│ └── writer.go
└── worker
│ ├── worker.go
│ └── worker_test.go
├── main.go
├── mise.cicd.toml
├── mise.toml
├── options
├── auto_retry_options.go
└── options.go
├── pkg
├── log
│ ├── context.go
│ ├── fields.go
│ ├── format
│ │ ├── format.go
│ │ ├── formatter.go
│ │ ├── options
│ │ │ ├── align.go
│ │ │ ├── case.go
│ │ │ ├── color.go
│ │ │ ├── common.go
│ │ │ ├── content.go
│ │ │ ├── errors.go
│ │ │ ├── escape.go
│ │ │ ├── level_format.go
│ │ │ ├── option.go
│ │ │ ├── path_format.go
│ │ │ ├── prefix.go
│ │ │ ├── suffix.go
│ │ │ ├── time_format.go
│ │ │ ├── util.go
│ │ │ └── width.go
│ │ └── placeholders
│ │ │ ├── common.go
│ │ │ ├── errors.go
│ │ │ ├── field.go
│ │ │ ├── interval.go
│ │ │ ├── level.go
│ │ │ ├── message.go
│ │ │ ├── placeholder.go
│ │ │ ├── plaintext.go
│ │ │ └── time.go
│ ├── formatter.go
│ ├── level.go
│ ├── log.go
│ ├── logger.go
│ ├── options.go
│ ├── util.go
│ └── writer
│ │ ├── options.go
│ │ └── writer.go
└── pkg.go
├── scripts
├── gofmtcheck.sh
└── pre-commit
├── shell
├── error_explainer.go
├── error_explainer_test.go
├── git.go
├── prompt.go
├── run_cmd.go
├── run_cmd_output_test.go
├── run_cmd_test.go
├── run_cmd_unix_test.go
├── run_cmd_windows_test.go
└── testdata
│ ├── test_outputs.sh
│ ├── test_sigint_wait.bat
│ └── test_sigint_wait.sh
├── telemetry
├── context.go
├── errors.go
├── meter.go
├── meter_test.go
├── opts.go
├── telemeter.go
├── tracer.go
├── tracer_test.go
└── util.go
├── test
├── benchmarks
│ ├── .gitignore
│ ├── helpers
│ │ └── helpers.go
│ └── integration_bench_test.go
├── cliconfig.go
├── fixtures
│ ├── assume-role-web-identity
│ │ └── file-path
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── assume-role
│ │ ├── duration
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── external-id-with-comma
│ │ │ └── terragrunt.hcl
│ │ └── external-id
│ │ │ └── terragrunt.hcl
│ ├── auth-provider-cmd
│ │ ├── creds-for-dependency
│ │ │ ├── dependency
│ │ │ │ ├── creds.config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── dependent
│ │ │ │ ├── creds.config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── mock-auth-cmd.sh
│ │ ├── multiple-apps
│ │ │ ├── app1
│ │ │ │ ├── creds.config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── creds.config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app3
│ │ │ │ ├── creds.config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── creds.config
│ │ │ ├── root.hcl
│ │ │ └── test-creds.sh
│ │ ├── oidc
│ │ │ ├── main.tf
│ │ │ ├── mock-auth-cmd.sh
│ │ │ └── terragrunt.hcl
│ │ ├── remote-state
│ │ │ ├── creds.config
│ │ │ └── terragrunt.hcl
│ │ └── sops
│ │ │ ├── creds.config
│ │ │ ├── main.tf
│ │ │ ├── secrets.json
│ │ │ └── terragrunt.hcl
│ ├── auto-retry
│ │ ├── apply-all
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── configurable-retries-incorrect-retry-attempts
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── configurable-retries-incorrect-sleep-interval
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── configurable-retries
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── custom-errors-not-set
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ ├── custom-errors
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ ├── exhaust
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── get-default-errors
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── re-run
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── aws-provider-patch
│ │ ├── example-module
│ │ │ └── main.tf
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── broken-dependency
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── broken-locals
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── buffer-module-output
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── app2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── app3
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── catalog
│ │ ├── complex-legacy-root
│ │ │ ├── common.hcl
│ │ │ ├── dev
│ │ │ │ ├── account.hcl
│ │ │ │ └── us-west-1
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── modules
│ │ │ │ │ └── terraform-aws-eks
│ │ │ │ │ │ └── main.tf
│ │ │ │ │ ├── region.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── prod
│ │ │ │ ├── account.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── stage
│ │ │ │ ├── account.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── complex
│ │ │ ├── common.hcl
│ │ │ ├── dev
│ │ │ │ ├── account.hcl
│ │ │ │ └── us-west-1
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── modules
│ │ │ │ │ └── terraform-aws-eks
│ │ │ │ │ │ └── main.tf
│ │ │ │ │ ├── region.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── prod
│ │ │ │ ├── account.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── root.hcl
│ │ │ └── stage
│ │ │ │ ├── account.hcl
│ │ │ │ └── terragrunt.hcl
│ │ ├── config1.hcl
│ │ ├── config2.hcl
│ │ ├── config3.hcl
│ │ ├── config4.hcl
│ │ └── terraform-aws-eks
│ │ │ └── README.md
│ ├── cli-flag-hints
│ │ └── terragrunt.hcl
│ ├── codegen
│ │ ├── generate-attr
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── test.tf
│ │ ├── generate-block
│ │ │ ├── disable-signature
│ │ │ │ ├── .gitignore
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── disable
│ │ │ │ ├── .gitignore
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── enable
│ │ │ │ ├── .gitignore
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── nested
│ │ │ │ ├── .gitignore
│ │ │ │ ├── child_inherit
│ │ │ │ │ ├── backend.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── child_overwrite
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── root.hcl
│ │ │ ├── overwrite
│ │ │ │ ├── .gitignore
│ │ │ │ ├── backend.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── overwrite_terragrunt
│ │ │ │ ├── backend.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── overwrite_terragrunt_error
│ │ │ │ ├── backend.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── same_name_error
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── same_name_includes_error
│ │ │ │ ├── app1.hcl
│ │ │ │ ├── app2.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── same_name_pair_error
│ │ │ │ └── terragrunt.hcl
│ │ │ └── skip
│ │ │ │ └── terragrunt.hcl
│ │ ├── module
│ │ │ └── main.tf
│ │ ├── remote-state
│ │ │ ├── base
│ │ │ │ ├── .gitignore
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── error
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── overwrite
│ │ │ │ ├── .gitignore
│ │ │ │ ├── backend.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── s3
│ │ │ │ ├── .gitignore
│ │ │ │ └── terragrunt.hcl
│ │ │ └── skip
│ │ │ │ ├── backend.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── remove-file
│ │ │ ├── remove
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── remove_terragrunt
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── remove_terragrunt_error
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── skip
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── commands-that-need-input
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── config-files
│ │ ├── ignore-cached-config
│ │ │ └── terragrunt.hcl
│ │ ├── ignore-terraform-data-dir
│ │ │ ├── .tf_data
│ │ │ │ └── modules
│ │ │ │ │ └── mod
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── root.hcl
│ │ │ └── subdir
│ │ │ │ ├── .terraform
│ │ │ │ └── modules
│ │ │ │ │ └── mod
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── .tf_data
│ │ │ │ └── modules
│ │ │ │ │ └── mod
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-configs
│ │ │ ├── subdir-1
│ │ │ │ └── empty.txt
│ │ │ ├── subdir-2
│ │ │ │ └── subdir
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── subdir-3
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── multiple-json-configs
│ │ │ ├── subdir-1
│ │ │ │ └── empty.txt
│ │ │ ├── subdir-2
│ │ │ │ └── subdir
│ │ │ │ │ └── terragrunt.hcl.json
│ │ │ ├── subdir-3
│ │ │ │ └── terragrunt.hcl.json
│ │ │ └── terragrunt.hcl.json
│ │ ├── multiple-mixed-configs
│ │ │ ├── subdir-1
│ │ │ │ └── empty.txt
│ │ │ ├── subdir-2
│ │ │ │ └── subdir
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── subdir-3
│ │ │ │ └── terragrunt.hcl.json
│ │ │ └── terragrunt.hcl.json
│ │ ├── none
│ │ │ ├── empty.txt
│ │ │ └── subdir
│ │ │ │ └── main.tf
│ │ ├── one-config
│ │ │ ├── empty.txt
│ │ │ └── subdir
│ │ │ │ └── terragrunt.hcl
│ │ ├── one-json-config
│ │ │ ├── empty.txt
│ │ │ └── subdir
│ │ │ │ └── terragrunt.hcl.json
│ │ ├── single-json-config
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl.json
│ │ └── with-non-default-names
│ │ │ ├── app
│ │ │ ├── main.hcl
│ │ │ └── main.tf
│ │ │ ├── common.hcl
│ │ │ ├── dependency
│ │ │ ├── another-name.hcl
│ │ │ └── main.tf
│ │ │ └── parent.hcl
│ ├── config-terraform-functions
│ │ ├── other-file.txt
│ │ └── terragrunt.hcl
│ ├── dependency-optimisation
│ │ ├── module-a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-c
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── dependency-output
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── destroy-dependent-module
│ │ ├── a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── c
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── destroy-order
│ │ ├── app
│ │ │ ├── module-a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-b
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-c
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-d
│ │ │ │ └── terragrunt.hcl
│ │ │ └── module-e
│ │ │ │ └── terragrunt.hcl
│ │ └── hello
│ │ │ ├── hello
│ │ │ └── main.tf
│ │ │ └── main.tf
│ ├── destroy-warning
│ │ ├── app-v1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── app-v2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── root.hcl
│ │ └── vpc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── detailed-exitcode
│ │ ├── changes
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── error
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── fail-on-first-run
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── dirs
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── disabled-path
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── disabled
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── unit-disabled
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── unit-enabled
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── unit-without-enabled
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── docs
│ │ ├── 01-quick-start
│ │ │ ├── step-01.1
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── step-01
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── step-02
│ │ │ │ ├── bar
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── step-03
│ │ │ │ ├── bar
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ └── main.tf
│ │ │ ├── step-04
│ │ │ │ ├── .gitignore
│ │ │ │ ├── bar
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ └── main.tf
│ │ │ ├── step-05.1
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── bar
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ └── main.tf
│ │ │ ├── step-05
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── bar
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ └── main.tf
│ │ │ ├── step-06
│ │ │ │ ├── .gitignore
│ │ │ │ ├── bar
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── output.tf
│ │ │ ├── step-07.1
│ │ │ │ ├── .gitignore
│ │ │ │ ├── bar
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── output.tf
│ │ │ └── step-07
│ │ │ │ ├── .gitignore
│ │ │ │ ├── bar
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── foo
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── shared
│ │ │ │ ├── main.tf
│ │ │ │ └── output.tf
│ │ └── 02-overview
│ │ │ ├── step-01-terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ │ ├── step-02-dependencies
│ │ │ ├── ec2
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── root.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── step-03-mock-outputs
│ │ │ ├── ec2
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── root.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── step-04-configuration-hierarchy
│ │ │ ├── root.hcl
│ │ │ └── us-east-1
│ │ │ │ ├── ec2
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── region.hcl
│ │ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ └── step-05-exposed-includes
│ │ │ ├── root.hcl
│ │ │ ├── us-east-1
│ │ │ ├── ec2
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── region.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ └── us-west-2
│ │ │ ├── ec2
│ │ │ └── terragrunt.hcl
│ │ │ ├── region.hcl
│ │ │ └── vpc
│ │ │ └── terragrunt.hcl
│ ├── download-source
│ │ ├── download-dir-version-file-local-hash
│ │ │ ├── main.tf
│ │ │ └── version-file.txt
│ │ ├── download-dir-version-file-no-query
│ │ │ ├── main.tf
│ │ │ └── version-file.txt
│ │ ├── download-dir-version-file-tf-code
│ │ │ ├── main.tf
│ │ │ └── version-file.txt
│ │ ├── download-dir-version-file
│ │ │ └── version-file.txt
│ │ ├── hello-world-2
│ │ │ ├── main.tf
│ │ │ └── version-file.txt
│ │ ├── hello-world-local-hash-failed
│ │ │ └── main.tf
│ │ ├── hello-world-local-hash
│ │ │ └── main.tf
│ │ ├── hello-world-version-remote
│ │ │ ├── main.tf
│ │ │ └── version-file.txt
│ │ └── hello-world
│ │ │ └── main.tf
│ ├── download
│ │ ├── custom-lock-file-module
│ │ │ └── main.tf
│ │ ├── custom-lock-file-terraform
│ │ │ ├── .terraform.lock.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── custom-lock-file-tofu
│ │ │ ├── .terraform.lock.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── extra-args
│ │ │ └── common.tfvars
│ │ ├── hello-world-no-remote
│ │ │ └── main.tf
│ │ ├── hello-world-with-backend
│ │ │ └── main.tf
│ │ ├── hello-world
│ │ │ ├── hello
│ │ │ │ └── main.tf
│ │ │ └── main.tf
│ │ ├── init-on-source-change
│ │ │ └── terragrunt.hcl
│ │ ├── invalid-path
│ │ │ └── terragrunt.hcl
│ │ ├── local-disable-copy-terraform-lock-file
│ │ │ └── terragrunt.hcl
│ │ ├── local-include-disable-copy-lock-file
│ │ │ ├── module-a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-b
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── local-include-with-prevent-destroy-dependencies
│ │ │ ├── module-a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-b
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-c
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── local-relative-extra-args-unix
│ │ │ └── terragrunt.hcl
│ │ ├── local-relative
│ │ │ └── terragrunt.hcl
│ │ ├── local-windows
│ │ │ ├── JZwoL6Viko8bzuRvTOQFx3Jh8vs
│ │ │ │ └── 3mU4huxMLOXOW5ZgJOFXGUFDKc8
│ │ │ │ │ ├── hello
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── local-with-allowed-hidden
│ │ │ ├── live
│ │ │ │ └── terragrunt.hcl
│ │ │ └── modules
│ │ │ │ ├── .nonce
│ │ │ │ └── main.tf
│ │ ├── local-with-backend
│ │ │ └── terragrunt.hcl
│ │ ├── local-with-exclude-dir
│ │ │ ├── integration-env
│ │ │ │ ├── aws
│ │ │ │ │ └── module-aws-a
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── gce
│ │ │ │ │ ├── module-gce-b
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── module-gce-c
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── production-env
│ │ │ │ ├── aws
│ │ │ │ └── module-aws-d
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── gce
│ │ │ │ └── module-gce-e
│ │ │ │ └── terragrunt.hcl
│ │ ├── local-with-hidden-folder
│ │ │ ├── .hidden-folder
│ │ │ │ └── README.md
│ │ │ └── terragrunt.hcl
│ │ ├── local-with-include-dir
│ │ │ ├── integration-env
│ │ │ │ ├── aws
│ │ │ │ │ └── module-aws-a
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── gce
│ │ │ │ │ ├── module-gce-b
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── module-gce-c
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── production-env
│ │ │ │ ├── aws
│ │ │ │ └── module-aws-d
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── gce
│ │ │ │ └── module-gce-e
│ │ │ │ └── terragrunt.hcl
│ │ ├── local-with-missing-backend
│ │ │ └── terragrunt.hcl
│ │ ├── local-with-prevent-destroy-dependencies
│ │ │ ├── module-a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-b
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-c
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module-d
│ │ │ │ └── terragrunt.hcl
│ │ │ └── module-e
│ │ │ │ └── terragrunt.hcl
│ │ ├── local-with-prevent-destroy
│ │ │ └── terragrunt.hcl
│ │ ├── local
│ │ │ └── terragrunt.hcl
│ │ ├── override
│ │ │ └── terragrunt.hcl
│ │ ├── relative
│ │ │ └── main.tf
│ │ ├── remote-invalid-with-retries
│ │ │ └── terragrunt.hcl
│ │ ├── remote-invalid
│ │ │ └── terragrunt.hcl
│ │ ├── remote-module-in-root
│ │ │ └── terragrunt.hcl
│ │ ├── remote-ref
│ │ │ └── terragrunt.hcl
│ │ ├── remote-relative-with-slash
│ │ │ └── terragrunt.hcl
│ │ ├── remote-relative
│ │ │ └── terragrunt.hcl
│ │ ├── remote-with-backend
│ │ │ └── terragrunt.hcl
│ │ ├── remote
│ │ │ └── terragrunt.hcl
│ │ ├── stdout-test
│ │ │ └── terragrunt.hcl
│ │ └── stdout
│ │ │ └── main.tf
│ ├── empty-state
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── endswith
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── engine
│ │ ├── engine-dependencies
│ │ │ ├── .gitignore
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── local-engine
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── opentofu-engine
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── opentofu-latest-run-all
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app4
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app5
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── opentofu-run-all
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app4
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app5
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── remote-engine
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── trace-parent
│ │ │ ├── get_traceparent.sh
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── env-vars-block
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── ephemeral-inputs
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── error-print
│ │ ├── custom-tf-script.sh
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── errors
│ │ ├── default
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── ignore-negative-pattern
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── ignore-signal
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── ignore
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── multi-line
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ ├── retry-fail
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ ├── retry
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ ├── run-all-ignore
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── run-all
│ │ │ ├── app1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ ├── main.tf
│ │ │ ├── script.sh
│ │ │ └── terragrunt.hcl
│ │ │ └── common.hcl
│ ├── exclude
│ │ ├── action
│ │ │ ├── exclude-apply
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── exclude-plan
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── all-except-output
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── basic
│ │ │ ├── unit1
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── unit2
│ │ │ │ └── terragrunt.hcl
│ │ │ └── unit3
│ │ │ │ └── terragrunt.hcl
│ │ ├── default
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── dependencies
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── disabled
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── feature-flags
│ │ │ ├── app1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── flags.hcl
│ ├── excludes-file
│ │ ├── .terragrunt-excludes
│ │ ├── a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── c
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── d
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── excludes-file-pass-as-flag
│ ├── exec-cmd-tf-path
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── dep
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── script.sh
│ │ ├── terraform-output-json.sh
│ │ └── tofu-output-json.sh
│ ├── exec-cmd
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── script.sh
│ ├── external-dependencies
│ │ ├── module-a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── module-b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── external-dependency
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── extra-args
│ │ ├── dev.tfvars
│ │ ├── extra.tfvars
│ │ ├── main.tf
│ │ ├── terragrunt.hcl
│ │ └── us-west-2.tfvars
│ ├── failure
│ │ ├── main.tf
│ │ ├── missingvars
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── submod
│ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── feature-flags
│ │ ├── error-empty-flag
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── include-flag
│ │ │ ├── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── run-all
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── common.hcl
│ │ └── simple-flag
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── find-parent-with-deprecated-root
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── terragrunt.hcl
│ ├── find-parent
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── find
│ │ ├── basic
│ │ │ ├── stack
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── unit
│ │ │ │ └── terragrunt.hcl
│ │ ├── dag
│ │ │ ├── a-dependent
│ │ │ │ └── terragrunt.hcl
│ │ │ └── b-dependency
│ │ │ │ └── terragrunt.hcl
│ │ ├── hidden
│ │ │ ├── .hide
│ │ │ │ └── unit
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── stack
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── unit
│ │ │ │ └── terragrunt.hcl
│ │ ├── include
│ │ │ ├── bar
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── cloud.hcl
│ │ │ └── foo
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── internal-v-external
│ │ │ ├── external
│ │ │ └── c-dependency
│ │ │ │ └── terragrunt.hcl
│ │ │ └── internal
│ │ │ ├── a-dependent
│ │ │ └── terragrunt.hcl
│ │ │ └── b-dependency
│ │ │ └── terragrunt.hcl
│ ├── gcs-backend
│ │ ├── common.hcl
│ │ ├── unit1
│ │ │ └── terragrunt.hcl
│ │ └── unit2
│ │ │ └── terragrunt.hcl
│ ├── gcs-byo-bucket
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── gcs-impersonate
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── gcs-no-bucket
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── gcs-no-prefix
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── gcs-parallel-state-init
│ │ ├── root.hcl
│ │ └── template
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── gcs
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── get-aws-account-alias
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── get-aws-caller-identity
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── get-output
│ │ ├── cycle
│ │ │ ├── aa
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── aba
│ │ │ │ ├── bar
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── abca
│ │ │ │ ├── bar
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── baz
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── foo
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── abcda
│ │ │ │ ├── bar
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── baz
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── car
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── foo
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── download-dir
│ │ │ ├── in-config
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── not-set
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── integration
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── empty
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── localstate
│ │ │ ├── live
│ │ │ │ ├── child
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── parent
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── root.hcl
│ │ │ └── modules
│ │ │ │ ├── child
│ │ │ │ └── main.tf
│ │ │ │ └── parent
│ │ │ │ └── main.tf
│ │ ├── mock-outputs-merge-strategy-with-state
│ │ │ ├── merge-strategy-with-state-compat-conflict
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-strategy-with-state-compat-false
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-strategy-with-state-compat-true
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-strategy-with-state-deep-map-only
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-strategy-with-state-default
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-strategy-with-state-no-merge
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ ├── child
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ └── merge-strategy-with-state-shallow
│ │ │ │ ├── live
│ │ │ │ ├── child
│ │ │ │ │ ├── child
│ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── parent
│ │ │ │ │ ├── parent
│ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ ├── child
│ │ │ │ └── main.tf
│ │ │ │ └── parent
│ │ │ │ └── main.tf
│ │ ├── mock-outputs-merge-with-state
│ │ │ ├── merge-with-state-default
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-with-state-false
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-with-state-no-override
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ ├── parent
│ │ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ ├── merge-with-state-true-validate-only
│ │ │ │ ├── live
│ │ │ │ │ ├── child
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ ├── parent
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ │ ├── child
│ │ │ │ │ └── main.tf
│ │ │ │ │ └── parent
│ │ │ │ │ └── main.tf
│ │ │ └── merge-with-state-true
│ │ │ │ ├── live
│ │ │ │ ├── child
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── parent
│ │ │ │ │ ├── parent
│ │ │ │ │ │ └── terraform.tfstate
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── root.hcl
│ │ │ │ └── modules
│ │ │ │ ├── child
│ │ │ │ └── main.tf
│ │ │ │ └── parent
│ │ │ │ └── main.tf
│ │ ├── mock-outputs
│ │ │ ├── dependent1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dependent2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dependent3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── source
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── nested-mocks
│ │ │ ├── deepdep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── live
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── nested-optimization-disable
│ │ │ ├── .gitignore
│ │ │ ├── deepdep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── live
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── nested-optimization-nogen
│ │ │ ├── .gitignore
│ │ │ ├── deepdep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── live
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── nested-optimization
│ │ │ ├── .gitignore
│ │ │ ├── deepdep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── live
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── regression-1102
│ │ │ ├── .gitignore
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── regression-1124
│ │ │ ├── live
│ │ │ │ ├── app
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── dependency
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── modules
│ │ │ │ ├── app
│ │ │ │ └── main.tf
│ │ │ │ └── dependency
│ │ │ │ └── main.tf
│ │ ├── regression-1273
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── main
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── regression-854
│ │ │ └── root
│ │ │ │ ├── environments
│ │ │ │ ├── network
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── web
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── sg
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── terragrunt.hcl
│ │ ├── regression-906
│ │ │ ├── a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── b
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── c
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── common-dep
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── d
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── e
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── f
│ │ │ │ └── terragrunt.hcl
│ │ │ └── g
│ │ │ │ └── terragrunt.hcl
│ │ └── type-conversion
│ │ │ └── terragrunt.hcl
│ ├── get-path
│ │ ├── get-path-from-repo-root
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── get-path-to-repo-root
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── path_relative_from_include
│ │ │ ├── lives
│ │ │ ├── dev
│ │ │ │ ├── base
│ │ │ │ │ ├── terragrunt.hcl
│ │ │ │ │ └── tier.hcl
│ │ │ │ ├── cluster
│ │ │ │ │ ├── terragrunt.hcl
│ │ │ │ │ └── tier.hcl
│ │ │ │ └── env.hcl
│ │ │ ├── org.hcl
│ │ │ └── root.hcl
│ │ │ └── modules
│ │ │ ├── base
│ │ │ └── main.tf
│ │ │ └── cluster
│ │ │ └── main.tf
│ ├── get-platform
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── get-repo-root
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── get-terragrunt-source-cli
│ │ ├── terraform_config_cli
│ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── get-terragrunt-source-hcl
│ │ ├── terraform_config_hcl
│ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── get-working-dir
│ │ ├── main.tf
│ │ ├── modules
│ │ │ └── a
│ │ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── graph-dependencies
│ │ ├── root.hcl
│ │ └── root
│ │ │ ├── backend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── frontend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── mysql
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── redis
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── graph
│ │ ├── dependency-graph.png
│ │ ├── eks
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── lambda
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── services
│ │ │ ├── eks-service-1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-2-v2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-3-v2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-3-v3
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-3
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-4
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── eks-service-5
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── lambda-service-1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── lambda-service-2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── hclfmt-check-errors
│ │ ├── a
│ │ │ ├── b
│ │ │ │ └── c
│ │ │ │ │ ├── d
│ │ │ │ │ ├── e
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── services.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── expected.hcl
│ │ └── terragrunt.hcl
│ ├── hclfmt-check
│ │ ├── a
│ │ │ ├── b
│ │ │ │ └── c
│ │ │ │ │ ├── d
│ │ │ │ │ ├── e
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── services.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── expected.hcl
│ │ └── terragrunt.hcl
│ ├── hclfmt-diff
│ │ ├── expected.diff
│ │ └── terragrunt.hcl
│ ├── hclfmt-errors
│ │ ├── dangling-attribute
│ │ │ └── terragrunt.hcl
│ │ ├── invalid-character
│ │ │ └── terragrunt.hcl
│ │ └── invalid-key
│ │ │ └── terragrunt.hcl
│ ├── hclfmt-heredoc
│ │ ├── expected.hcl
│ │ └── terragrunt.hcl
│ ├── hclfmt-stdin
│ │ ├── expected.hcl
│ │ └── terragrunt.hcl
│ ├── hclvalidate
│ │ ├── first
│ │ │ └── b
│ │ │ │ └── terragrunt.hcl
│ │ └── second
│ │ │ ├── a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── c
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── d
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── hooks
│ │ ├── after-only
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── all
│ │ │ ├── after-only
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── before-only
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── bad-arg-action
│ │ │ ├── empty-command-list
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── empty-string-command
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── before-after-and-error-merge
│ │ │ ├── qa
│ │ │ │ └── my-app
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── before-after-and-on-error
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── before-and-after
│ │ │ ├── hook.sh
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── before-only
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── error-hooks
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── tf.sh
│ │ ├── if-parameter
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── init-once
│ │ │ ├── backend.tf
│ │ │ ├── base-module
│ │ │ │ └── main.tf
│ │ │ ├── no-source-no-backend
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── no-source-with-backend
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── with-source-no-backend-suppress-hook-stdout
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── with-source-no-backend
│ │ │ │ └── terragrunt.hcl
│ │ │ └── with-source-with-backend
│ │ │ │ └── terragrunt.hcl
│ │ ├── interpolations
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── one-arg-action
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── skip-on-error
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── working_dir
│ │ │ ├── main.tf
│ │ │ ├── mydir
│ │ │ └── hello_world
│ │ │ └── terragrunt.hcl
│ ├── include-deep
│ │ ├── child
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── root.hcl
│ │ └── vpc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── include-expose
│ │ ├── mixed-with-bare
│ │ │ └── child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple
│ │ │ └── child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── root.hcl
│ │ ├── single-bare
│ │ │ └── child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── single
│ │ │ └── child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── terragrunt_env.hcl
│ │ ├── with-dependency-reference-input
│ │ │ ├── child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ └── with-dependency
│ │ │ ├── child
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── dep
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ ├── include-multiple
│ │ ├── deep-merge-nonoverlapping
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── deep-merge-overlapping
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── expose
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── has-bare-include
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── json
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl.json
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── modules
│ │ │ ├── empty
│ │ │ │ └── main.tf
│ │ │ └── reflect
│ │ │ │ └── main.tf
│ │ ├── shallow-deep-merge-overlapping
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── shallow-merge
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── terragrunt_inputs.hcl
│ │ ├── terragrunt_inputs_final.hcl
│ │ ├── terragrunt_inputs_override.hcl
│ │ ├── terragrunt_vpc_dep.hcl
│ │ ├── terragrunt_vpc_dep_for_expose.hcl
│ │ └── terragrunt_vpc_dep_override.hcl
│ ├── include-parent
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── common.hcl
│ │ ├── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── parent.hcl
│ ├── include-runall
│ │ ├── a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── alpha.hcl
│ │ ├── b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── c
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── include
│ │ ├── qa
│ │ │ └── my-app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── root.hcl
│ │ └── stage
│ │ │ └── my-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── init-cache
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── init-error
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── init-once
│ │ ├── module
│ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── inputs-defaults
│ │ └── main.tf
│ ├── inputs-from-dependency
│ │ ├── apps
│ │ │ ├── a
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── b
│ │ │ │ ├── local.hcl
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── c
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ └── modules
│ │ │ ├── a
│ │ │ └── main.tf
│ │ │ ├── b
│ │ │ └── main.tf
│ │ │ └── c
│ │ │ └── main.tf
│ ├── inputs
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── list
│ │ ├── basic
│ │ │ ├── a-unit
│ │ │ │ └── terragrunt.hcl
│ │ │ └── b-unit
│ │ │ │ └── terragrunt.hcl
│ │ ├── dag
│ │ │ ├── stacks
│ │ │ │ └── live
│ │ │ │ │ ├── dev
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ │ └── prod
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── live
│ │ │ │ ├── dev
│ │ │ │ ├── db
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── ec2
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── vpc
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── prod
│ │ │ │ ├── db
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── ec2
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ └── long
│ │ │ ├── unit-0
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-1
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-2
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-3
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-4
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-5
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-6
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-7
│ │ │ └── terragrunt.hcl
│ │ │ ├── unit-8
│ │ │ └── terragrunt.hcl
│ │ │ └── unit-9
│ │ │ └── terragrunt.hcl
│ ├── locals-errors
│ │ ├── undefined-local-but-input
│ │ │ └── terragrunt.hcl
│ │ └── undefined-local
│ │ │ └── terragrunt.hcl
│ ├── locals
│ │ ├── canonical
│ │ │ ├── contents.txt
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── local-in-include
│ │ │ ├── qa
│ │ │ │ └── my-app
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── run-multiple
│ │ │ └── terragrunt.hcl
│ │ └── run-once
│ │ │ └── terragrunt.hcl
│ ├── log
│ │ ├── formatter
│ │ │ ├── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── dep
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── levels
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── rel-paths
│ │ │ └── duplicate-dir-names
│ │ │ └── workspace
│ │ │ └── one
│ │ │ └── two
│ │ │ ├── aaa
│ │ │ └── bbb
│ │ │ │ └── ccc
│ │ │ │ ├── module-b
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── workspace
│ │ │ │ └── terragrunt.hcl
│ │ │ └── tf
│ │ │ └── main.tf
│ ├── manifest-removal
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── manifest
│ │ ├── version-1
│ │ │ ├── main.tf
│ │ │ └── stale.tf
│ │ ├── version-2
│ │ │ └── main.tf
│ │ ├── version-3-subfolder
│ │ │ ├── main.tf
│ │ │ └── sub
│ │ │ │ └── main.tf
│ │ ├── version-4-subfolder-empty
│ │ │ └── main.tf
│ │ └── version-5-not-empty-subfolder
│ │ │ ├── main.tf
│ │ │ └── sub2
│ │ │ └── main.tf
│ ├── missing-dependencies
│ │ ├── main
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── module-a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── module-path-in-error
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── d1
│ │ │ ├── main.tf
│ │ │ ├── provider.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── modules
│ │ ├── hcl-module-b
│ │ │ ├── module-b-child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl.json
│ │ ├── hcl-module-c
│ │ │ └── terragrunt.hcl
│ │ ├── json-module-a
│ │ │ └── terragrunt.hcl.json
│ │ ├── json-module-b
│ │ │ ├── module-b-child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl.json
│ │ │ └── root.hcl
│ │ ├── json-module-c
│ │ │ └── terragrunt.hcl.json
│ │ ├── json-module-d
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl.json
│ │ ├── module-a
│ │ │ └── terragrunt.hcl
│ │ ├── module-abba
│ │ │ └── terragrunt.hcl
│ │ ├── module-b
│ │ │ ├── module-b-child
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── module-c
│ │ │ └── terragrunt.hcl
│ │ ├── module-d
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-e
│ │ │ ├── main.tf
│ │ │ ├── module-e-child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── module-f
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-g
│ │ │ └── terragrunt.hcl
│ │ ├── module-h
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-i
│ │ │ ├── terragrunt.hcl
│ │ │ └── test.tf
│ │ ├── module-j
│ │ │ └── terragrunt.hcl
│ │ ├── module-k
│ │ │ └── terragrunt.hcl
│ │ ├── module-l
│ │ │ └── terragrunt.hcl
│ │ ├── module-m
│ │ │ ├── env.hcl
│ │ │ ├── module-m-child
│ │ │ │ ├── main.tf
│ │ │ │ ├── terragrunt.hcl
│ │ │ │ └── tier.hcl
│ │ │ └── root.hcl
│ │ └── module-missing-dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── multiinclude-dependency
│ │ ├── depa.hcl
│ │ ├── depa
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── depb.hcl
│ │ ├── depb
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── depc.hcl
│ │ ├── depc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── main
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── terragrunt.hcl
│ ├── no-color
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── no-submodules
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── null-values
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── out-dir
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── output-all
│ │ ├── env1
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── output-from-dependency
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── dependency
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ ├── output-from-remote-state
│ │ ├── env1
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ ├── terragrunt.hcl
│ │ │ │ └── variables.tf
│ │ │ └── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── output-module-groups
│ │ └── root
│ │ │ ├── backend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── frontend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── mysql
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── redis
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── root.hcl
│ │ │ └── vpc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── parallel-run
│ │ ├── .tflint.hcl
│ │ ├── common
│ │ │ └── terragrunt.hcl
│ │ ├── dev
│ │ │ └── app
│ │ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── parallel-state-init
│ │ ├── root.hcl
│ │ └── template
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── parallelism
│ │ ├── template
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── terragrunt.hcl
│ ├── parent-folders
│ │ ├── in-another-subfolder
│ │ │ ├── common
│ │ │ │ └── foo.txt
│ │ │ └── live
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-terragrunt-in-parents
│ │ │ ├── child
│ │ │ │ ├── root.hcl
│ │ │ │ └── sub-child
│ │ │ │ │ ├── root.hcl
│ │ │ │ │ └── sub-sub-child
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── no-terragrunt-in-root
│ │ │ └── child
│ │ │ │ └── sub-child
│ │ │ │ └── terragrunt.hcl
│ │ ├── other-file-names
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── foo.txt
│ │ ├── terragrunt-in-root
│ │ │ ├── child
│ │ │ │ └── sub-child
│ │ │ │ │ └── sub-sub-child
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── override
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ └── with-params
│ │ │ └── tfwork
│ │ │ ├── test-var
│ │ │ └── providers.tf
│ │ │ └── tg
│ │ │ └── terragrunt.hcl
│ ├── partial-parse
│ │ ├── ignore-bad-block-in-parent
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── partial-inheritance
│ │ │ ├── child
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ └── terragrunt-version-constraint
│ │ │ └── terragrunt.hcl
│ ├── planfile-order-test
│ │ ├── .gitignore
│ │ ├── inputs.tf
│ │ ├── resource.tf
│ │ ├── terragrunt.hcl
│ │ └── vars
│ │ │ └── variables.tfvars
│ ├── prevent-destroy-not-set
│ │ ├── child
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── prevent-destroy-override
│ │ ├── child
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── provider-cache
│ │ ├── direct
│ │ │ ├── first
│ │ │ │ ├── app
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app1
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app2
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app3
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app4
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app5
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app6
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app7
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app8
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── app9
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── second
│ │ │ │ ├── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app4
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app5
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app6
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app7
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── app8
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── app9
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── filesystem-mirror
│ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-platforms
│ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── app3
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── network-mirror
│ │ │ └── apps
│ │ │ ├── app0
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── app1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── read-config
│ │ ├── from_dependency
│ │ │ ├── dep
│ │ │ │ ├── main.tf
│ │ │ │ ├── terragrunt.hcl
│ │ │ │ └── vars.hcl
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── full
│ │ │ ├── main.tf
│ │ │ ├── source.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── iam_role_in_file
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── iam_roles_multiple_modules
│ │ │ ├── component1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── component2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── with_constraints
│ │ │ └── main.tf
│ │ ├── with_default
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── with_dependency
│ │ │ ├── dep
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ └── with_original_terragrunt_dir
│ │ │ ├── dep
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── foo
│ │ │ └── bar.hcl
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── read-tf-vars
│ │ ├── empty.tfvars
│ │ ├── my.tfvars
│ │ ├── my.tfvars.json
│ │ ├── only-comments.tfvars
│ │ └── terragrunt.hcl
│ ├── regressions
│ │ ├── accesslogging-bucket
│ │ │ ├── no-target-prefix-input
│ │ │ │ ├── .gitignore
│ │ │ │ ├── main.tf
│ │ │ │ └── remote_terragrunt.hcl
│ │ │ └── with-target-prefix-input
│ │ │ │ ├── .gitignore
│ │ │ │ ├── main.tf
│ │ │ │ └── remote_terragrunt.hcl
│ │ ├── apply-all-envvar
│ │ │ ├── module
│ │ │ │ └── main.tf
│ │ │ ├── no-require-envvar
│ │ │ │ └── terragrunt.hcl
│ │ │ └── require-envvar
│ │ │ │ └── terragrunt.hcl
│ │ ├── benchmark-parsing-includes
│ │ │ ├── modules
│ │ │ │ └── dummy-module
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── outputs.tf
│ │ │ │ │ ├── variables.tf
│ │ │ │ │ └── versions.tf
│ │ │ ├── production
│ │ │ │ ├── dependency-group-1
│ │ │ │ ├── dependency-group-2
│ │ │ │ ├── dependency-group-3
│ │ │ │ ├── dependency-group-4
│ │ │ │ ├── dependency-group-template
│ │ │ │ │ ├── app.hcl
│ │ │ │ │ └── webserver
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── deployment-group-1
│ │ │ │ │ ├── app.hcl
│ │ │ │ │ └── webserver
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── environment.hcl
│ │ │ └── root-terragrunt.hcl
│ │ ├── benchmark-parsing
│ │ │ ├── modules
│ │ │ │ └── dummy-module
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── outputs.tf
│ │ │ │ │ ├── variables.tf
│ │ │ │ │ └── versions.tf
│ │ │ ├── production
│ │ │ │ ├── dependency-group-1
│ │ │ │ ├── dependency-group-2
│ │ │ │ ├── dependency-group-3
│ │ │ │ ├── dependency-group-4
│ │ │ │ ├── dependency-group-template
│ │ │ │ │ ├── app.hcl
│ │ │ │ │ └── webserver
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── deployment-group-1
│ │ │ │ │ ├── app.hcl
│ │ │ │ │ └── webserver
│ │ │ │ │ │ └── terragrunt.hcl
│ │ │ │ └── environment.hcl
│ │ │ └── root-terragrunt.hcl
│ │ ├── exclude-dependency
│ │ │ ├── amazing-app
│ │ │ │ └── k8s
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── clusters
│ │ │ │ └── eks
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── modules
│ │ │ │ ├── eks
│ │ │ │ │ └── main.tf
│ │ │ │ └── k8s
│ │ │ │ │ └── main.tf
│ │ │ ├── root.hcl
│ │ │ └── testapp
│ │ │ │ └── k8s
│ │ │ │ └── terragrunt.hcl
│ │ ├── include-error
│ │ │ ├── _envcommon.hcl
│ │ │ └── project
│ │ │ │ ├── app
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── eng_teams.hcl
│ │ ├── mocks-merge-with-state
│ │ │ ├── deep-map
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── module
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── shallow
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-dependency-load-sync
│ │ │ ├── dep1
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dep2
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── main
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── modules
│ │ │ │ └── dummy-module
│ │ │ │ │ ├── main.tf
│ │ │ │ │ ├── outputs.tf
│ │ │ │ │ ├── variables.tf
│ │ │ │ │ └── versions.tf
│ │ │ └── root-terragrunt.hcl
│ │ ├── skip-init
│ │ │ ├── main.tf
│ │ │ ├── module
│ │ │ │ └── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── skip-versioning
│ │ │ ├── .gitignore
│ │ │ ├── local_terragrunt.hcl
│ │ │ ├── main.tf
│ │ │ └── remote_terragrunt.hcl
│ │ └── yamldecode
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── relative-include-cmd
│ │ ├── app
│ │ │ ├── app.tf
│ │ │ └── terragrunt.hcl
│ │ └── terragrunt-test.hcl
│ ├── render-json-inputs
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── render-json-metadata
│ │ ├── attributes
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── dependencies
│ │ │ ├── app
│ │ │ │ ├── include.hcl
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dependency1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── dependency2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── dependency
│ │ │ ├── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── dependency
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── dependency2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── includes
│ │ │ ├── app
│ │ │ │ ├── generate.hcl
│ │ │ │ ├── inputs.hcl
│ │ │ │ ├── locals.hcl
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── common
│ │ │ │ └── common.hcl
│ │ └── terraform-remote-state
│ │ │ ├── app
│ │ │ └── terragrunt.hcl
│ │ │ ├── common
│ │ │ ├── remote_state.hcl
│ │ │ └── terraform.hcl
│ │ │ └── terraform
│ │ │ └── main.tf
│ ├── render-json-mock-outputs
│ │ ├── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── dependency
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── render-json-regression
│ │ ├── bar
│ │ │ └── terragrunt.hcl
│ │ ├── baz
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── foo
│ │ │ └── main.tf
│ │ └── terragrunt.hcl
│ ├── render-json-with-encryption
│ │ ├── common_vars.hcl
│ │ ├── dep
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── main
│ │ │ ├── module
│ │ │ │ └── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── render-json
│ │ ├── common_vars.hcl
│ │ ├── dep
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── main
│ │ │ ├── module
│ │ │ │ └── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ ├── s3-backend-migrate
│ │ ├── unit1
│ │ │ └── terragrunt.hcl
│ │ └── unit2
│ │ │ └── terragrunt.hcl
│ ├── s3-backend
│ │ ├── common.hcl
│ │ ├── unit1
│ │ │ └── terragrunt.hcl
│ │ └── unit2
│ │ │ └── terragrunt.hcl
│ ├── s3-encryption
│ │ ├── basic-encryption
│ │ │ └── terragrunt.hcl
│ │ ├── custom-key
│ │ │ ├── backend.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── sse-aes
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── sse-kms
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── s3-errors
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── scaffold
│ │ ├── custom-default-template
│ │ │ ├── root.hcl
│ │ │ └── unit
│ │ │ │ └── .gitkeep
│ │ ├── external-template
│ │ │ ├── boilerplate.yml
│ │ │ ├── external-template.txt
│ │ │ └── terragrunt.hcl
│ │ ├── module-with-template
│ │ │ ├── .boilerplate
│ │ │ │ ├── boilerplate.yml
│ │ │ │ ├── template-file.txt
│ │ │ │ └── terragrunt.hcl
│ │ │ └── main.tf
│ │ ├── root-hcl
│ │ │ ├── root.hcl
│ │ │ └── unit
│ │ │ │ └── .gitkeep
│ │ └── scaffold-module
│ │ │ ├── main.tf
│ │ │ └── variables.tf
│ ├── skip-dependencies
│ │ ├── first
│ │ │ ├── foo.hcl
│ │ │ └── terragrunt.hcl
│ │ ├── module
│ │ │ └── main.tf
│ │ └── second
│ │ │ └── terragrunt.hcl
│ ├── skip-legacy-root
│ │ ├── base-module
│ │ │ └── main.tf
│ │ ├── skip-false
│ │ │ ├── resource1
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── resource2
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ │ └── skip-true
│ │ │ ├── resource1
│ │ │ └── terragrunt.hcl
│ │ │ ├── resource2
│ │ │ └── terragrunt.hcl
│ │ │ └── terragrunt.hcl
│ ├── skip
│ │ ├── base-module
│ │ │ └── main.tf
│ │ ├── skip-false
│ │ │ ├── resource1
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── resource2
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ └── skip-true
│ │ │ ├── resource1
│ │ │ └── terragrunt.hcl
│ │ │ ├── resource2
│ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ ├── sops-errors
│ │ ├── file.yaml
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── sops-kms
│ │ ├── main.tf
│ │ ├── secrets.env
│ │ ├── secrets.ini
│ │ ├── secrets.json
│ │ ├── secrets.txt
│ │ ├── secrets.yaml
│ │ └── terragrunt.hcl
│ ├── sops-missing
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── sops
│ │ ├── main.tf
│ │ ├── secrets.env
│ │ ├── secrets.ini
│ │ ├── secrets.json
│ │ ├── secrets.txt
│ │ ├── secrets.yaml
│ │ ├── terragrunt.hcl
│ │ └── test_pgp_key.asc
│ ├── source-map
│ │ ├── modules
│ │ │ ├── app
│ │ │ │ └── main.tf
│ │ │ └── vpc
│ │ │ │ └── main.tf
│ │ ├── multiple-match
│ │ │ ├── terragrunt-vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terratest-vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-only-one-match
│ │ │ ├── terragrunt-vpc
│ │ │ │ └── terragrunt.hcl
│ │ │ └── terratest-vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-with-dependency-same-url
│ │ │ ├── app
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-with-dependency
│ │ │ ├── app
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ └── terragrunt.hcl
│ │ ├── single
│ │ │ └── terragrunt.hcl
│ │ └── slashes-in-ref
│ │ │ └── terragrunt.hcl
│ ├── stack
│ │ ├── disjoint-symlinks
│ │ │ ├── a
│ │ │ │ └── terragrunt.hcl
│ │ │ └── module
│ │ │ │ └── main.tf
│ │ ├── disjoint
│ │ │ ├── a
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── b
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── c
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── mgmt
│ │ │ ├── bastion-host
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ ├── kms-master-key
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── root.hcl
│ │ └── stage
│ │ │ ├── backend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── frontend-app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── mysql
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── redis
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ ├── search-app
│ │ │ ├── example-module
│ │ │ │ └── main.tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ │ └── vpc
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── stacks
│ │ ├── basic
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── chick
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── chicken
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── father
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── mother
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── dependencies
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── app-with-dependency
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── errors
│ │ │ ├── absolute-path
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ │ └── app
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── cycles
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ ├── stack
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── unit
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── incorrect-source
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ │ └── api
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── locals-error
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── not-existing-path
│ │ │ │ └── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── relative-path-outside-of-stack
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ │ └── app1
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── stack-empty-path
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── unit-empty-path
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ │ └── app
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ ├── validation-stack
│ │ │ │ ├── live
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ ├── stacks
│ │ │ │ │ └── v1
│ │ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ │ └── api
│ │ │ │ │ ├── main.tf
│ │ │ │ │ └── terragrunt.hcl
│ │ │ └── validation-unit
│ │ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── units
│ │ │ │ └── v1
│ │ │ │ ├── api
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── db
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── web
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── inputs
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── locals
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── chick
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── chicken
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── father
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── mother
│ │ │ │ └── terragrunt.hcl
│ │ ├── multiple-stacks
│ │ │ ├── dev
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── unit
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── nested-outputs
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ ├── v1
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ ├── v2
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── v3
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── nested
│ │ │ ├── live-v2
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ ├── dev
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── prod
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── api
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── db
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── web
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── no-stack-dir
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── unit
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── no-stack
│ │ │ ├── config
│ │ │ │ └── config.txt
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ └── dev
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── api
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ ├── db
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── web
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── no-validation
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ └── stack1
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── app1
│ │ │ │ └── code
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── outputs
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ ├── app1
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ │ └── app2
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── read-stack
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ ├── dev
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── prod
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ ├── remote
│ │ │ └── terragrunt.stack.hcl
│ │ ├── self-include
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── module
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── unit
│ │ │ │ └── terragrunt.hcl
│ │ ├── source-map
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── tf
│ │ │ │ └── modules
│ │ │ │ │ └── main.tf
│ │ │ └── units
│ │ │ │ └── app
│ │ │ │ └── terragrunt.hcl
│ │ ├── stack-values
│ │ │ ├── live
│ │ │ │ └── terragrunt.stack.hcl
│ │ │ ├── stacks
│ │ │ │ ├── dev
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ │ └── prod
│ │ │ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ │ └── app
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ └── unit-values
│ │ │ ├── live
│ │ │ └── terragrunt.stack.hcl
│ │ │ └── units
│ │ │ └── app
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── startswith
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── strcontains
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── streaming
│ │ ├── unit1
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── unit2
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── strict-bare-include
│ │ ├── main.tf
│ │ ├── parent.hcl
│ │ └── terragrunt.hcl
│ ├── terragrunt-info-error
│ │ ├── module-a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── module-b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── terragrunt.hcl
│ ├── terragrunt
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ ├── terragrunt.hcl
│ │ └── vars.tf
│ ├── tf-path
│ │ ├── main.tf
│ │ ├── other-tf.sh
│ │ ├── terragrunt.hcl
│ │ └── tf.sh
│ ├── tflint
│ │ ├── custom-tflint-config
│ │ │ ├── custom.tflint.hcl
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── external-tflint
│ │ │ ├── .tflint.hcl
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── issues-found
│ │ │ ├── .tflint.hcl
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── module-found
│ │ │ ├── .tflint.hcl
│ │ │ ├── dummy_module
│ │ │ │ └── main.tf
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── no-config-file
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── no-issues-found
│ │ │ ├── .tflint.hcl
│ │ │ ├── d1
│ │ │ │ └── file.txt
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── no-tf-source
│ │ │ ├── .tflint.hcl
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── tflint-args
│ │ │ ├── .tflint.hcl
│ │ │ ├── extra.tfvars
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ └── tfvar-passing
│ │ │ ├── .tflint.hcl
│ │ │ ├── extra.tfvars
│ │ │ ├── main.tf
│ │ │ ├── outputs.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ ├── tfr
│ │ ├── root-shorthand
│ │ │ └── terragrunt.hcl
│ │ ├── root
│ │ │ └── terragrunt.hcl
│ │ ├── subdir-with-reference
│ │ │ └── terragrunt.hcl
│ │ └── subdir
│ │ │ └── terragrunt.hcl
│ ├── tftest
│ │ ├── main.tf
│ │ ├── terragrunt.hcl
│ │ └── validate_name.tftest.hcl
│ ├── timecmp-errors
│ │ └── invalid-timestamp
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ ├── timecmp
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── tofu-state-encryption
│ │ ├── aws-kms
│ │ │ └── terragrunt.hcl
│ │ ├── gcp-kms
│ │ │ └── terragrunt.hcl
│ │ └── pbkdf2
│ │ │ └── terragrunt.hcl
│ ├── trace-parent
│ │ ├── get_traceparent.sh
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ ├── units-reading
│ │ ├── including
│ │ │ └── terragrunt.hcl
│ │ ├── indirect
│ │ │ ├── main.tf
│ │ │ ├── src
│ │ │ │ └── test.txt
│ │ │ └── terragrunt.hcl
│ │ ├── reading-from-tf
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── reading-hcl-and-tfvars
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── reading-hcl
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── reading-json
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── reading-sops
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── reading-tfvars
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── secrets.txt
│ │ ├── shared.hcl
│ │ ├── shared.json
│ │ ├── shared.tfvars
│ │ └── test_pgp_key.asc
│ ├── validate-inputs
│ │ ├── fail-generated-var
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── variables.tf
│ │ ├── fail-included-unused
│ │ │ ├── module
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── fail-no-inputs
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── fail-remote-module
│ │ │ └── terragrunt.hcl
│ │ ├── fail-unused-inputs
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── fail-unused-varfile
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── varfiles
│ │ │ │ └── main.tfvars
│ │ ├── success-autovar-file
│ │ │ ├── bar.auto.tfvars.json
│ │ │ ├── foo.auto.tfvars
│ │ │ ├── main.tf
│ │ │ ├── terraform.tfvars
│ │ │ ├── terraform.tfvars.json
│ │ │ └── terragrunt.hcl
│ │ ├── success-cli-args
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── varfiles
│ │ │ │ └── main.tfvars
│ │ ├── success-included
│ │ │ ├── module
│ │ │ │ ├── main.tf
│ │ │ │ └── terragrunt.hcl
│ │ │ └── root.hcl
│ │ ├── success-inputs-only
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── success-mixed
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── varfiles
│ │ │ │ └── main.tfvars
│ │ ├── success-null-default
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── success-var-file
│ │ │ ├── main.tf
│ │ │ ├── terragrunt.hcl
│ │ │ └── varfiles
│ │ │ └── main.tfvars
│ ├── version-check
│ │ ├── a
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ ├── b
│ │ │ ├── main.tf
│ │ │ └── terragrunt.hcl
│ │ └── root.hcl
│ └── version-invocation
│ │ ├── app
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ │ ├── dependency-with-custom-version
│ │ ├── .tool-versions
│ │ ├── main.tf
│ │ └── terragrunt.hcl
│ │ └── dependency
│ │ ├── main.tf
│ │ └── terragrunt.hcl
├── helpers
│ ├── aws.go
│ ├── logger
│ │ └── logger.go
│ ├── package.go
│ ├── test_helpers.go
│ ├── test_helpers_unix.go
│ └── test_helpers_windows.go
├── integration_auto_retry_test.go
├── integration_aws_oidc_test.go
├── integration_aws_test.go
├── integration_awsgcp_test.go
├── integration_catalog_test.go
├── integration_common_test.go
├── integration_debug_test.go
├── integration_deprecated_test.go
├── integration_destroy_test.go
├── integration_docs_aws_test.go
├── integration_docs_test.go
├── integration_download_test.go
├── integration_engine_test.go
├── integration_errors_test.go
├── integration_exclude_test.go
├── integration_exec_test.go
├── integration_feature_flags_test.go
├── integration_find_test.go
├── integration_functions_test.go
├── integration_gcp_test.go
├── integration_graph_test.go
├── integration_hooks_test.go
├── integration_include_test.go
├── integration_json_test.go
├── integration_list_test.go
├── integration_local_dev_test.go
├── integration_locals_test.go
├── integration_parse_test.go
├── integration_registry_test.go
├── integration_regressions_test.go
├── integration_run_test.go
├── integration_s3_encryption_test.go
├── integration_scaffold_ssh_test.go
├── integration_scaffold_test.go
├── integration_serial_aws_test.go
├── integration_serial_gcp_test.go
├── integration_serial_test.go
├── integration_sops_kms_test.go
├── integration_sops_test.go
├── integration_ssh_test.go
├── integration_stacks_test.go
├── integration_strict_test.go
├── integration_test.go
├── integration_tflint_test.go
├── integration_tofu_state_encryption_test.go
├── integration_units_reading_test.go
├── integration_unix_test.go
├── integration_windows_test.go
└── race_test.go
├── tf
├── cache
│ ├── config.go
│ ├── controllers
│ │ ├── discovery.go
│ │ ├── downloader.go
│ │ └── provider.go
│ ├── handlers
│ │ ├── common_provider.go
│ │ ├── direct_provider.go
│ │ ├── errors.go
│ │ ├── filesystem_mirror_provider.go
│ │ ├── network_mirror_provider.go
│ │ ├── provider.go
│ │ ├── provider_test.go
│ │ ├── proxy_provider.go
│ │ └── registry_urls.go
│ ├── helpers
│ │ ├── client.go
│ │ ├── http.go
│ │ └── reverse_proxy.go
│ ├── middleware
│ │ ├── key_auth.go
│ │ ├── logger.go
│ │ ├── package.go
│ │ └── recover.go
│ ├── models
│ │ ├── helper.go
│ │ ├── provider.go
│ │ └── provider_test.go
│ ├── router
│ │ ├── controller.go
│ │ └── router.go
│ ├── server.go
│ └── services
│ │ ├── provider_cache.go
│ │ └── service.go
├── cliconfig
│ ├── config.go
│ ├── config_test.go
│ ├── credentials.go
│ ├── provider_installation.go
│ └── user_config.go
├── context.go
├── detailed_exitcode.go
├── doc.go
├── errors.go
├── getproviders
│ ├── hash.go
│ ├── hash_test.go
│ ├── lock.go
│ ├── lock_test.go
│ ├── mocks
│ │ ├── mock_lock.go
│ │ └── mock_provider.go
│ ├── package_authentication.go
│ ├── package_authentication_test.go
│ ├── provider.go
│ ├── public_keys.go
│ └── testdata
│ │ └── filesystem-mirror
│ │ ├── registry.terraform.io
│ │ └── hashicorp
│ │ │ └── null
│ │ │ ├── terraform-provider-null_2.1.0_linux_amd64.zip
│ │ │ └── terraform-provider-null_invalid.zip
│ │ └── tfe.example.com
│ │ └── AwesomeCorp
│ │ └── happycloud
│ │ └── 0.1.0-alpha.2
│ │ └── darwin_amd64
│ │ ├── extra-data.txt
│ │ └── terraform-provider-happycloud
├── getter.go
├── getter_test.go
├── log.go
├── run_cmd.go
├── run_cmd_test.go
├── source.go
├── source_test.go
├── testdata
│ └── test_outputs.sh
└── tf.go
├── tflint
├── README.md
├── tflint.go
└── tflint_test.go
└── util
├── collections.go
├── collections_test.go
├── datetime.go
├── datetime_test.go
├── file.go
├── file_test.go
├── hash.go
├── jsons.go
├── jsons_test.go
├── lockfile.go
├── locks.go
├── locks_test.go
├── min.go
├── min_test.go
├── prefix-writer.go
├── prefix-writer_test.go
├── random.go
├── random_test.go
├── reflect.go
├── reflect_test.go
├── retry.go
├── shell.go
├── shell_test.go
├── strings.go
├── testdata
└── fixture-glob-canonical
│ ├── module-a
│ └── terragrunt.hcl
│ └── module-b
│ ├── module-b-child
│ ├── main.tf
│ └── terragrunt.hcl
│ └── root.hcl
├── trap_writer.go
├── util.go
└── writer_notifier.go
/.codespellrc:
--------------------------------------------------------------------------------
1 | [codespell]
2 | skip = go.mod,go.sum,*.svg,Gemfile.lock,bun.lock
3 | ignore-words-list = dRan,implementors
4 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: gruntwork-io
4 |
--------------------------------------------------------------------------------
/.github/scripts/setup/generate-mocks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -euo pipefail
4 |
5 | make generate-mocks
6 |
--------------------------------------------------------------------------------
/.github/scripts/setup/sops.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | gpg --import --no-tty --batch --yes ./test/fixtures/sops/test_pgp_key.asc
6 |
--------------------------------------------------------------------------------
/.github/scripts/setup/terraform-switch-latest-oss.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Install Terraform 1.5 using common script
3 | .github/scripts/setup/terraform-switch.sh 1.5
4 |
--------------------------------------------------------------------------------
/.github/scripts/setup/terraform-switch-latest.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Install Terraform 1.12
3 | .github/scripts/setup/terraform-switch.sh 1.12
4 |
--------------------------------------------------------------------------------
/.pre-commit-config.yaml:
--------------------------------------------------------------------------------
1 | repos:
2 | - repo: https://github.com/gruntwork-io/pre-commit
3 | rev: v0.1.29
4 | hooks:
5 | - id: tofu-fmt
6 | - id: goimports
7 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @denis256 @yhakbar
2 |
3 |
--------------------------------------------------------------------------------
/cli/commands/hcl/format/testdata/fixtures/ignored/.gitignore:
--------------------------------------------------------------------------------
1 | !.terragrunt-cache
2 |
--------------------------------------------------------------------------------
/codegen/codegen.go:
--------------------------------------------------------------------------------
1 | // Package codegen contains routines for generating terraform code
2 | package codegen
3 |
--------------------------------------------------------------------------------
/docs-starlight/mise.toml:
--------------------------------------------------------------------------------
1 | [tools]
2 | bun = "1.2.2"
3 | poetry = "2.1.1"
4 | python = "3.13.2"
5 |
--------------------------------------------------------------------------------
/docs-starlight/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs-starlight/public/favicon.ico
--------------------------------------------------------------------------------
/docs-starlight/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: * Disallow: /
2 |
--------------------------------------------------------------------------------
/docs-starlight/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "installCommand": "bun i && curl -fsSL https://d2lang.com/install.sh | sh -s --",
3 | "buildCommand": "bun run build"
4 | }
5 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | .jekyll-cache
2 | _site
3 |
--------------------------------------------------------------------------------
/docs/.tool-versions:
--------------------------------------------------------------------------------
1 | ruby 3.3.4
2 |
3 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | terragrunt.gruntwork.io
--------------------------------------------------------------------------------
/docs/_includes/collection_browser/_cta-section.html:
--------------------------------------------------------------------------------
1 | {% include links-n-built-by.html %}
2 |
--------------------------------------------------------------------------------
/docs/_includes/links-n-built-by.html:
--------------------------------------------------------------------------------
1 |
2 | {% include built-by.html %}
3 | {% include links-section.html %}
4 |
5 |
--------------------------------------------------------------------------------
/docs/_includes/links-n-use-cases.html:
--------------------------------------------------------------------------------
1 |
2 | {% include use-cases-box.html %}
3 | {% include links-section.html %}
4 |
5 |
--------------------------------------------------------------------------------
/docs/_includes/styles.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | custom_js:
4 | - prism
5 | ---
6 |
7 |
8 | {{ content }}
9 |
10 |
--------------------------------------------------------------------------------
/docs/_pages/commercial-support/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | permalink: /commercial-support/
3 | redirect_to: https://gruntwork.io/support
4 | ---
5 |
--------------------------------------------------------------------------------
/docs/_pages/contact/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | permalink: /contact/
3 | redirect_to: https://gruntwork.io/contact
4 | ---
5 |
6 |
--------------------------------------------------------------------------------
/docs/_posts/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/_posts/.keep
--------------------------------------------------------------------------------
/docs/assets/css/pages/cookie-policy.scss:
--------------------------------------------------------------------------------
1 | .page-cookie-policy {
2 | .container > .row + .row {
3 | padding-top: 28px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/docs/assets/css/pages/support.scss:
--------------------------------------------------------------------------------
1 | .page-support {
2 | .subheader {
3 | font-weight: bold; font-style:italic; margin: -16px 0 10px 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/docs/assets/img/contact/bottom@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/contact/bottom@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/contact/right@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/contact/right@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/contact/top@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/contact/top@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/apple-icon-57x57.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/apple-icon-60x60.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/apple-icon-72x72.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/apple-icon-76x76.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/apple-icon.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/favicon.ico
--------------------------------------------------------------------------------
/docs/assets/img/favicon/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/ms-icon-144x144.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/ms-icon-150x150.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/ms-icon-310x310.png
--------------------------------------------------------------------------------
/docs/assets/img/favicon/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/favicon/ms-icon-70x70.png
--------------------------------------------------------------------------------
/docs/assets/img/home/built-by-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/built-by-left.png
--------------------------------------------------------------------------------
/docs/assets/img/home/built-by-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/built-by-right.png
--------------------------------------------------------------------------------
/docs/assets/img/home/links-shapes-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/links-shapes-left.png
--------------------------------------------------------------------------------
/docs/assets/img/home/links-shapes-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/links-shapes-right.png
--------------------------------------------------------------------------------
/docs/assets/img/home/t-all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/t-all.png
--------------------------------------------------------------------------------
/docs/assets/img/home/t-o-1@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/t-o-1@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/home/t-o-2@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/t-o-2@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/home/t-o-3@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/home/t-o-3@3x.png
--------------------------------------------------------------------------------
/docs/assets/img/icons/menu-dots-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/icons/menu-dots-icon.png
--------------------------------------------------------------------------------
/docs/assets/img/icons/play_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/icons/play_icon.png
--------------------------------------------------------------------------------
/docs/assets/img/link-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/link-icon.png
--------------------------------------------------------------------------------
/docs/assets/img/logos/discord-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/logos/discord-logo.png
--------------------------------------------------------------------------------
/docs/assets/img/logos/github-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/logos/github-logo.png
--------------------------------------------------------------------------------
/docs/assets/img/no-search-results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/no-search-results.png
--------------------------------------------------------------------------------
/docs/assets/img/screenshots/find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/screenshots/find.png
--------------------------------------------------------------------------------
/docs/assets/img/screenshots/list-long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/screenshots/list-long.png
--------------------------------------------------------------------------------
/docs/assets/img/screenshots/list-narrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/screenshots/list-narrow.png
--------------------------------------------------------------------------------
/docs/assets/img/screenshots/list-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/screenshots/list-tree.png
--------------------------------------------------------------------------------
/docs/assets/img/screenshots/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/screenshots/list.png
--------------------------------------------------------------------------------
/docs/assets/img/terragrunt-thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/docs/assets/img/terragrunt-thumbnail.png
--------------------------------------------------------------------------------
/docs/jekyll-serve.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | echo -e "\e[1;31mRun Jekyll serve to watch for changes"
6 | bundle exec jekyll serve --livereload --drafts --host 0.0.0.0
7 |
--------------------------------------------------------------------------------
/internal/cli/flag_test.go:
--------------------------------------------------------------------------------
1 | package cli_test
2 |
3 | func mockDestValue[T any](val T) *T {
4 | return &val
5 | }
6 |
--------------------------------------------------------------------------------
/internal/os/exec/testdata/infinite_loop.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | :loop
4 | sleep 0.1
5 | goto loop
--------------------------------------------------------------------------------
/internal/os/exec/testdata/test_exit_code.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | exit %1
--------------------------------------------------------------------------------
/internal/os/exec/testdata/test_exit_code.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | exit $1
--------------------------------------------------------------------------------
/internal/services/catalog/module/testdata/find_modules/gitdir/HEAD:
--------------------------------------------------------------------------------
1 | ref: refs/heads/master
2 |
--------------------------------------------------------------------------------
/internal/strict/view/plaintext/plaintext.go:
--------------------------------------------------------------------------------
1 | // Package plaintext implements the view.Render interface for displaying strict controls in plaintext format.
2 | package plaintext
3 |
--------------------------------------------------------------------------------
/internal/strict/view/view.go:
--------------------------------------------------------------------------------
1 | // Package view contains the rendering logic for printing strict controls.
2 | package view
3 |
--------------------------------------------------------------------------------
/internal/view/view.go:
--------------------------------------------------------------------------------
1 | // Package view contains the rendering logic for terragrunt.
2 | package view
3 |
--------------------------------------------------------------------------------
/pkg/log/fields.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | // Fields is the type used to pass arguments to `WithFields`.
4 | type Fields map[string]any
5 |
--------------------------------------------------------------------------------
/scripts/pre-commit:
--------------------------------------------------------------------------------
1 | make fmt
--------------------------------------------------------------------------------
/test/benchmarks/.gitignore:
--------------------------------------------------------------------------------
1 | *.test
2 |
--------------------------------------------------------------------------------
/test/fixtures/assume-role-web-identity/file-path/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "test_file" {
2 | content = "test_file"
3 | filename = "${path.module}/test_file.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/assume-role/duration/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "test_file" {
2 | content = "test_file"
3 | filename = "${path.module}/test_file.txt"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/creds-for-dependency/dependency/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = "foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/creds-for-dependency/dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | aws_account_id = get_aws_account_id()
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/creds-for-dependency/dependent/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "dependency" {
2 | config_path = "../dependency"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/multiple-apps/app3/main.tf:
--------------------------------------------------------------------------------
1 | variable "foo" {}
2 |
3 | output "foo-app3" {
4 | value = var.foo
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/multiple-apps/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/oidc/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/auth-provider-cmd/oidc/main.tf
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/sops/creds.config:
--------------------------------------------------------------------------------
1 | access_key_id=__FILL_AWS_ACCESS_KEY_ID__
2 | secret_access_key=__FILL_AWS_SECRET_ACCESS_KEY__
3 | session_token=
4 | tf_var_foo=
5 |
--------------------------------------------------------------------------------
/test/fixtures/auth-provider-cmd/sops/main.tf:
--------------------------------------------------------------------------------
1 | variable "hello" {}
2 |
3 | output "hello" {
4 | value = var.hello
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/apply-all/app1/main.tf:
--------------------------------------------------------------------------------
1 | output "app1_text" {
2 | value = "app1 output"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/apply-all/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = "${find_in_parent_folders("root.hcl")}"
3 | }
4 |
5 | dependencies {
6 | paths = ["../app3"]
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/apply-all/app2/main.tf:
--------------------------------------------------------------------------------
1 | output "app2_text" {
2 | value = "app2 output"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/apply-all/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = "${find_in_parent_folders("root.hcl")}"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/apply-all/root.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/configurable-retries-incorrect-retry-attempts/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/configurable-retries-incorrect-retry-attempts/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | retry_max_attempts = 0
2 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/configurable-retries-incorrect-sleep-interval/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/configurable-retries-incorrect-sleep-interval/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | retry_sleep_interval_sec = -1
2 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/configurable-retries/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | retry_max_attempts = 5
2 | retry_sleep_interval_sec = 0
3 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/custom-errors-not-set/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # No retryable_errors set
2 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/custom-errors/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | retryable_errors = [
2 | "My own little error"
3 | ]
4 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/exhaust/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/get-default-errors/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | retryable_errors = concat(get_default_retryable_errors(), ["my special snowflake"])
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/auto-retry/re-run/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/aws-provider-patch/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty. This is merely a placeholder so that Terragrunt treats this folder as a Terragrunt module.
--------------------------------------------------------------------------------
/test/fixtures/broken-dependency/app/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/broken-dependency/app/main.tf
--------------------------------------------------------------------------------
/test/fixtures/broken-dependency/dependency/main.tf:
--------------------------------------------------------------------------------
1 | module "example_module" {
2 | source = "/tmp/not-existing-path"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/broken-locals/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/broken-locals/main.tf
--------------------------------------------------------------------------------
/test/fixtures/broken-locals/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | file = yamldecode(sops_decrypt_file("not-existing-file-that-will-fail-locals-evaluating.yaml"))
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex-legacy-root/common.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | github_org = "gruntwork-io"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex-legacy-root/dev/us-west-1/modules/terraform-aws-eks/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex-legacy-root/prod/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex-legacy-root/stage/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex/common.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | github_org = "gruntwork-io"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex/dev/us-west-1/modules/terraform-aws-eks/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex/prod/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/complex/stage/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/config2.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | baseRepo = "github.com/gruntwork-io"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/catalog/config3.hcl:
--------------------------------------------------------------------------------
1 | catalog {
2 | }
3 |
--------------------------------------------------------------------------------
/test/fixtures/cli-flag-hints/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "tfr://registry.terraform.io/yorinasub17/terragrunt-registry-test/null//modules/one?version=0.0.2"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-attr/main.tf:
--------------------------------------------------------------------------------
1 | variable "text" {}
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-attr/test.tf:
--------------------------------------------------------------------------------
1 | # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa
2 | output "text" {
3 | value = var.text
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/disable-signature/.gitignore:
--------------------------------------------------------------------------------
1 | data.json
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/disable-signature/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = jsondecode(file("${path.module}/data.json"))["text"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/disable/.gitignore:
--------------------------------------------------------------------------------
1 | data.txt
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/enable/.gitignore:
--------------------------------------------------------------------------------
1 | data.txt
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/nested/.gitignore:
--------------------------------------------------------------------------------
1 | random_file.txt
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/nested/child_inherit/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/overwrite/.gitignore:
--------------------------------------------------------------------------------
1 | foo.tfstate
2 | bar.tfstate
3 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/overwrite/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/generate-block/overwrite_terragrunt_error/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remote-state/base/.gitignore:
--------------------------------------------------------------------------------
1 | foo.tfstate
2 | backend.tf
3 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remote-state/overwrite/.gitignore:
--------------------------------------------------------------------------------
1 | foo.tfstate
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remote-state/overwrite/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remote-state/s3/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remote-state/skip/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/remove/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/remove/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/remove_terragrunt/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/remove_terragrunt_error/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/remove_terragrunt_error/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/skip/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {
3 | path = "bar.tfstate"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/codegen/remove-file/skip/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/commands-that-need-input/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/ignore-cached-config/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/ignore-terraform-data-dir/subdir/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-configs/subdir-2/subdir/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-configs/subdir-3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-configs/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-json-configs/subdir-2/subdir/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-json-configs/subdir-3/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-json-configs/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-mixed-configs/subdir-2/subdir/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-mixed-configs/subdir-3/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/multiple-mixed-configs/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/none/empty.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/config-files/none/empty.txt
--------------------------------------------------------------------------------
/test/fixtures/config-files/none/subdir/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/config-files/one-config/subdir/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/one-json-config/subdir/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/single-json-config/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/test/fixtures/config-files/with-non-default-names/app/main.hcl:
--------------------------------------------------------------------------------
1 | include "parent" {
2 | path = "../parent.hcl"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/config-files/with-non-default-names/app/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/config-files/with-non-default-names/common.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | common = run_cmd("echo", "common_hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/config-terraform-functions/other-file.txt:
--------------------------------------------------------------------------------
1 | This is a test file
2 |
--------------------------------------------------------------------------------
/test/fixtures/dependency-optimisation/module-a/main.tf:
--------------------------------------------------------------------------------
1 | output "test_output" {
2 | value = "hello from module-a"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/dependency-optimisation/module-b/main.tf:
--------------------------------------------------------------------------------
1 | variable "test_var" {
2 | type = string
3 | }
4 |
5 | output "test_output" {
6 | value = var.test_var
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/dependency-optimisation/module-c/main.tf:
--------------------------------------------------------------------------------
1 | variable "test_var" {
2 | type = string
3 | }
4 |
5 | output "result" {
6 | value = var.test_var
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/dependency-output/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "input_value" {}
2 |
3 | output "output_value" {
4 | value = var.input_value
5 | }
--------------------------------------------------------------------------------
/test/fixtures/dependency-output/dependency/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 |
3 | value = "42"
4 | }
--------------------------------------------------------------------------------
/test/fixtures/destroy-order/app/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "Module A"
3 | }
4 |
5 | terraform {
6 | source = "../../hello"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/destroy-order/app/module-c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "Module C"
3 | }
4 |
5 | terraform {
6 | source = "../../hello"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/destroy-order/app/module-e/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "Module E"
3 | }
4 |
5 | terraform {
6 | source = "../../hello"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/destroy-order/hello/hello/main.tf:
--------------------------------------------------------------------------------
1 | output "hello" {
2 | value = "Hello"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/destroy-warning/root.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/destroy-warning/root.hcl
--------------------------------------------------------------------------------
/test/fixtures/destroy-warning/vpc/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/destroy-warning/vpc/main.tf
--------------------------------------------------------------------------------
/test/fixtures/destroy-warning/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/changes/app1/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "example" {
2 | content = "Test"
3 | filename = "${path.module}/example.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/changes/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/changes/app2/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "example" {
2 | content = "Test"
3 | filename = "${path.module}/example.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/changes/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/error/app1/main.tf:
--------------------------------------------------------------------------------
1 | data "local_file" "read_not_existing_file" {
2 | filename = "${path.module}/not-existing-file.txt"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/error/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/error/app2/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "example" {
2 | content = "Test"
3 | filename = "${path.module}/example.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/detailed-exitcode/fail-on-first-run/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | retry_max_attempts = 2
2 | retry_sleep_interval_sec = 1
3 | retryable_errors = [".*"]
4 |
--------------------------------------------------------------------------------
/test/fixtures/dirs/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/dirs/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/disabled-path/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/disabled-path/main.tf
--------------------------------------------------------------------------------
/test/fixtures/disabled-path/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "/dev/null"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/disabled/app/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/disabled/app/main.tf
--------------------------------------------------------------------------------
/test/fixtures/disabled/unit-disabled/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | broken hcl file
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-01/foo/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "file" {
2 | content = "Hello, World!"
3 | filename = "${path.module}/hi.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-03/bar/main.tf:
--------------------------------------------------------------------------------
1 | variable "content" {}
2 |
3 | module "shared" {
4 | source = "../shared"
5 |
6 | content = var.content
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-03/foo/main.tf:
--------------------------------------------------------------------------------
1 | variable "content" {}
2 |
3 | module "shared" {
4 | source = "../shared"
5 |
6 | content = var.content
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-04/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-05.1/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 | hi.txt
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-05/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-05/README.md:
--------------------------------------------------------------------------------
1 | Note that this step is the same as the previous step.
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-06/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-06/shared/output.tf:
--------------------------------------------------------------------------------
1 | output "content" {
2 | value = local_file.file.content
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-07.1/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-07.1/shared/output.tf:
--------------------------------------------------------------------------------
1 | output "content" {
2 | value = local_file.file.content
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-07/.gitignore:
--------------------------------------------------------------------------------
1 | .terragrunt-cache
2 |
--------------------------------------------------------------------------------
/test/fixtures/docs/01-quick-start/step-07/shared/output.tf:
--------------------------------------------------------------------------------
1 | output "content" {
2 | value = local_file.file.content
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/docs/02-overview/step-04-configuration-hierarchy/us-east-1/region.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | region = "us-east-1"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/docs/02-overview/step-05-exposed-includes/us-east-1/region.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | region = "us-east-1"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/docs/02-overview/step-05-exposed-includes/us-west-2/region.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | region = "us-west-2"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-local-hash/main.tf:
--------------------------------------------------------------------------------
1 | # Local file hash test
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-local-hash/version-file.txt:
--------------------------------------------------------------------------------
1 | h1:iZ9U+r4EPyqBU2l8Ih0StqixGyMnZTNoNqSGeEMT0QI=
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-no-query/main.tf:
--------------------------------------------------------------------------------
1 | # This file is just a placeholder
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-no-query/version-file.txt:
--------------------------------------------------------------------------------
1 | 2jmj7l5rSw0yVb_vlWAYkK_YBwk
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-tf-code/main.tf:
--------------------------------------------------------------------------------
1 | # This file is just a placeholder
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file-tf-code/version-file.txt:
--------------------------------------------------------------------------------
1 | zqg_v-R2bnqTbCe-ZO3mHRTRKX0
--------------------------------------------------------------------------------
/test/fixtures/download-source/download-dir-version-file/version-file.txt:
--------------------------------------------------------------------------------
1 | zqg_v-R2bnqTbCe-ZO3mHRTRKX0
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-2/main.tf:
--------------------------------------------------------------------------------
1 | # Hello, World 2
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-2/version-file.txt:
--------------------------------------------------------------------------------
1 | 2jmj7l5rSw0yVb_vlWAYkK_YBwk
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-local-hash-failed/main.tf:
--------------------------------------------------------------------------------
1 | # Local file hash test
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-local-hash/main.tf:
--------------------------------------------------------------------------------
1 | # Local file hash test
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-version-remote/main.tf:
--------------------------------------------------------------------------------
1 | # Hello, World version remote
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world-version-remote/version-file.txt:
--------------------------------------------------------------------------------
1 | VfXVGR1zzP_GpoK2lMFIlJyW-ko
--------------------------------------------------------------------------------
/test/fixtures/download-source/hello-world/main.tf:
--------------------------------------------------------------------------------
1 | # Hello, World
--------------------------------------------------------------------------------
/test/fixtures/download/custom-lock-file-terraform/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "World"
3 | }
4 |
5 | terraform {
6 | source = "../custom-lock-file-module"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/download/custom-lock-file-tofu/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "World"
3 | }
4 |
5 | terraform {
6 | source = "../custom-lock-file-module"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/download/extra-args/common.tfvars:
--------------------------------------------------------------------------------
1 | name = "extra args"
--------------------------------------------------------------------------------
/test/fixtures/download/hello-world/hello/main.tf:
--------------------------------------------------------------------------------
1 | output "hello" {
2 | value = "Hello"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/download/local-include-with-prevent-destroy-dependencies/root.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../module-a"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/download/local-relative/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "World"
3 | }
4 |
5 | terraform {
6 | source = "..//relative"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/download/local-windows/JZwoL6Viko8bzuRvTOQFx3Jh8vs/3mU4huxMLOXOW5ZgJOFXGUFDKc8/hello/main.tf:
--------------------------------------------------------------------------------
1 | output "hello" {
2 | value = "Hello"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/download/local-with-allowed-hidden/live/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../modules"
3 | include_in_copy = [".nonce"]
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/download/local-with-allowed-hidden/modules/.nonce:
--------------------------------------------------------------------------------
1 | Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/download/local-with-allowed-hidden/modules/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = trimspace(file(".nonce"))
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/download/local-with-hidden-folder/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "World"
3 | }
4 |
5 | terraform {
6 | source = "../hello-world"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/download/local/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | name = "World"
3 | }
4 |
5 | terraform {
6 | source = "../hello-world"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/download/remote-invalid/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "https://github.com/totallyfakedoesnotexist/notreal.git//foo?ref=v1.2.3"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/download/remote-module-in-root/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "github.com/gruntwork-io/terraform-module-in-root-for-terragrunt-test.git"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/download/stdout-test/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../stdout"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/empty-state/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/fixtures/empty-state/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/empty-state/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/engine/engine-dependencies/.gitignore:
--------------------------------------------------------------------------------
1 | backend.gen.tf
2 | test.txt
3 |
--------------------------------------------------------------------------------
/test/fixtures/engine/engine-dependencies/app1/main.tf:
--------------------------------------------------------------------------------
1 | output "value" {
2 | value = "app1-test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/engine-dependencies/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/engine/local-engine/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | engine {
2 | source = "__engine_source__"
3 | }
4 |
5 | inputs = {
6 | value = "test_input_value_from_terragrunt"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app1/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app2/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app3/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app4/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app4/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app5/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-latest-run-all/app5/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app1/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app2/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app3/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app4/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app4/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app5/main.tf:
--------------------------------------------------------------------------------
1 |
2 | resource "local_file" "test" {
3 | content = "app1"
4 | filename = "${path.module}/test.txt"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/engine/opentofu-run-all/app5/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/engine/trace-parent/get_traceparent.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | echo "$1 {\"traceparent\": \"${TRACEPARENT}\"}"
5 |
--------------------------------------------------------------------------------
/test/fixtures/ephemeral-inputs/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | test = "test input 46521694"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/error-print/custom-tf-script.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | echo "Custom error from script" >&2
4 |
5 | exit 1
6 |
--------------------------------------------------------------------------------
/test/fixtures/error-print/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/error-print/main.tf
--------------------------------------------------------------------------------
/test/fixtures/error-print/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/error-print/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/errors/default/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/errors/default/main.tf
--------------------------------------------------------------------------------
/test/fixtures/errors/run-all-ignore/app2/main.tf:
--------------------------------------------------------------------------------
1 | output "app2" {
2 | value = "value-from-app-2"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/errors/run-all/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "common" {
2 | path = find_in_parent_folders("common.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/errors/run-all/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "common" {
2 | path = find_in_parent_folders("common.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/exclude/action/exclude-apply/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["apply"]
4 | exclude_dependencies = true
5 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/action/exclude-plan/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["plan"]
4 | exclude_dependencies = true
5 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/all-except-output/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["all_except_output"]
4 | exclude_dependencies = true
5 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/basic/unit1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["plan"]
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/exclude/basic/unit2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["apply"]
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/exclude/basic/unit3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | // No exclude configuration
2 |
--------------------------------------------------------------------------------
/test/fixtures/exclude/default/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = true
3 | actions = ["all"]
4 | exclude_dependencies = true
5 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/dependencies/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "data1" {
2 | value = "data1"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/disabled/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | exclude {
2 | if = false
3 | actions = ["all"]
4 | exclude_dependencies = true
5 | }
--------------------------------------------------------------------------------
/test/fixtures/exclude/feature-flags/flags.hcl:
--------------------------------------------------------------------------------
1 |
2 | feature "exclude1" {
3 | default = false
4 | }
5 |
6 | feature "exclude2" {
7 | default = true
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/.terragrunt-excludes:
--------------------------------------------------------------------------------
1 | # Comment line
2 | a/
3 | #b/
4 | c/
5 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/a/main.tf:
--------------------------------------------------------------------------------
1 | variable "value" {
2 | type = string
3 | default = "a"
4 | }
5 |
6 | output "value" {
7 | value = var.value
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/b/main.tf:
--------------------------------------------------------------------------------
1 | variable "value" {
2 | type = string
3 | default = "b"
4 | }
5 |
6 | output "value" {
7 | value = var.value
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/b/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/c/main.tf:
--------------------------------------------------------------------------------
1 | variable "value" {
2 | type = string
3 | default = "c"
4 | }
5 |
6 | output "value" {
7 | value = var.value
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/d/main.tf:
--------------------------------------------------------------------------------
1 | variable "value" {
2 | type = string
3 | default = "d"
4 | }
5 |
6 | output "value" {
7 | value = var.value
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/d/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/excludes-file/excludes-file-pass-as-flag:
--------------------------------------------------------------------------------
1 | b/
2 | d/
3 |
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd-tf-path/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "baz" {
2 | type = string
3 | }
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd-tf-path/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "baz" {
2 | value = "baz"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd-tf-path/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd-tf-path/script.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | echo "baz is ${TF_VAR_baz:-not set}"
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "foo" {
2 | type = string
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/exec-cmd/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
4 |
5 | inputs = {
6 | foo = "FOO"
7 | bar = "BAR"
8 | }
9 |
--------------------------------------------------------------------------------
/test/fixtures/external-dependencies/module-a/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "Hello World, module-a"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/external-dependencies/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/external-dependencies/module-b/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "Hello World, module-b"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/external-dependencies/module-b/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = [
3 | "../module-a",
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/external-dependency/main.tf:
--------------------------------------------------------------------------------
1 | output "value" {
2 | value = "dep1"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/external-dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["/tmp/external-46521694"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/extra-args/dev.tfvars:
--------------------------------------------------------------------------------
1 | extra_var = "Hello, World from dev!"
2 |
--------------------------------------------------------------------------------
/test/fixtures/extra-args/extra.tfvars:
--------------------------------------------------------------------------------
1 | extra_var = "Hello, World!"
2 |
--------------------------------------------------------------------------------
/test/fixtures/extra-args/us-west-2.tfvars:
--------------------------------------------------------------------------------
1 | extra_var = "Hello, World from Oregon!"
2 |
--------------------------------------------------------------------------------
/test/fixtures/failure/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/failure/main.tf
--------------------------------------------------------------------------------
/test/fixtures/failure/missingvars/main.tf:
--------------------------------------------------------------------------------
1 |
2 | module "sub" {
3 | source = "..//submod"
4 | }
5 |
6 |
7 |
--------------------------------------------------------------------------------
/test/fixtures/failure/missingvars/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/failure/submod/main.tf:
--------------------------------------------------------------------------------
1 | variable "missingvar1" {}
2 | variable "missingvar2" {}
3 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/failure/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/feature-flags/error-empty-flag/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | feature "test1" {}
2 |
3 | feature "test2" {}
4 |
5 | feature "test3" {}
--------------------------------------------------------------------------------
/test/fixtures/find-parent/app/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/find-parent/app/main.tf
--------------------------------------------------------------------------------
/test/fixtures/find-parent/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
4 |
5 | include "root" {
6 | path = find_in_parent_folders("root.hcl")
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/find-parent/root.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/find-parent/root.hcl
--------------------------------------------------------------------------------
/test/fixtures/find/basic/stack/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/basic/unit/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/dag/a-dependent/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "dep" {
2 | config_path = "../b-dependency"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/find/dag/b-dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/hidden/.hide/unit/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/hidden/stack/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/hidden/unit/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/find/include/bar/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/find/include/bar/main.tf
--------------------------------------------------------------------------------
/test/fixtures/find/include/bar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "cloud" {
2 | path = find_in_parent_folders("cloud.hcl")
3 | }
--------------------------------------------------------------------------------
/test/fixtures/find/include/cloud.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/find/include/cloud.hcl
--------------------------------------------------------------------------------
/test/fixtures/find/include/foo/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/find/include/foo/main.tf
--------------------------------------------------------------------------------
/test/fixtures/find/internal-v-external/internal/b-dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/gcs-impersonate/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "gcs" {}
3 | }
4 |
5 | output "value" {
6 | value = "42"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/gcs-no-bucket/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "gcs" {}
3 | }
4 |
5 | output "result" {
6 | value = "42"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/gcs-no-prefix/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "gcs" {}
3 | }
4 |
5 | output "result" {
6 | value = "42"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/gcs-parallel-state-init/template/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "file" {
2 | content = "test file"
3 | filename = "${path.module}/file.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/gcs-parallel-state-init/template/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-aws-account-alias/main.tf:
--------------------------------------------------------------------------------
1 | variable "account_alias" {
2 | type = string
3 | }
4 |
5 | output "account_alias" {
6 | value = var.account_alias
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-aws-account-alias/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | account_alias = get_aws_account_alias()
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aa/foo/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aa/foo/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "foo" {
2 | config_path = "../foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aba/bar/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aba/bar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "foo" {
2 | config_path = "../foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aba/foo/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/aba/foo/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "bar" {
2 | config_path = "../bar"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/bar/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/bar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "foo" {
2 | config_path = "../foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/baz/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/baz/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/foo/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abca/foo/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "bar" {
2 | config_path = "../bar"
3 | }
4 |
5 | dependency "baz" {
6 | config_path = "../baz"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/bar/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/bar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "baz" {
2 | config_path = "../baz"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/baz/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/baz/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "car" {
2 | config_path = "../car"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/car/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/car/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "foo" {
2 | config_path = "../foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/foo/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/cycle/abcda/foo/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "bar" {
2 | config_path = "../bar"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/integration/app1/main.tf:
--------------------------------------------------------------------------------
1 | output "x" {
2 | value = 14
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/integration/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/integration/app2/main.tf:
--------------------------------------------------------------------------------
1 | output "y" {
2 | value = 28
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/integration/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/integration/app3/main.tf:
--------------------------------------------------------------------------------
1 | variable "x" {}
2 |
3 | variable "y" {}
4 |
5 | output "z" {
6 | value = var.x + var.y
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/localstate/modules/parent/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {}
3 | }
4 |
5 | output "x" {
6 | value = 14
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/mock-outputs/dependent1/main.tf:
--------------------------------------------------------------------------------
1 | variable "the_answer" {}
2 |
3 | output "truth" {
4 | value = "The answer is ${var.the_answer}"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/mock-outputs/dependent2/main.tf:
--------------------------------------------------------------------------------
1 | variable "the_answer" {}
2 |
3 | output "fake" {
4 | value = "never ${var.the_answer}"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/mock-outputs/dependent3/main.tf:
--------------------------------------------------------------------------------
1 | variable "the_answer" {}
2 |
3 | output "truth" {
4 | value = "The answer is ${var.the_answer}"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/mock-outputs/source/main.tf:
--------------------------------------------------------------------------------
1 | output "the_answer" {
2 | value = 42
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/mock-outputs/source/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-mocks/deepdep/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = "The answer is 42"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-mocks/deepdep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty.
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-mocks/dep/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "No, ${var.input}"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-mocks/live/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "They said, \"${var.input}\""
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-disable/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-disable/deepdep/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = "The answer is 42"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-disable/deepdep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty.
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-disable/dep/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "No, ${var.input}"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-disable/live/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "They said, \"${var.input}\""
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-nogen/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-nogen/deepdep/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = "The answer is 42"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-nogen/deepdep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty.
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization-nogen/live/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "They said, \"${var.input}\""
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization/deepdep/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = "The answer is 42"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization/deepdep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty.
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization/dep/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "No, ${var.input}"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/nested-optimization/live/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = "They said, \"${var.input}\""
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1102/.gitignore:
--------------------------------------------------------------------------------
1 | .terraform.lock.hcl
2 | foo.tfstate
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1102/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1124/live/dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../../modules//dependency"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1124/modules/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "foo" {}
2 | output "foo" { value = var.foo }
3 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1273/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = "hello, world"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-1273/main/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 | output "output" {
3 | value = var.input
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-854/root/environments/network/main.tf:
--------------------------------------------------------------------------------
1 | output "id" {
2 | value = 42
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-854/root/environments/network/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = "../../terragrunt.hcl"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-854/root/environments/web/main.tf:
--------------------------------------------------------------------------------
1 | output "id" {
2 | value = 42
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-854/root/environments/web/sg/main.tf:
--------------------------------------------------------------------------------
1 | output "id" {
2 | value = 42
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-output/regression-854/root/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/get-path-from-repo-root/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | path_from_root = get_path_from_repo_root()
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/path_relative_from_include/lives/dev/base/tier.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | tier = "base"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/path_relative_from_include/lives/dev/cluster/tier.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | tier = "cluster"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/path_relative_from_include/lives/dev/env.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | environment = "dev"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/path_relative_from_include/lives/org.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | organization_unit = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-path/path_relative_from_include/modules/base/main.tf:
--------------------------------------------------------------------------------
1 | output "some_output" {
2 | value = "something"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-platform/main.tf:
--------------------------------------------------------------------------------
1 | variable "platform" {
2 | type = string
3 | }
4 |
5 | output "platform" {
6 | value = var.platform
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-platform/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | platform = get_platform()
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-repo-root/main.tf:
--------------------------------------------------------------------------------
1 | variable "repo_root" {
2 | type = string
3 | }
4 |
5 | output "repo_root" {
6 | value = var.repo_root
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/get-repo-root/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | repo_root = get_repo_root()
3 | repo_root_2 = get_repo_root()
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/get-terragrunt-source-cli/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | terragrunt_source = get_terragrunt_source_cli_flag()
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/get-working-dir/main.tf:
--------------------------------------------------------------------------------
1 | variable "working_dir" {
2 | type = string
3 | }
4 |
5 | output "working_dir" {
6 | value = var.working_dir
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/backend-app/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/frontend-app/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/mysql/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/redis/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/vpc/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph-dependencies/root/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/graph/dependency-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/graph/dependency-graph.png
--------------------------------------------------------------------------------
/test/fixtures/graph/eks/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/eks/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/graph/eks/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/graph/lambda/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/lambda/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/graph/lambda/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-1/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks" {
2 | config_path = "../../eks"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-2-v2/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-2-v2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks-service-2" {
2 | config_path = "../eks-service-2"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-2/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks" {
2 | config_path = "../../eks"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-3-v2/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-3-v2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks-service-3" {
2 | config_path = "../eks-service-3"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-3-v3/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-3-v3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks-service-3-v2" {
2 | config_path = "../eks-service-3-v2"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-3/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-4/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-4/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "eks-service-3" {
2 | config_path = "../eks-service-3"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/eks-service-5/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/lambda-service-1/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/lambda-service-1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "lambda" {
2 | config_path = "../../lambda"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/graph/services/lambda-service-2/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "42"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/graph/services/lambda-service-2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "lambda-service-1" {
2 | config_path = "../lambda-service-1"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/hclfmt-errors/dangling-attribute/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Dangling attribute, where no value is set
2 | inputs =
3 |
--------------------------------------------------------------------------------
/test/fixtures/hclfmt-errors/invalid-character/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Invalid starting character
2 | $foo = "bar"
3 |
--------------------------------------------------------------------------------
/test/fixtures/hclfmt-errors/invalid-key/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Invalid key
2 | foo.bar.baz = "xyz"
3 |
--------------------------------------------------------------------------------
/test/fixtures/hclfmt-heredoc/expected.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | foo = <&1)
4 |
--------------------------------------------------------------------------------
/test/fixtures/hooks/if-parameter/main.tf:
--------------------------------------------------------------------------------
1 | output "example" {
2 | value = "hello, world"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/hooks/init-once/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
--------------------------------------------------------------------------------
/test/fixtures/hooks/working_dir/main.tf:
--------------------------------------------------------------------------------
1 | output "example" {
2 | value = "hello world"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-deep/vpc/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-deep/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/mixed-with-bare/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/multiple/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/root.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | region = "us-west-1"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/single-bare/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/single/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/terragrunt_env.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | environment = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency-reference-input/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency-reference-input/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "env" {
2 | value = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency-reference-input/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency/child/main.tf:
--------------------------------------------------------------------------------
1 | variable "region" {}
2 |
3 | output "region" {
4 | value = var.region
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "env" {
2 | value = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-expose/with-dependency/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/deep-merge-nonoverlapping/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/deep-merge-overlapping/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/expose/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/has-bare-include/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/json/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/modules/empty/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/shallow-deep-merge-overlapping/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-multiple/shallow-merge/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/empty"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-parent/app/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-parent/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "parent" {
2 | path = "../parent.hcl"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/include-parent/common.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | common = run_cmd("echo", "common_hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/a/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = "alpha"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "alpha" {
2 | path = find_in_parent_folders("alpha.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/alpha.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/b/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = "beta"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/b/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/c/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = "charlie"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/include-runall/c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/init-cache/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "test" {}
2 |
3 | output "result" {
4 | value = var.test
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/init-cache/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | inputs = {
6 | env = "nonprod"
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/init-error/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {
3 | bucket = "mybucket"
4 | key = "path/to/my/key"
5 | region = "us-east-1"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/init-error/terragrunt.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/init-error/terragrunt.hcl
--------------------------------------------------------------------------------
/test/fixtures/init-once/module/main.tf:
--------------------------------------------------------------------------------
1 | module "vpc" {
2 | source = "cloudposse/module/example"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/init-once/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = ".//module"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/inputs-from-dependency/apps/b/local.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | baz = "b-baz"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/inputs-from-dependency/apps/c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "${get_terragrunt_dir()}/../../modules/c"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/inputs-from-dependency/apps/root.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | bar = "parent-bar"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/inputs-from-dependency/modules/c/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = "c-foo"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/list/dag/units/live/dev/db/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "vpc" {
2 | config_path = "../vpc"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/list/dag/units/live/dev/ec2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "vpc" {
2 | config_path = "../vpc"
3 | }
4 |
5 | dependency "db" {
6 | config_path = "../db"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/list/dag/units/live/prod/db/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "vpc" {
2 | config_path = "../vpc"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/list/dag/units/live/prod/ec2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "vpc" {
2 | config_path = "../vpc"
3 | }
4 |
5 | dependency "db" {
6 | config_path = "../db"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/locals-errors/undefined-local-but-input/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | a = "foo"
3 | b = local.a
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/locals-errors/undefined-local/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | data = local.file_contents
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/locals/canonical/contents.txt:
--------------------------------------------------------------------------------
1 | Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/locals/local-in-include/qa/my-app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/locals/run-once/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | bar = run_cmd("echo", "foo")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/log/formatter/app/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/log/formatter/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "dependency" {
2 | config_path = "../dep"
3 | skip_outputs = true
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/log/formatter/dep/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/log/formatter/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/log/levels/main.tf:
--------------------------------------------------------------------------------
1 | output "text" {
2 | value = "output"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/log/levels/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/log/rel-paths/duplicate-dir-names/workspace/one/two/aaa/bbb/ccc/workspace/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../../../..//tf"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/log/rel-paths/duplicate-dir-names/workspace/one/two/tf/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "this" {
2 | }
3 |
4 | output "dummy" {
5 | value = "dummy"
6 | }
7 |
--------------------------------------------------------------------------------
/test/fixtures/manifest-removal/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
4 | include "root" {
5 | path = find_in_parent_folders("root.hcl")
6 | }
7 |
--------------------------------------------------------------------------------
/test/fixtures/manifest-removal/root.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/manifest-removal/root.hcl
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-1/main.tf:
--------------------------------------------------------------------------------
1 | # Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-1/stale.tf:
--------------------------------------------------------------------------------
1 | # this is stale file
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-2/main.tf:
--------------------------------------------------------------------------------
1 | # Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-3-subfolder/main.tf:
--------------------------------------------------------------------------------
1 | # Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-3-subfolder/sub/main.tf:
--------------------------------------------------------------------------------
1 | # hello subfolder
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-4-subfolder-empty/main.tf:
--------------------------------------------------------------------------------
1 | # Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-5-not-empty-subfolder/main.tf:
--------------------------------------------------------------------------------
1 | # Hello world
2 |
--------------------------------------------------------------------------------
/test/fixtures/manifest/version-5-not-empty-subfolder/sub2/main.tf:
--------------------------------------------------------------------------------
1 | # hello, I'm here
2 |
--------------------------------------------------------------------------------
/test/fixtures/missing-dependencies/main/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "Hello World"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/missing-dependencies/main/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = [
3 | "../hl3-release",
4 | "../module-a",
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/test/fixtures/missing-dependencies/module-a/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 | value = "Hello World, module-a"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/missing-dependencies/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/module-path-in-error/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "d1" {
2 | config_path = "../d1"
3 |
4 | mock_outputs = {
5 | d1 = "d1-value"
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/module-path-in-error/d1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "common" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/hcl-module-b/module-b-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl.json")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/hcl-module-c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "temp"
3 | }
4 |
5 | dependencies {
6 | paths = ["../json-module-a"]
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/modules/json-module-a/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {
2 | "terraform": {
3 | "source": "test"
4 | }
5 | }
--------------------------------------------------------------------------------
/test/fixtures/modules/json-module-b/module-b-child/terragrunt.hcl.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": {
3 | "path": "${find_in_parent_folders(\"root.hcl\")}"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/modules/json-module-d/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-abba/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "temp"
3 | }
4 |
5 | dependencies {
6 | paths = ["../module-a"]
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-b/module-b-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "temp"
3 | }
4 |
5 | dependencies {
6 | paths = ["../module-a"]
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-d/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-d/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../module-a", "../module-b/module-b-child", "../module-c"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-e/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/modules/module-e/main.tf
--------------------------------------------------------------------------------
/test/fixtures/modules/module-f/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/modules/module-f/main.tf
--------------------------------------------------------------------------------
/test/fixtures/modules/module-f/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-g/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "test"
3 | }
4 |
5 | dependencies {
6 | paths = ["../module-f"]
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-h/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/modules/module-h/main.tf
--------------------------------------------------------------------------------
/test/fixtures/modules/module-h/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-i/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../module-h"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-i/test.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/modules/module-i/test.tf
--------------------------------------------------------------------------------
/test/fixtures/modules/module-j/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "temp"
3 | }
4 |
5 | dependencies {
6 | paths = ["../module-i"]
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-k/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../module-h"]
3 | }
4 |
5 | terraform {
6 | source = "fire"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-l/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-m/env.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | environment = "dev"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-m/module-m-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-m/module-m-child/tier.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | tier = "base"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/modules/module-missing-dependency/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
--------------------------------------------------------------------------------
/test/fixtures/modules/module-missing-dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../not-a-real-dependency"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depa.hcl:
--------------------------------------------------------------------------------
1 | dependency "depa" {
2 | config_path = "${get_parent_terragrunt_dir()}/depa"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depa/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depa/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depb.hcl:
--------------------------------------------------------------------------------
1 | dependency "depb" {
2 | config_path = "${get_parent_terragrunt_dir()}/depb"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depb/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depb/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depc.hcl:
--------------------------------------------------------------------------------
1 | dependency "depc" {
2 | config_path = "${get_parent_terragrunt_dir()}/depc"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depc/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/depc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/multiinclude-dependency/main/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/no-color/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/no-color/main.tf
--------------------------------------------------------------------------------
/test/fixtures/no-color/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | }
3 |
--------------------------------------------------------------------------------
/test/fixtures/no-submodules/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/no-submodules/main.tf
--------------------------------------------------------------------------------
/test/fixtures/no-submodules/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "git::git@github.com:terraform-google-modules/terraform-google-folders.git?ref=v4.0.0"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/null-values/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
4 | inputs = {
5 | var1 = null
6 | var2 = "variable 2"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-all/env1/app1/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
5 | output "app1_text" {
6 | value = "app1 output"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-all/env1/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | dependencies {
6 | paths = ["../app3"]
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/output-all/env1/app2/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
5 | output "app2_text" {
6 | value = "app2 output"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-all/env1/app3/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
5 | output "app3_text" {
6 | value = "app3 output"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-all/env1/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-from-dependency/dependency/outputs.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = var.foo
3 | description = "Test foo value"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/output-from-remote-state/env1/app1/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
5 | output "app1_text" {
6 | value = "app1 output"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-from-remote-state/env1/app2/variables.tf:
--------------------------------------------------------------------------------
1 | variable "app1_text" {
2 | type = string
3 | }
4 |
5 | variable "app3_text" {
6 | type = string
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-from-remote-state/env1/app3/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
5 | output "app3_text" {
6 | value = "app3 output"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/output-from-remote-state/env1/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/backend-app/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/frontend-app/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/mysql/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/redis/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/vpc/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/output-module-groups/root/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/parallel-state-init/template/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "file" {
2 | content = "test file"
3 | filename = "${path.module}/file.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/parallel-state-init/template/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/in-another-subfolder/common/foo.txt:
--------------------------------------------------------------------------------
1 | some text
2 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/in-another-subfolder/live/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "common" {
2 | path = find_in_parent_folders("common/foo.txt")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/multiple-terragrunt-in-parents/child/root.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/multiple-terragrunt-in-parents/child/sub-child/root.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/multiple-terragrunt-in-parents/child/sub-child/sub-sub-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/no-terragrunt-in-root/child/sub-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Placeholder
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/other-file-names/child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Placeholder
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/other-file-names/foo.txt:
--------------------------------------------------------------------------------
1 | # Placeholder
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/terragrunt-in-root/child/sub-child/sub-sub-child/override/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/terragrunt-in-root/child/sub-child/sub-sub-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Placeholder
--------------------------------------------------------------------------------
/test/fixtures/parent-folders/with-params/tfwork/tg/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "module" {
2 | path = "${find_in_parent_folders("tfwork")}/test-var/providers.tf"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/partial-parse/ignore-bad-block-in-parent/child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/partial-parse/partial-inheritance/child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/planfile-order-test/.gitignore:
--------------------------------------------------------------------------------
1 | test-provider.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/planfile-order-test/inputs.tf:
--------------------------------------------------------------------------------
1 | variable "resource_count" {
2 | type = number
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/planfile-order-test/resource.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "test-resources" {
2 | count = var.resource_count
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/planfile-order-test/vars/variables.tfvars:
--------------------------------------------------------------------------------
1 | resource_count = 3
2 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-not-set/child/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "example" {}
2 |
3 | output "foo" {
4 | value = "bar"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-not-set/child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-not-set/root.hcl:
--------------------------------------------------------------------------------
1 | prevent_destroy = true
2 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-override/child/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "example" {}
2 |
3 | output "foo" {
4 | value = "bar"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-override/child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | prevent_destroy = false
6 |
--------------------------------------------------------------------------------
/test/fixtures/prevent-destroy-override/root.hcl:
--------------------------------------------------------------------------------
1 | prevent_destroy = true
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app4/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app5/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app6/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app7/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app8/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/first/app9/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app4/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app5/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app6/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app7/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app8/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/direct/second/app9/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/filesystem-mirror/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/multiple-platforms/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/multiple-platforms/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/multiple-platforms/app3/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/network-mirror/apps/app0/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/provider-cache/network-mirror/apps/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/from_dependency/dep/main.tf:
--------------------------------------------------------------------------------
1 | variable "foo" {}
2 |
3 | output "foo" { value = var.foo }
4 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/from_dependency/dep/vars.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | foo = "hello world"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/from_dependency/main.tf:
--------------------------------------------------------------------------------
1 | variable "bar" {}
2 | output "bar" { value = var.bar }
3 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/iam_role_in_file/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "local" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/iam_roles_multiple_modules/component1/main.tf:
--------------------------------------------------------------------------------
1 | # Empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/iam_roles_multiple_modules/component2/main.tf:
--------------------------------------------------------------------------------
1 | # Empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/iam_roles_multiple_modules/main.tf:
--------------------------------------------------------------------------------
1 | # Empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/with_constraints/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" { value = "bar" }
--------------------------------------------------------------------------------
/test/fixtures/read-config/with_default/main.tf:
--------------------------------------------------------------------------------
1 | variable "data" {}
2 | output "data" {
3 | value = var.data
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/read-config/with_dependency/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | dependency "inputs" {
2 | config_path = "../../../inputs"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/read-tf-vars/empty.tfvars:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/read-tf-vars/empty.tfvars
--------------------------------------------------------------------------------
/test/fixtures/read-tf-vars/my.tfvars:
--------------------------------------------------------------------------------
1 | string_var = "string"
2 | number_var = 42
3 | bool_var = true
4 | list_var = ["hello", "world"]
--------------------------------------------------------------------------------
/test/fixtures/read-tf-vars/my.tfvars.json:
--------------------------------------------------------------------------------
1 | {
2 | "string_var": "another string",
3 | "number_var": 24,
4 | "bool_var": false
5 | }
--------------------------------------------------------------------------------
/test/fixtures/read-tf-vars/only-comments.tfvars:
--------------------------------------------------------------------------------
1 | # Line 1
2 | # Line 2
--------------------------------------------------------------------------------
/test/fixtures/regressions/accesslogging-bucket/no-target-prefix-input/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/accesslogging-bucket/no-target-prefix-input/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "foo" {}
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/accesslogging-bucket/with-target-prefix-input/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/accesslogging-bucket/with-target-prefix-input/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "foo" {}
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/apply-all-envvar/module/main.tf:
--------------------------------------------------------------------------------
1 | variable "seed" {}
2 | output "text" {
3 | value = "Hello ${var.seed}"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/apply-all-envvar/no-require-envvar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../module"
3 | }
4 |
5 | inputs = {
6 | seed = "world"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/apply-all-envvar/require-envvar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../module"
3 | }
4 |
5 | inputs = {}
6 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/modules/dummy-module/outputs.tf:
--------------------------------------------------------------------------------
1 | output "name" {
2 | value = "this-is-valuable"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/modules/dummy-module/variables.tf:
--------------------------------------------------------------------------------
1 | variable "name" {
2 | type = string
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/production/dependency-group-1:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/production/dependency-group-2:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/production/dependency-group-3:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing-includes/production/dependency-group-4:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/modules/dummy-module/outputs.tf:
--------------------------------------------------------------------------------
1 | output "name" {
2 | value = "this-is-valuable"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/modules/dummy-module/variables.tf:
--------------------------------------------------------------------------------
1 | variable "name" {
2 | type = string
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/production/dependency-group-1:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/production/dependency-group-2:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/production/dependency-group-3:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/benchmark-parsing/production/dependency-group-4:
--------------------------------------------------------------------------------
1 | dependency-group-template/
--------------------------------------------------------------------------------
/test/fixtures/regressions/exclude-dependency/modules/k8s/main.tf:
--------------------------------------------------------------------------------
1 | variable "cluster" {}
2 | output "cluster" { value = var.cluster }
3 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/exclude-dependency/root.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/include-error/_envcommon.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | common_config = "Common Config"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/include-error/project/eng_teams.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | team_name = "Test Team"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/mocks-merge-with-state/deep-map/main.tf:
--------------------------------------------------------------------------------
1 | output "check_field" {
2 | value = "deep-map-executed"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/mocks-merge-with-state/shallow/main.tf:
--------------------------------------------------------------------------------
1 | output "check_field" {
2 | value = "shallow-map-executed"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/multiple-dependency-load-sync/modules/dummy-module/outputs.tf:
--------------------------------------------------------------------------------
1 | output "name" {
2 | value = var.name
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/multiple-dependency-load-sync/modules/dummy-module/variables.tf:
--------------------------------------------------------------------------------
1 | variable "name" {
2 | type = string
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-init/main.tf:
--------------------------------------------------------------------------------
1 | module "mod" {
2 | source = "./module"
3 | }
4 |
5 | output "foo" {
6 | value = module.mod.foo
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-init/module/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "foo" {}
2 |
3 | output "foo" {
4 | value = null_resource.foo.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-init/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intenionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-versioning/.gitignore:
--------------------------------------------------------------------------------
1 | backend.tf
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-versioning/local_terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/regressions/skip-versioning/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "foo" {}
2 |
--------------------------------------------------------------------------------
/test/fixtures/relative-include-cmd/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("terragrunt-test.hcl")
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/relative-include-cmd/terragrunt-test.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | path = run_cmd("echo", "path_relative_to_inclue:", path_relative_to_include())
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-inputs/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "x" {}
2 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-inputs/dependency/main.tf:
--------------------------------------------------------------------------------
1 |
2 | output "value" {
3 | value = "output_value"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/dependencies/app/include.hcl:
--------------------------------------------------------------------------------
1 | dependencies {
2 | paths = ["../dependency2"]
3 | }
4 |
5 | inputs = {
6 | test_input = "test_value"
7 | }
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/dependency/dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 |
3 | x = run_cmd("echo", "HCL file evaluation")
4 | }
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/dependency/dependency2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 |
3 | x = run_cmd("echo", "HCL file evaluation")
4 | }
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/includes/app/inputs.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | qwe = "123"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/includes/app/locals.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | a1 = "qwe"
3 | content = "test"
4 | }
5 |
6 | inputs = {
7 | content = local.content
8 | }
--------------------------------------------------------------------------------
/test/fixtures/render-json-metadata/terraform-remote-state/common/terraform.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../terraform"
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-mock-outputs/dependency/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-regression/bar/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | from_root = "Hi"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-regression/baz/main.tf:
--------------------------------------------------------------------------------
1 | output "baz" {
2 | value = "baz"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-regression/foo/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = "foo"
3 | }
4 |
5 | variable "foo" {}
6 | variable "baz" {}
7 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-with-encryption/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "name" {
2 | value = "dep"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json-with-encryption/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/render-json/dep/main.tf:
--------------------------------------------------------------------------------
1 | output "name" {
2 | value = "dep"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/render-json/dep/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/s3-encryption/custom-key/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "main" {}
2 |
3 | output "id" {
4 | value = null_resource.main.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/s3-encryption/sse-aes/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "main" {}
2 |
3 | output "id" {
4 | value = null_resource.main.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/s3-encryption/sse-kms/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "main" {}
2 |
3 | output "id" {
4 | value = null_resource.main.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/s3-errors/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "s3" {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/scaffold/external-template/boilerplate.yml:
--------------------------------------------------------------------------------
1 | # boilerplate config
2 | variables:
3 |
--------------------------------------------------------------------------------
/test/fixtures/scaffold/external-template/external-template.txt:
--------------------------------------------------------------------------------
1 | # External template
--------------------------------------------------------------------------------
/test/fixtures/scaffold/module-with-template/.boilerplate/boilerplate.yml:
--------------------------------------------------------------------------------
1 | # boilerplate config
2 | variables:
3 |
--------------------------------------------------------------------------------
/test/fixtures/scaffold/module-with-template/.boilerplate/template-file.txt:
--------------------------------------------------------------------------------
1 | # Template file
--------------------------------------------------------------------------------
/test/fixtures/scaffold/root-hcl/root.hcl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/scaffold/root-hcl/root.hcl
--------------------------------------------------------------------------------
/test/fixtures/skip-legacy-root/skip-true/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | skip = true
2 |
3 | terraform {
4 | source = "../../base-module"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/skip/skip-true/resource2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | inputs = {
6 | person = "Bert"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/skip/skip-true/root.hcl:
--------------------------------------------------------------------------------
1 | skip = true
2 |
3 | terraform {
4 | source = "../../base-module"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/sops-errors/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/sops-errors/main.tf
--------------------------------------------------------------------------------
/test/fixtures/sops-errors/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | secret_vars = yamldecode(sops_decrypt_file("${get_terragrunt_dir()}/file.yaml"))
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/sops-missing/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/sops-missing/main.tf
--------------------------------------------------------------------------------
/test/fixtures/sops-missing/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | secret_vars = yamldecode(sops_decrypt_file("${get_terragrunt_dir()}/missing.yaml"))
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/source-map/modules/vpc/main.tf:
--------------------------------------------------------------------------------
1 | variable "name" {}
2 |
3 | output "vpc_id" {
4 | value = "vpc-${var.name}-asdf1234"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint-symlinks/a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "../module"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint-symlinks/module/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "a" {}
2 |
3 | output "a" {
4 | value = null_resource.a.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/a/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "a" {}
2 |
3 | output "a" {
4 | value = null_resource.a.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/b/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "b" {}
2 |
3 | output "b" {
4 | value = null_resource.b.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/b/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/c/main.tf:
--------------------------------------------------------------------------------
1 | resource "null_resource" "c" {}
2 |
3 | output "c" {
4 | value = null_resource.c.id
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stack/disjoint/c/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/stack/mgmt/kms-master-key/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/stack/mgmt/vpc/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/stack/stage/mysql/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | dependencies {
6 | paths = ["../vpc"]
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/stack/stage/redis/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
5 | dependencies {
6 | paths = ["../vpc"]
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/basic/units/chick/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | source = "."
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/basic/units/chicken/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | source = "."
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/basic/units/father/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | source = "."
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/basic/units/mother/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | source = "."
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/dependencies/units/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | input = values.input
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/absolute-path/units/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | input = values.input
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/cycles/live/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | stack "stack" {
2 | source = "${get_repo_root()}/stack"
3 | path = "stack"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/cycles/stack/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | stack "stack" {
2 | source = "${get_repo_root()}/stack"
3 | path = "stack"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/cycles/unit/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/incorrect-source/live/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 |
2 | unit "api" {
3 | source = "../../units/api" # incorrect source path
4 | path = "api"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/incorrect-source/units/api/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "api ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/incorrect-source/units/api/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/locals-error/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | chicken = "units/chicken"
3 | }
4 |
5 | locals {
6 | chick = "units/chick"
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/relative-path-outside-of-stack/live/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 |
2 | unit "app1" {
3 | source = "../units/app1"
4 | path = "../project1/app1"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/relative-path-outside-of-stack/units/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/stack-empty-path/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | stack "prod" {
2 | source = "stacks/prod"
3 | path = ""
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-stack/live/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 |
2 | stack "stack-v1" {
3 | source = "${get_repo_root()}/stacks"
4 | path = "stack-v1"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-stack/stacks/v1/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 |
2 | unit "unit-v1" {
3 | source = "${get_repo_root()}/units/api"
4 | path = "unit-v1"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-stack/units/api/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "api ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-stack/units/api/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/live/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 |
2 | unit "v1" {
3 | source = "${get_repo_root()}/units/v1"
4 | path = "v1"
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/api/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "api ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/api/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/db/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "db ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/db/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/web/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "web ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/errors/validation-unit/units/v1/web/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/inputs/units/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | source = "."
4 | }
5 |
6 | inputs = {
7 | content = "content"
8 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/multiple-stacks/unit/main.tf:
--------------------------------------------------------------------------------
1 |
2 | output "output" {
3 | value = "unit"
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested-outputs/stacks/v2/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | stack "stack_v2" {
2 | source = "${get_repo_root()}/stacks/v1"
3 | path = "stack_v2"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested-outputs/stacks/v3/terragrunt.stack.hcl:
--------------------------------------------------------------------------------
1 | stack "stack_v3" {
2 | source = "${get_repo_root()}/stacks/v2"
3 | path = "stack_v3"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested-outputs/units/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "data" {}
2 | output "data" {
3 | value = var.data
4 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested-outputs/units/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | data = values.data
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/api/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "api ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/api/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/db/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "db ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/db/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/web/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "web ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/nested/units/web/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/config/config.txt:
--------------------------------------------------------------------------------
1 | # example configuration file
2 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/api/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "api ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/api/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/db/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "db ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/db/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/web/main.tf:
--------------------------------------------------------------------------------
1 | variable "ver" {}
2 |
3 | output "data" {
4 | value = "web ${var.ver}"
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-stack/units/web/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | ver = values.ver
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/no-validation/units/app1/code/main.tf:
--------------------------------------------------------------------------------
1 | resource "local_file" "file" {
2 | content = "test file"
3 | filename = "${path.module}/file.txt"
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/stacks/outputs/units/app1/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/outputs/units/app2/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/self-include/module/main.tf:
--------------------------------------------------------------------------------
1 | variable "data" {}
2 |
3 | output "data" {
4 | value = var.data
5 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/self-include/module/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "."
3 | }
4 |
5 | inputs = {
6 | data = values.data
7 | }
--------------------------------------------------------------------------------
/test/fixtures/stacks/stack-values/units/app/terragrunt.hcl:
--------------------------------------------------------------------------------
1 |
2 | inputs = {
3 | project = values.project
4 | env = values.env
5 | data = values.data
6 | }
--------------------------------------------------------------------------------
/test/fixtures/strcontains/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | i1 = strcontains("hello world", "hello")
3 | i2 = strcontains("hello world", "test")
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/strict-bare-include/main.tf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gruntwork-io/terragrunt/8c7b086b2daf6e2aad4599db19229e2626ca153c/test/fixtures/strict-bare-include/main.tf
--------------------------------------------------------------------------------
/test/fixtures/strict-bare-include/parent.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | greeting = "hello"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/strict-bare-include/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = "parent.hcl"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/terragrunt-info-error/module-a/main.tf:
--------------------------------------------------------------------------------
1 | output "test_var" {
2 | value = "hello"
3 | }
--------------------------------------------------------------------------------
/test/fixtures/terragrunt-info-error/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = ".//"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/terragrunt-info-error/module-b/main.tf:
--------------------------------------------------------------------------------
1 | variable "test_var" {
2 | type = string
3 | }
4 |
5 | output "result" {
6 | value = var.test_var
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/terragrunt/outputs.tf:
--------------------------------------------------------------------------------
1 | output "rendered_template" {
2 | value = data.external.hello.result["output"]
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/tf-path/main.tf:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/tf-path/other-tf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | tfpath="${TG_TF_PATH:-tofu}"
4 |
5 | echo "Other TF script used!" >&2
6 |
7 | $tfpath "$@"
8 |
--------------------------------------------------------------------------------
/test/fixtures/tf-path/tf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | tfpath="${TG_TF_PATH:-tofu}"
4 |
5 | echo "TF script used!" >&2
6 |
7 | $tfpath "$@"
8 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/custom-tflint-config/outputs.tf:
--------------------------------------------------------------------------------
1 | output "bucket_name" {
2 | description = "bucket name"
3 | value = var.bucket_name
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/custom-tflint-config/variables.tf:
--------------------------------------------------------------------------------
1 | variable "bucket_name" {
2 | description = "bucket name"
3 | type = string
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/external-tflint/outputs.tf:
--------------------------------------------------------------------------------
1 | output "bucket_name" {
2 | description = "bucket name"
3 | value = var.bucket_name
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/external-tflint/variables.tf:
--------------------------------------------------------------------------------
1 | variable "bucket_name" {
2 | description = "bucket name"
3 | type = string
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/no-tf-source/outputs.tf:
--------------------------------------------------------------------------------
1 | # Empty outputs
2 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/no-tf-source/variables.tf:
--------------------------------------------------------------------------------
1 | # Empty variables
2 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tflint-args/extra.tfvars:
--------------------------------------------------------------------------------
1 | bucket_name = "my-prefix-123"
2 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tflint-args/outputs.tf:
--------------------------------------------------------------------------------
1 | output "q1" {
2 | description = "output"
3 | value = var.bucket_name
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tflint-args/variables.tf:
--------------------------------------------------------------------------------
1 | variable "bucket_name" {
2 | description = "bucket name"
3 | type = string
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tfvar-passing/extra.tfvars:
--------------------------------------------------------------------------------
1 | bucket_name = "my-prefix-qwe"
2 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tfvar-passing/outputs.tf:
--------------------------------------------------------------------------------
1 | output "q1" {
2 | description = "output"
3 | value = var.bucket_name
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/tflint/tfvar-passing/variables.tf:
--------------------------------------------------------------------------------
1 | variable "bucket_name" {
2 | description = "bucket name"
3 | type = string
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/tftest/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | bucket_prefix = "tg-test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/timecmp-errors/invalid-timestamp/main.tf:
--------------------------------------------------------------------------------
1 | variable "timecmp1" {
2 | type = number
3 | }
4 |
5 | output "timecmp1" {
6 | value = var.timecmp1
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/timecmp-errors/invalid-timestamp/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | timecmp1 = timecmp("2017-11-22 00:00:00Z", "2017-11-22T01:00:00+01:00")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/trace-parent/get_traceparent.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | echo "$1 {\"traceparent\": \"${TRACEPARENT}\"}"
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/including/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "shared" {
2 | path = find_in_parent_folders("shared.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/reading-from-tf/main.tf:
--------------------------------------------------------------------------------
1 | variable "filename" {}
2 | output "shared" {
3 | value = jsondecode(file(var.filename))
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/reading-hcl/main.tf:
--------------------------------------------------------------------------------
1 | variable "shared" {}
2 | output "shared" {
3 | value = var.shared
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/reading-json/main.tf:
--------------------------------------------------------------------------------
1 | variable "shared" {}
2 | output "shared" {
3 | value = var.shared
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/reading-sops/main.tf:
--------------------------------------------------------------------------------
1 | variable "shared" {}
2 | output "shared" {
3 | value = var.shared
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/reading-tfvars/main.tf:
--------------------------------------------------------------------------------
1 | variable "shared" {}
2 | output "shared" {
3 | value = var.shared
4 | }
5 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/shared.hcl:
--------------------------------------------------------------------------------
1 | locals {
2 | shared_hcl = "value"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/shared.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "value"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/units-reading/shared.tfvars:
--------------------------------------------------------------------------------
1 | shared_tfvars = "value"
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-generated-var/main.tf:
--------------------------------------------------------------------------------
1 | output "output" {
2 | value = var.input
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-generated-var/variables.tf:
--------------------------------------------------------------------------------
1 | # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa
2 | variable "input" {}
3 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-included-unused/module/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-included-unused/root.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | inherited = "This input is inherited"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-no-inputs/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-no-inputs/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-unused-inputs/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-unused-varfile/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/fail-unused-varfile/varfiles/main.tfvars:
--------------------------------------------------------------------------------
1 | input = "hello world"
2 | unused_input = "I am unused"
3 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-autovar-file/bar.auto.tfvars.json:
--------------------------------------------------------------------------------
1 | {
2 | "input_autotfvarsjson": "hello world from bar.auto.tfvars.json"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-autovar-file/foo.auto.tfvars:
--------------------------------------------------------------------------------
1 | input_autotfvars = "hello world from foo.auto.tfvars"
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-autovar-file/terraform.tfvars:
--------------------------------------------------------------------------------
1 | input_terraformtfvars = "hello world from terraform.tfvars"
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-autovar-file/terraform.tfvars.json:
--------------------------------------------------------------------------------
1 | {
2 | "input_terraformtfvarsjson": "hello world from terraform.tfvars.json"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-autovar-file/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-cli-args/varfiles/main.tfvars:
--------------------------------------------------------------------------------
1 | input = "hello"
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-included/module/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-included/module/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-included/root.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | input = "hello"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-inputs-only/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-inputs-only/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | inputs = {
2 | input = "hello world"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-mixed/varfiles/main.tfvars:
--------------------------------------------------------------------------------
1 | input_from_varfile = "from var file"
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-null-default/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | # Intentionally empty
2 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-var-file/main.tf:
--------------------------------------------------------------------------------
1 | variable "input" {}
2 |
3 | output "output" {
4 | value = var.input
5 | }
6 |
--------------------------------------------------------------------------------
/test/fixtures/validate-inputs/success-var-file/varfiles/main.tfvars:
--------------------------------------------------------------------------------
1 | input = "hello world"
2 |
--------------------------------------------------------------------------------
/test/fixtures/version-check/a/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = "Hello, World"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/version-check/a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/version-check/b/main.tf:
--------------------------------------------------------------------------------
1 | output "foo" {
2 | value = "Hello, World"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/version-check/b/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include "root" {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/version-check/root.hcl:
--------------------------------------------------------------------------------
1 | terraform_version_constraint = ">= 0.12.20"
2 | terragrunt_version_constraint = ">= 0.23.20"
3 |
--------------------------------------------------------------------------------
/test/fixtures/version-invocation/app/main.tf:
--------------------------------------------------------------------------------
1 | variable "input_value" {}
2 |
3 | output "output_value" {
4 | value = var.input_value
5 | }
--------------------------------------------------------------------------------
/test/fixtures/version-invocation/dependency-with-custom-version/.tool-versions:
--------------------------------------------------------------------------------
1 | tofu 1.9.4
2 |
--------------------------------------------------------------------------------
/test/fixtures/version-invocation/dependency-with-custom-version/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 |
3 | value = "42"
4 | }
--------------------------------------------------------------------------------
/test/fixtures/version-invocation/dependency/main.tf:
--------------------------------------------------------------------------------
1 | output "result" {
2 |
3 | value = "42"
4 | }
--------------------------------------------------------------------------------
/test/helpers/test_helpers_unix.go:
--------------------------------------------------------------------------------
1 | //go:build !windows
2 | // +build !windows
3 |
4 | package helpers
5 |
6 | var RootFolder = "/"
7 |
--------------------------------------------------------------------------------
/tf/cache/middleware/package.go:
--------------------------------------------------------------------------------
1 | // Package middleware provides a set of middleware for the Terragrunt provider cache server.
2 | package middleware
3 |
--------------------------------------------------------------------------------
/util/min.go:
--------------------------------------------------------------------------------
1 | package util
2 |
3 | func Min(x, y int) int {
4 | if x < y {
5 | return x
6 | }
7 |
8 | return y
9 | }
10 |
--------------------------------------------------------------------------------
/util/testdata/fixture-glob-canonical/module-a/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | terraform {
2 | source = "test"
3 | }
4 |
--------------------------------------------------------------------------------
/util/testdata/fixture-glob-canonical/module-b/module-b-child/terragrunt.hcl:
--------------------------------------------------------------------------------
1 | include {
2 | path = find_in_parent_folders("root.hcl")
3 | }
4 |
--------------------------------------------------------------------------------
/util/util.go:
--------------------------------------------------------------------------------
1 | // Package util provides utility functions for Terragrunt.
2 | package util
3 |
--------------------------------------------------------------------------------