You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Terragrunt now supports using credentials in .terraformrc files
Terragrunt now supports credentials stored in .terraformrc files when fetching from private registries, in addition to the fallback mechanism of using TG_TF_REGISTRY_TOKEN.
Special thanks to @dlundgren for contributing this feature!
The reports experiment now supports the --summary-unit-duration flag
As part of delivering #3628 , the reports experiment has been updated to support optionally displaying unit-level duration information in the Run Summary.
You can now optionally display the duration for each unit run as part of the Run Summary by adding the --summary-unit-duration flag to your run commands:
e.g.
$ terragrunt run --all plan --summary-unit-duration
##### Omitted for brevity...
❯❯ Run Summary
Duration: 10m
long-running-unit: 10m
medium-running-unit: 12s
short-running-unit: 5ms
Units: 3
Succeeded: 3
The reports experiment now supports generating reports in JSON format
As part of delivering #3628 , the reports experiment has been updated to support JSON report generation in addition to the default of CSV report generation.
To generate a report using JSON formatting, either use the --report-format flag to explicitly set the format to one of csv or json or provide a --report-file with a .csv or .json file extension to implicitly select the report format.
The JSON version of report summaries look like this:
For more information, read the documentation on the Run Report.
The reports experiment now supports generating a JSON schema for reports
As part of delivering #3628 , the reports experiment has been updated to support generating a JSON schema following the JSON Schema specification in addition to generating reports.
The reports experiment now supports generating reports
As part of delivering #3628 , the reports experiment has been updated to support CSV report generation.
When the reports experiment is enabled, and the --report-file argument is passed to a run --all / run --graph / stack run command, Terragrunt will generate a CSV report of the run in addition to the summary that is emitted by default.
Using labeled includes result in better performance, as backwards compatibility requires that Terragrunt does additional work during configuration processing. You are advised to update your bare includes to use labels as early as possible.
Note that although this deprecation won't be an immediate breaking change. It will be a breaking change in the future. To opt-in to this breaking change today, you can use the bare-include strict control to mandate usage of the modern, labelled include. Doing so will ensure that you and your teammates are leveraging the most performant version of the configuration block.
Backwards compatibility is guaranteed to remain present for this functionality until at least Terragrunt 2.0.
Logging Moved from Terragrunt Options
If you depend on Terragrunt as a Golang library, you'll want to take note that this release introduces a breaking change to public functions in multiple packages to adjust how the logger is passed. The Terragrunt logger is no longer a member of the TerragruntOptions struct in the options package, and is instead passed explicitly as an argument to functions that need the logger.
For example, the signature for the RunCommand function in the shell package changed from this:
Using this function, you can alter the behavior of units when particular OpenTofu/Terraform module versions are used, including changing inputs or altering error handling.
🐛 Bugs Introduced
Terragrunt Catalog Scaffolding Panics
A refactor of internal logging caused a panic during scaffolding while using the Terragrunt Catalog Terminal User Interface (TUI) (#4422), this has since been remediated in v0.81.6.
If you are using the Terragrunt Catalog TUI, you are advised to upgrade to v0.81.6.
The exec command has gained support for use of the --tf-path flag. This can be important when Terragrunt incidentally uses OpenTofu/Terraform to do things like fetch outputs from dependencies.
Significant performance improvements for run --all
The performance of run --all has been improved in two significant ways:
Performance for named includes has improved.
Backwards compatibility for bare includes required that Terragrunt do some inefficient work internally to handle both named includes and bare includes by doing an in-memory rewrite of Terragrunt configurations. An optimization has been introduced to avoid this behavior when users use named includes. This optimization does not extend to users that are using bare includes.
Users are advised to avoid using bare includes whenever possible for maximum performance. A strict control has been introduced to enforce usage of named includes.
In a future minor release, a warning will be emitted, instructing users to stop using bare includes. Maintainers will avoid breaking support for bare includes until at least 2.0.
For more information on how to benefit from this optimization, see the migration guide.
The check for OpenTofu/Terraform code has been optimized.
To provide helpful error messages when users don't have OpenTofu/Terraform code for Terragrunt to run, Terragrunt checks for the presence of OpenTofu/Terraform configuration files (e.g. *.tf, *.tofu). This check has been optimized to improve performance.
In a micro-benchmark on an M3 Max, using the BenchmarkManyEmptyTerragruntInits benchmark, which tests the performance of a Terragrunt run --all init across 1000 inits, the following performance gains were released:
42% speed improvement.
43% memory reduction.
More optimizations of this sort are planned for future releases.
Size reduction of compiled binaries
The size of compiled binaries will be reduced due to the stripping of debug symbols from the final executable. As an example, this drops the size of the compiled Linux AMD64 binary from 99MB to 70MB.
This can be a small improvement to download times for environments where Terragrunt is downloaded frequently.
🐛 Bug Fixes
Fixed -detailed-exitcode behavior in run --all
An unintended side-effect of addressing a different bug for Terragrunt’s handling of the -detailed-exitcode flag in OpenTofu/Terraform in retries was that any run in a run --all could override the exit code of the entire run --all.
This has been fixed. The exit code of the run --all -- plan -detailed-exitcode command will now properly aggregate exit codes from all runs in a run --all, only reseting the exit code for an individual unit if it properly recovers after a retry.
The find command now supports the --include flag to allow for fine grained control over the discovery of units that include other partial configurations.
--tf-path now correctly overrides terraform_binary
A bug in the precedence logic for Terragrunt configuration parsing resulted in the CLI flag --tf-path from being ignored when the terraform_binary attribute was set.
Terragrunt will now correctly respect the terraform_binary attribute when set, and allow --tf-path to override the value when it is set.
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.
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.
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.
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.
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.
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.
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.
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!
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.
If you were previously using the flag --experiment stacks to opt in to experimental functionality, you no longer have to do so. Note that if you are, you will simply get a warning that it is no longer necessary.
🛠️ Breaking Changes
Legacy commands (as replaced by the CLI Redesign are now deprecated, and will be phased out at a future date, which will be scheduled in #3535. Make sure to subscribe to the issue if you would like to be informed when these deprecated features are no longer supported.
For instructions on migrating to the new commands provided after the CLI Redesign, read the CLI Redesign Migration Guide.
The default command. e.g. terragrunt workspace list (use terragrunt run -- workspace list instead)
Default bootstrap (automatically provisioning backend resources without additional flags). This is now opt in behavior, and requires usage of the --backend-bootstrap flag or explicitly running the new backend bootstrap command.
aws-provider-patch (we are simply deprecating this command, and removing it when the other commands are removed. It served its purpose as a short term stopgap tool).
Note that this will not result in an immediate breaking change for users, as we’ll have an initial deprecation window to give users time to adjust to these changes. If you’d like to ensure that you are prepared for the future removal of legacy commands, you can take advantage of the cli-redesign strict control to opt in to the future breaking change early.
💪🏽 Enhancements
The logging for stack generation has been improved to make it easier to determine at a glance the stack file that’s generating a particular unit.
If you were previously using the flag --experiment cli-redesign to opt in to experimental functionality, you no longer have to do so. Note that if you are, you will simply get a warning that it is no longer necessary.
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.58.13 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.58.14 (terragrunt/dockerfile) (master)
Jun 7, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.58.14 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.58.15 (terragrunt/dockerfile) (master)
Jun 14, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.58.15 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.1 (terragrunt/dockerfile) (master)
Jun 15, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.1 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.2 (terragrunt/dockerfile) (master)
Jun 16, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.2 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.3 (terragrunt/dockerfile) (master)
Jun 17, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.3 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.4 (terragrunt/dockerfile) (master)
Jun 21, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.59.4 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.71.1 (terragrunt/dockerfile) (master)
Dec 29, 2024
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.78.3 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.78.4 (terragrunt/dockerfile) (master)
May 17, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.78.4 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.79.0 (terragrunt/dockerfile) (master)
May 24, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.79.0 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.0 (terragrunt/dockerfile) (master)
May 25, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.0 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.2 (terragrunt/dockerfile) (master)
May 26, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.2 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.3 (terragrunt/dockerfile) (master)
May 31, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.3 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.4 (terragrunt/dockerfile) (master)
Jun 1, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.80.4 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.0 (terragrunt/dockerfile) (master)
Jun 6, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.0 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.1 (terragrunt/dockerfile) (master)
Jun 13, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.1 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.3 (terragrunt/dockerfile) (master)
Jun 14, 2025
ivankatliarchuk
changed the title
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.3 (terragrunt/dockerfile) (master)
chore(deps): update dependency gruntwork-io/terragrunt to v0.81.5 (terragrunt/dockerfile) (master)
Jun 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.58.12->0.81.5v0.81.60.58.12->0.81.50.81.6Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
gruntwork-io/terragrunt (gruntwork-io/terragrunt)
v0.81.5Compare Source
✨ New Features
Terragrunt now supports using credentials in
.terraformrcfilesTerragrunt now supports credentials stored in
.terraformrcfiles when fetching from private registries, in addition to the fallback mechanism of usingTG_TF_REGISTRY_TOKEN.Special thanks to @dlundgren for contributing this feature!
What's Changed
New Contributors
Full Changelog: gruntwork-io/terragrunt@v0.81.4...v0.81.5
v0.81.4Compare Source
🧪 Experiments Updated
The
reportsexperiment now supports the--summary-unit-durationflagAs part of delivering #3628 , the reports experiment has been updated to support optionally displaying unit-level duration information in the Run Summary.
You can now optionally display the duration for each unit run as part of the Run Summary by adding the
--summary-unit-durationflag to yourruncommands:e.g.
$ terragrunt run --all plan --summary-unit-duration ##### Omitted for brevity... ❯❯ Run Summary Duration: 10m long-running-unit: 10m medium-running-unit: 12s short-running-unit: 5ms Units: 3 Succeeded: 3By default, this information will be omitted.
For more information, see Showing unit durations in the docs.
What's Changed
--summary-unit-durationby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4410Full Changelog: gruntwork-io/terragrunt@v0.81.3...v0.81.4
v0.81.3Compare Source
🧪 Experiments Updated
The
reportsexperiment now supports generating reports in JSON formatAs part of delivering #3628 , the reports experiment has been updated to support JSON report generation in addition to the default of CSV report generation.
To generate a report using JSON formatting, either use the
--report-formatflag to explicitly set the format to one ofcsvorjsonor provide a--report-filewith a.csvor.jsonfile extension to implicitly select the report format.The JSON version of report summaries look like this:
[ { "name": "second-exclude", "started": "2025-06-09T12:50:02.59688-04:00", "ended": "2025-06-09T12:50:02.596881-04:00", "result": "excluded", "reason": "exclude block" }, { "name": "first-exclude", "started": "2025-06-09T12:50:02.596882-04:00", "ended": "2025-06-09T12:50:02.596882-04:00", "result": "excluded", "reason": "exclude block" }, { "name": "error-ignore", "started": "2025-06-09T12:50:02.597139-04:00", "ended": "2025-06-09T12:50:02.742775-04:00", "result": "succeeded" } ]For more information, read the documentation on the Run Report.
The
reportsexperiment now supports generating a JSON schema for reportsAs part of delivering #3628 , the reports experiment has been updated to support generating a JSON schema following the JSON Schema specification in addition to generating reports.
To generate a schema, use the
--report-schema-fileflag.The schema looks like this:
{ "items": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://terragrunt.gruntwork.io/schemas/run/report/v1/schema.json", "properties": { "Started": { "type": "string", "format": "date-time" }, "Ended": { "type": "string", "format": "date-time" }, "Reason": { "type": "string", "enum": [ "retry succeeded", "error ignored", "run error", "--queue-exclude-dir", "exclude block", "ancestor error" ] }, "Cause": { "type": "string" }, "Name": { "type": "string" }, "Result": { "type": "string", "enum": [ "succeeded", "failed", "early exit", "excluded" ] } }, "additionalProperties": false, "type": "object", "required": [ "Started", "Ended", "Name", "Result" ], "title": "Terragrunt Run Report Schema", "description": "Schema for Terragrunt run report" }, "type": "array", "title": "Terragrunt Run Report Schema", "description": "Array of Terragrunt runs" }For more information, read the documentation on the Run Report.
What's Changed
reportexperiment by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4403--report-schema-fileby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4408Full Changelog: gruntwork-io/terragrunt@v0.81.2...v0.81.3
v0.81.2Compare Source
🧪 Experiments Updated
The
reportsexperiment now supports generating reportsAs part of delivering #3628 , the reports experiment has been updated to support CSV report generation.
When the reports experiment is enabled, and the
--report-fileargument is passed to arun --all/run --graph/stack runcommand, Terragrunt will generate a CSV report of the run in addition to the summary that is emitted by default.The report summary looks like this:
That report offers details on the outcome of each run in the Run Queue.
For more information, read the documentation on the Run Report.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.81.1...v0.81.2
v0.81.1Compare Source
🧪 Experiments Added
The
reportsexperiment has been addedAs part of delivering #3628 , the reports experiment has been added.
When enabled, Terragrunt will emit summaries of runs at the end of
run --allcommands.e.g.
$ terragrunt run --all plan ##### Omitted for brevity... ❯❯ Run Summary Duration: 62ms Units: 3 Succeeded: 3The summary can also be disabled using the
--summary-disableflag, even when the experiment is active.You can learn more about this feature here.
More will be added in the near future to allow for report generation and customization. Stay tuned!
What's Changed
reportpackage by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4386configstackabstraction by @denis256 in https://github.com/gruntwork-io/terragrunt/pull/4385Full Changelog: gruntwork-io/terragrunt@v0.81.0...v0.81.1
v0.81.0Compare Source
🛠️ Breaking Changes
Bare Includes Deprecated
Use of bare includes (include configuration blocks without a label) are now deprecated.
For example:
Will now result in a deprecation warning, while the following usage of an include with a label added won't:
Using labeled includes result in better performance, as backwards compatibility requires that Terragrunt does additional work during configuration processing. You are advised to update your bare includes to use labels as early as possible.
Note that although this deprecation won't be an immediate breaking change. It will be a breaking change in the future. To opt-in to this breaking change today, you can use the bare-include strict control to mandate usage of the modern, labelled include. Doing so will ensure that you and your teammates are leveraging the most performant version of the configuration block.
Backwards compatibility is guaranteed to remain present for this functionality until at least Terragrunt 2.0.
Logging Moved from Terragrunt Options
If you depend on Terragrunt as a Golang library, you'll want to take note that this release introduces a breaking change to public functions in multiple packages to adjust how the logger is passed. The Terragrunt logger is no longer a member of the
TerragruntOptionsstruct in theoptionspackage, and is instead passed explicitly as an argument to functions that need the logger.For example, the signature for the
RunCommandfunction in theshellpackage changed from this:To this:
You maybe need to manually construct a logger to pass into public functions you are calling in Terragrunt packages as a consequence.
✨ New Features
Added
constraint_checkHCL FunctionA new HCL function, constraint_check, has been added to Terragrunt.
This HCL function allows you to drive logic in your configurations based on constraints checked against arbitrary semantic versions.
For example:
Using this function, you can alter the behavior of units when particular OpenTofu/Terraform module versions are used, including changing inputs or altering error handling.
🐛 Bugs Introduced
Terragrunt Catalog Scaffolding Panics
A refactor of internal logging caused a panic during scaffolding while using the Terragrunt Catalog Terminal User Interface (TUI) (#4422), this has since been remediated in v0.81.6.
If you are using the Terragrunt Catalog TUI, you are advised to upgrade to v0.81.6.
What's Changed
relative_path_to_includeby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4371constraint_checkby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4384Full Changelog: gruntwork-io/terragrunt@v0.80.4...v0.81.0
v0.80.4Compare Source
✨ New Features
The
execcommand now supports--tf-pathThe
execcommand has gained support for use of the--tf-pathflag. This can be important when Terragrunt incidentally uses OpenTofu/Terraform to do things like fetch outputs from dependencies.Thanks to @erpel for contributing this feature!
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.80.3...v0.80.4
v0.80.3Compare Source
🏎️ Performance Improvements
Significant performance improvements for
run --allThe performance of
run --allhas been improved in two significant ways:Performance for named includes has improved.
Backwards compatibility for bare includes required that Terragrunt do some inefficient work internally to handle both named includes and bare includes by doing an in-memory rewrite of Terragrunt configurations. An optimization has been introduced to avoid this behavior when users use named includes. This optimization does not extend to users that are using bare includes.
Users are advised to avoid using bare includes whenever possible for maximum performance. A strict control has been introduced to enforce usage of named includes.
In a future minor release, a warning will be emitted, instructing users to stop using bare includes. Maintainers will avoid breaking support for bare includes until at least 2.0.
For more information on how to benefit from this optimization, see the migration guide.
The check for OpenTofu/Terraform code has been optimized.
To provide helpful error messages when users don't have OpenTofu/Terraform code for Terragrunt to run, Terragrunt checks for the presence of OpenTofu/Terraform configuration files (e.g.
*.tf,*.tofu). This check has been optimized to improve performance.In a micro-benchmark on an M3 Max, using the
BenchmarkManyEmptyTerragruntInitsbenchmark, which tests the performance of a Terragruntrun --all initacross 1000 inits, the following performance gains were released:More optimizations of this sort are planned for future releases.
Size reduction of compiled binaries
The size of compiled binaries will be reduced due to the stripping of debug symbols from the final executable. As an example, this drops the size of the compiled Linux AMD64 binary from 99MB to 70MB.
This can be a small improvement to download times for environments where Terragrunt is downloaded frequently.
🐛 Bug Fixes
Fixed
-detailed-exitcodebehavior inrun --allAn unintended side-effect of addressing a different bug for Terragrunt’s handling of the
-detailed-exitcodeflag in OpenTofu/Terraform in retries was that any run in arun --allcould override the exit code of the entirerun --all.This has been fixed. The exit code of the
run --all -- plan -detailed-exitcodecommand will now properly aggregate exit codes from all runs in arun --all, only reseting the exit code for an individual unit if it properly recovers after a retry.What's Changed
-detailed-exitcodeby @denis256 in https://github.com/gruntwork-io/terragrunt/pull/4357Full Changelog: gruntwork-io/terragrunt@v0.80.2...v0.80.3
v0.80.2Compare Source
✨ New Features
findadds support for--includeThe
findcommand now supports the--includeflag to allow for fine grained control over the discovery of units that include other partial configurations.e.g.
Combining the flag with tools like
jqallows for simple discovery of configurations that include other partial configurations.🐛 Bug Fixes
--tf-pathnow correctly overridesterraform_binaryA bug in the precedence logic for Terragrunt configuration parsing resulted in the CLI flag
--tf-pathfrom being ignored when theterraform_binaryattribute was set.Terragrunt will now correctly respect the
terraform_binaryattribute when set, and allow--tf-pathto override the value when it is set.What's Changed
--tf-pathby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4332--includeonfindby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4335Full Changelog: gruntwork-io/terragrunt@v0.80.1...v0.80.2
v0.80.1Compare Source
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.80.0...v0.80.1
v0.80.0Compare Source
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
Full Changelog: gruntwork-io/terragrunt@v0.79.3...v0.80.0
v0.79.3Compare Source
💪🏽 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.
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.
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: gruntwork-io/terragrunt@v0.79.2...v0.79.3
v0.79.2Compare Source
🏎️ Performance Improvements
Improved overall performance by memoizing
-versionoutput in each unit.In a micro-benchmark on an M3 Max, using the
BenchmarkManyEmptyTerragruntInitsbenchmark, which tests the performance of a Terragruntrun --all initacross 1000 units, the following performance gains were released:More optimizations of this sort are planned for future releases.
What's Changed
-versionoutput by @denis256 in https://github.com/gruntwork-io/terragrunt/pull/4288Full Changelog: gruntwork-io/terragrunt@v0.79.1...v0.79.2
v0.79.1Compare Source
💪🏽 Enhancements
Recursive stack clean
Improved
stack cleanto recursively delete all nested stack directories, ensuring thorough cleanup.What's Changed
stack cleanby @denis256 in https://github.com/gruntwork-io/terragrunt/pull/4313legacy-allcontrol in documentation by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4311Full Changelog: gruntwork-io/terragrunt@v0.79.0...v0.79.1
v0.79.0Compare Source
💪🏽 Enhancements
The
run --allcommand automatically generates Terragrunt StacksIf you are using
terragrunt.stack.hclfiles in your codebase,run --allcommands will now automatically expand allterragrunt.stack.hclfiles into generated stack configurations, as if you had runstack generatebefore running therun --allcommand.e.g.
Is now equivalent to:
If you would like to disable this new behavior, you can use the
--no-stack-generateto 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
remote-relative-with-slashfixture on ARM tests by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4297New Contributors
Full Changelog: gruntwork-io/terragrunt@v0.78.4...v0.79.0
v0.78.4Compare Source
✨ New Features
OpenTelemetry Trace Propogation
In anticipation of the introduction of OpenTelemetry support in OpenTofu 1.10, Terragrunt will now propagate the
TRACEPARENTenvironment 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
Full Changelog: gruntwork-io/terragrunt@v0.78.3...v0.78.4
v0.78.3Compare Source
🐛 Bug Fixes
When an error retry results in a plan succeeding when it initially failed, usage of
run --all -- plan -detailed-exitcodewill 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: gruntwork-io/terragrunt@v0.78.2...v0.78.3
v0.78.2Compare Source
What's Changed
font-sizeby @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4256Full Changelog: gruntwork-io/terragrunt@v0.78.1...v0.78.2
v0.78.1Compare Source
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.78.0...v0.78.1
v0.78.0Compare Source
🧪 Experiments Completed
The stacks experiment is now complete.
If you were previously using the flag
--experiment stacksto opt in to experimental functionality, you no longer have to do so. Note that if you are, you will simply get a warning that it is no longer necessary.🛠️ Breaking Changes
Legacy commands (as replaced by the CLI Redesign are now deprecated, and will be phased out at a future date, which will be scheduled in #3535. Make sure to subscribe to the issue if you would like to be informed when these deprecated features are no longer supported.
For instructions on migrating to the new commands provided after the CLI Redesign, read the CLI Redesign Migration Guide.
The following are now deprecated:
hclfmt(usehcl fmtinstead)hclvalidate(usehcl validateinstead)validate-inputs(usehcl validate --inputsandhcl validate --inputs --strictinstead)terragrunt-info(useinfo printinstead)output-module-groups(usefind --dag --jsoninstead)render-json(userender --json -winstead)graph-dependencies(usedag graphinstead)run-all(userun --allinstead)graph(userun --graphinstead)terragrunt workspace list(useterragrunt run -- workspace listinstead)--backend-bootstrapflag or explicitly running the newbackend bootstrapcommand.aws-provider-patch(we are simply deprecating this command, and removing it when the other commands are removed. It served its purpose as a short term stopgap tool).Note that this will not result in an immediate breaking change for users, as we’ll have an initial deprecation window to give users time to adjust to these changes. If you’d like to ensure that you are prepared for the future removal of legacy commands, you can take advantage of the cli-redesign strict control to opt in to the future breaking change early.
💪🏽 Enhancements
The logging for stack generation has been improved to make it easier to determine at a glance the stack file that’s generating a particular unit.
What's Changed
render-jsoncommand by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4227aws-provider-patchcommand by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4228output-module-groupscommand by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4229--allflag by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4224-allusage by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4239--terragrunt-flags by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4203run-allusage by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4223cli-redesignstrict control by @yhakbar in https://github.com/gruntwork-io/terragrunt/pull/4238hclfmthclvalidatevalidate-inputsas deprecated commands (minor fixes) by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4199hclfmthclvalidatevalidate-inputsas deprecated commands by @levkohimins in https://github.com/gruntwork-io/terragrunt/pull/4196Full Changelog: gruntwork-io/terragrunt@v0.77.22...v0.78.0
v0.77.22Compare Source
🧪 Experiments Completed
The
cli-redesignexperiment is now completeThe cli-redesign experiment is now complete.
If you were previously using the flag
--experiment cli-redesignto opt in to experimental functionality, you no longer have to do so. Note that if you are, you will simply get a warning that it is no longer necessary.What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.77.21...v0.77.22
v0.77.21Compare Source
✨ New Features
Introduction of
hclcommandsAs part of the CLI Redesign experiment, the
hclcommands have been introduced.The
hclcommands allow users to directly interact with HCL content independent of the underlying functionality they support.The functionality of the
hclcommands replace existing functionality that is soon to be deprecated:hclfmt-->hcl fmthclvalidate-->hcl validatevalidate-inputs-->hcl validate --inputsvalidate-inputs --strict-validate-->hcl validate --inputs --strictWhat's Changed
hclcommands docs by @levkohimins in [httpConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.