Skip to content

Releases: gruntwork-io/terragrunt

v0.80.1

22 May 08:12
b74a37a
Compare
Choose a tag to compare

What's Changed

  • chore: Build process now leverages Go 1.24 features and improvements by @denis256 in #4324

Full Changelog: v0.80.0...v0.80.1

v0.80.0

21 May 20:29
0693453
Compare
Choose a tag to compare

Terraform 1.12 support: We are now testing Terragrunt against Terraform 1.12 and is confirmed to be working.

NOTE: Although this release is marked as backward incompatible, it is functionally compatible as nothing has been changed in Terragrunt internals. The minor version release is useful to mark the change in Terraform version that is being tested.

What's Changed

  • chore: Added support for Terraform 1.12 by @denis256 in #4317
  • build(deps): bump github.com/aws/aws-sdk-go from 1.55.6 to 1.55.7 by @dependabot in #4300
  • build(deps): bump cloud.google.com/go/storage from 1.51.0 to 1.53.0 by @dependabot in #4269
  • build(deps): bump golang.org/x/sys from 0.32.0 to 0.33.0 by @dependabot in #4268

Full Changelog: v0.79.3...v0.80.0

v0.79.3

21 May 18:20
578f48e
Compare
Choose a tag to compare

💪🏽 Enhancements

Limitation on Catalog URLs lifted

A limitation on only supporting recognized go-getter URL patters has been lifted from the catalog command.

The reason this limitation existed in the past was to ensure that users were able to have Terragrunt load module source code in browsers from the catalog Terminal User Interface (TUI). To support that, only a constrained set of sources were supported, to ensure that a button was available to pop open the link in the browser.

image image

Terragrunt will now dynamically adjust the buttons available after module selection to gracefully degrade the experience, instead of completely rejecting repository sources that can't be predictably converted to browser URLs.

image

This allows more users to adopt the Terragrunt Catalog, while providing the same great user experience for users that are on fully supported platforms, like GitHub, GitLab, BitBucket, etc.

What's Changed

New Contributors

Full Changelog: v0.79.2...v0.79.3

v0.79.2

21 May 13:56
958f0c9
Compare
Choose a tag to compare

🏎️ Performance Improvements

Improved overall performance by memoizing -version output in each unit.

In a micro-benchmark on an M3 Max, using the BenchmarkManyEmptyTerragruntInits benchmark, which tests the performance of a Terragrunt run --all init across 1000 units, the following performance gains were released:

  • 18% speed improvement.
  • 9% memory reduction.

More optimizations of this sort are planned for future releases.

What's Changed

  • feat: Improved performance by memoizing -version output by @denis256 in #4288

Full Changelog: v0.79.1...v0.79.2

v0.79.1

21 May 13:23
a8a3b98
Compare
Choose a tag to compare

💪🏽 Enhancements

Recursive stack clean

Improved stack clean to recursively delete all nested stack directories, ensuring thorough cleanup.

What's Changed

  • feat: Enabled recursive deletion of stack directories in stack clean by @denis256 in #4313
  • feat: Switching to GitHub Actions OIDC role assumption for OIDC test by @yhakbar in #4305
  • fix: Corrected mislabeled legacy-all control in documentation by @yhakbar in #4311
  • fix: Enabled disabled tests by @yhakbar in #4312
  • docs: updated quick start documentation with additional output directory usage by @james03160927 in #4299

Full Changelog: v0.79.0...v0.79.1

v0.79.0

20 May 18:18
594134b
Compare
Choose a tag to compare

💪🏽 Enhancements

The run --all command automatically generates Terragrunt Stacks

If you are using terragrunt.stack.hcl files in your codebase, run --all commands will now automatically expand all terragrunt.stack.hcl files into generated stack configurations, as if you had run stack generate before running the run --all command.

e.g.

terragrunt run --all plan

Is now equivalent to:

terragrunt stack generate
terragrunt run --all plan

If you would like to disable this new behavior, you can use the --no-stack-generate to opt out of automatic stack generation.

📖 Docs Updates

The Terragrunt v1 docs are open for feedback!

These docs will undergo significant adjustments, both stylistically, and functionality on the road to 1.0.

