Releases: gruntwork-io/terragrunt
v0.69.1
New Feature
Using the OpenTofu/Terraform -detailed-exitcode flag with the run-all command results in an aggregate exit code being returned, rather than the exit code of any particular unit.
The algorithm for determining the aggregate exit code is as follows:
If any unit throws a 1, Terragrunt will throw a 1.
If any unit throws a 2, but nothing throws a 1, Terragrunt will throw a 2.
If nothing throws a non-zero, Terragrunt will throw a 0.
What's Changed
- feat:
-detailed-exitcode
withrun-all
commands by @levkohimins in #3585
Full Changelog: v0.69.0...v0.69.1
v0.69.0
TFLint update
The internal version of TFLint has been updated from v0.47.0
to v0.50.3
.
Given that this might result in breakage for users with tflint hooks, this is being released as a new minor release.
What's Changed
Full Changelog: v0.68.17...v0.69.0
v0.68.17
Updated CLI args, config attributes and blocks
terraform
What's Changed
- feat: Introduced support for detecting and handling symlinked modules, ensuring seamless module discovery.
- docs: Quick start documentation update.
- docs: Improved documentation for
feature
andexclude
.
Related links
Full Changelog: v0.68.16...v0.68.17
v0.68.16
Updated CLI args, config attributes and blocks
exclude
feature
New Feature: exclude
configuration block
The exclude
configuration block allows for dynamic exclusion of units from the run queue, similar to the now deprecated skip
attribute. The exclude
configuration block allows for more control over exactly how units are excluded from the run queue, and integrates very well with the feature
block introduced in v0.68.9.
For more information, read the docs.
Example
# Exclude configurations allowing for dynamically determining when and how to exclude execution of nodes in the Terragrunt graph
exclude {
if = feature.feature_name.value # Boolean expression that determines if the node should be excluded.
actions = ["all"] # Actions to exclude when active. Other options might be ["plan", "apply", "all_except_output"], etc
exclude_dependencies = feature.feature_name.value # Exclude dependencies of the node as well
}
Demo
What's Changed
- feat: Introduced a new
exclude
block, enabling users to define more advanced and flexible criteria for excluding specific units, enhancing customization and control over unit selection processes. - fix: Fixed handling of empty
feature
blocks - fix: Fix spelling of
RenderJSONithMetadata
asRenderJSONWithMetadata
Related links
v0.68.15
Updated CLI args, config attributes and blocks
--terragrunt-log-format [ bare | pretty | json | key-value ]
--terragrunt-log-custom-format "%time %level %prefix %msg"
Feature Description
Using the --terragrunt-log-custom-format <format>
flag you can customize the Terragrunt logs. Make sure to read Custom Log Format for syntax details.
Examples
--terragrunt-log-format bare
--terragrunt-log-format key-value
--terragrunt-log-format json
--terragrunt-log-format pretty
--terragrunt-log-custom-format "%level(format=tiny,case=upper,color=preset) %interval %prefix(path=short-relative,color=gradient,suffix=' ')%msg(path=relative)"
"%time(format='H:m:s',color=yellow) %level(format=short,case=upper,color=preset) %prefix(color=gradient,suffix=' ',align=right)%msg(path=relative)"
--terragrunt-log-custom-format "%(content='time=',color=magenta)%time %(content='level=',color=light-blue)%level %(content='msg=',color=green)%msg"
What's Changed
- feat: Custom Log Formatting by @levkohimins in #3537
Full Changelog: v0.68.14...v0.68.15
v0.68.15-beta2024111501
Updated CLI args, config attributes and blocks
exclude
What's Changed
- Introduced a new
exclude
block, enabling users to define more advanced and flexible criteria for excluding specific units, enhancing customization and control over unit selection processes.
Example:
# Exclude configurations allowing for dynamically determining when and how to exclude execution of nodes in the Terragrunt graph
exclude {
if = feature.feature_name.value # Boolean expression that determines if the node should be excluded.
actions = ["all"] # Actions to exclude when active. Other options might be ["plan", "apply", "all_except_output"], etc
exclude_dependencies = feature.feature_name.value # Exclude dependencies of the node as well
}
Relevant RFC
v0.68.14
Updated CLI args, config attributes and blocks
terragrunt-queue-include-units-reading
terragrunt-auth-provider-cmd
terragrunt-queue-include-units-reading
Updates
The terragrunt-queue-include-units-reading
flag is now results in a super set of functionality provided by the terragrunt-modules-that-include
flag.
Using either will include all units that include particular Terragrunt configurations, while the terragrunt-queue-include-units-reading
will also add in files that are read by HCL functions.
For more information (including limitations of the flag), read the docs.
terragrunt-auth-provider-cmd
Updates
The terragrunt-auth-provider-cmd
flag is now capable of supporting AWS role assumptions in addition to supporting the setting of explicit AWS credentials, and generic environment variables.
This allows users to configure Terragrunt to dynamically assume different AWS roles at runtime, depending on the context of the unit.
This support includes support for role assumption using the AssumeRoleWithWebIdentity
API, which allows for dynamic assumption of OIDC roles in CI platforms like GitHub Actions, GitLab CI/CD and CircleCI.
For more information, read the docs.
What's Changed
- feat: Integrate includes into units reading by @yhakbar in #3563
- docs: Adding Terminology docs by @yhakbar in #3559
- chore: Cleaning up OIDC Work by @yhakbar in #3554
Full Changelog: v0.68.13...v0.68.14
v0.68.14-beta2024111502
⚠️ Beta Warning
Note that this release is not fully tested and not ready for general usage.
Updated CLI args, config attributes and blocks
--terragrunt-log-format [ bare | pretty | json | key-value ]
--terragrunt-log-custom-format "%time %level %prefix %msg"
WIP PR
Feature Description
Using the --terragrunt-log-custom-format <format>
flag you can customize the way Terragrunt logs with total control over the logging format. Make sure to read Custom Log Format for syntax details.
v0.68.13
Updated CLI args, config attributes and blocks
terragrunt-queue-include-units-reading
mark_as_read
terragrunt-queue-include-units-reading
Feature Description
Drive inclusion into the Terragrunt run queue using the name of a file read via an HCL function. This can used to do things like drive inclusion into the run queue when one terragrunt.hcl
file reads another via functions like read_terragrunt_config
.
⚠️ Limitation in new flag
As described at the bottom of terragrunt-queue-include-units-reading docs, due to the order in which HCL configurations are parsed in Terragrunt, functions reading files within HCL must do so within the locals
block to result in changes to inclusion into the run queue.
This is a limitation that the maintainers will actively look to address, but will require substantial rework in HCL parsing to remove correctly.
Supported HCL Functions
-
read_terragrunt_config
-
sops_decrypt_file
-
read_tfvars_file
-
mark_as_read
[new]
Relevant RFC
What's Changed
- feat: Adding
--terragrunt-queue-include-units-reading
by @yhakbar in #3550 - fix: Re-introducing
--terragrunt-hclfmt-file
docs by @yhakbar in #3552 - docs: Adding documentation for release process by @yhakbar in #3487
- docs: Adding Discord Markdown badge by @yhakbar in #3539
- chore: Refactoring out helpers by @yhakbar in #3465
Full Changelog: v0.68.12...v0.68.13
v0.68.13-beta2024111301
⚠️ Beta Warning
Note that this release is not fully tested and not ready for general usage.
Updated CLI args, config attributes and blocks
--terragrunt-log-format [bare | pretty | json | key-value]
--terragrunt-log-custom-format "%time %level %prefix %msg"
WIP PR
Feature Description
Using the --terragrunt-log-custom-format <format>
flag you can customize the way Terragrunt logs with total control over the logging format. Make sure to read Custom Log Format for syntax details.