Releases: gruntwork-io/terragrunt
v0.69.4-alpha2024120101
What's Changed
- added support for
errors
block
errors {
# Retry block for transient errors
retry "retry_network" {
retryable_errors = [".*Error: network timeout.*"]
max_attempts = 3
sleep_interval_sec = 5
}
# Ignore block for non-critical errors
ignore "ignore_warnings" {
ignorable_errors = [
".*Warning: non-critical issue.*"
]
message = "Ignoring non-critical warnings"
}
}
RFC: #3134
Full Changelog: v0.69.3...v0.69.4-alpha2024120101
v0.69.3
What's Changed
- Fixing an issue when
error_hook
processing only takesstderr
into account and ignoresstdout
TF output. - Displaying stack trace only at log level
trace
, e.g.--terragrunt-log-level trace
.
Full Changelog: v0.69.2...v0.69.3
v0.69.2
Updated CLI args, config attributes and blocks
--terragrunt-tf-logs-to-json
DEPRECATED: Use terragrunt-log-format
Breaking Changes
- OpenTofu/Terraform
stdout
andstderr
is wrapped in JSON by default with--terragurnt-log-format json
flag. In other words, the previous behavior with the--terragrunt-json-log --terragrunt-tf-logs-to-json
flags is now equivalent to--terragrunt-log-format json
and the previous behavior with the--terragrunt-json-log
is now equivalent to--terragrunt-log-format json --terragrunt-forward-tf-stdout
. - Renaming log keys in
--terragurnt-log-format json
and--terragurnt-log-format key-value
formats:tfpath
->tf-path
workingDir
->working-dir
executedCommandArgs
->tf-command-args
What's Changed
- fix: Wrong environment name in docs by @kamontat in #3600
- fix: Wrap TF stdout and stderr in JSON by @levkohimins in #3602
New Contributors
Full Changelog: v0.69.1...v0.69.2
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