They are a full rewrite of the existing Terragrunt Docs site written in Jekyll to one using Starlight.

Your feedback is requested! If you are reading these release notes relatively soon after release, you should see a link at the top of the site where you can provide your feedback on the new docs.

What's Changed

New Contributors

Full Changelog: v0.78.4...v0.79.0

v0.78.4

13 May 21:55
a76bdc9
Compare
Choose a tag to compare

✨ New Features

OpenTelemetry Trace Propogation

In anticipation of the introduction of OpenTelemetry support in OpenTofu 1.10, Terragrunt will now propagate the TRACEPARENT environment variable to child processes to support OpenTelemetry traces that maintain context across Terragrunt and OpenTofu.

This work is based on @Yantrio 's PoC PR #4254, and is only useful due to his work adding OpenTelemtry in OpenTofu. Thank you!

What's Changed

  • feat: Added generation of opentelemetry parent traces to invoked executables by @denis256 in #4278
  • feat: Added support for Terraform tests in Github Action by @denis256 in #4275
  • docs: Added homepage to Starlight docs by @yhakbar in #4250

Full Changelog: v0.78.3...v0.78.4

v0.78.3

12 May 14:52
b19d23f
Compare
Choose a tag to compare

🐛 Bug Fixes

When an error retry results in a plan succeeding when it initially failed, usage of run --all -- plan -detailed-exitcode will now properly take into account the final exit code, rather than the first one, meaning that the exit code of the whole run will be zero if no other units fail their plans.

Thanks to @wakeful for contributing this fix!

What's Changed

Full Changelog: v0.78.2...v0.78.3

alpha-2025051001

10 May 14:38
Compare
Choose a tag to compare
alpha-2025051001 Pre-release
Pre-release

⚠️ Alpha Release

Terragrunt CLI configuration file

Config path

The path to the file can be specified using CLI arg --cli-config-file (hidden) or env var TG_CLI_CONFIG_FILE.

If the path is not specified explicitly, it tries to find in the following directories:

  1. In the specified TG working directory.
  2. In the repository root directory.
  3. In .config located in the repository root directory.
  4. In config dirs, depending on the OS, for unix OS this may be HOME or XDG_CONFIG_HOME/terragrunt directory.

For unix OS, the default file name is .terragruntrc.json, for Windows is terragruntrc.json.

Config keys and values

Configuration values ​​have the lowest priority compared to CLI args and Env vars, and are thus overwritten when CLI args or env vars are explicitly specified.
The name of the key-values ​​corresponds to the name of their flags, but with some exceptions for some of them. Global flags and flags belong to the run command have the same keys as their CLI args, but for others you need to prepend the name of their commands. For example:

  • The key for the terragrunt --log-level flag is log-level
  • The key for the terragrunt run --tf-forward-stdout flag is tf-forward-stdout
  • The key for the terragrunt list --format flag is list-format
  • The key for the terragrunt hcl format --exclude-dir flag is hcl-format-exclude-dir

The key names are case insensitive. You can also use _ in keys instead of -. For example: hcl-format-exclude-dir is equivalent to HCL-Format-exclude_diR

If a non-existent key is specified, a warning is be displayed. Log example:

WARN  CLI configuration file contains unused keys: nooon_interactive

Configuration value validation is the same as CLI args validation. Log example:

ERROR  Could not apply CLI config: invalid value "infoooo" for key "log-level": invalid level "infoooo", supported levels: stderr, stdout, error, warn, info, debug, trace

Debugging

Logging at level debug outputs information indicating where the flag value was taken from. This way you can understand what value is used for the flag if the same flag was set in different places: cli-config, env-var or cli-args. Log example:

DEBUG  Using cli-config "tf-path=tofu"
DEBUG  Using cli-config "strict-control=[spin-up tear-down]"
DEBUG  Using evn-var "TG_LOG_LEVEL=trace"
DEBUG  Using evn-var "TG_NON_INTERACTIVE=true"
DEBUG  Using cli-argument "working-dir=/path/to/working/dir"

v0.78.2

09 May 15:38
57b4238
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.78.1...v0.78.2