Skip to content

Releases: gruntwork-io/terragrunt

v0.69.1

22 Nov 20:48
f3210dd
Compare
Choose a tag to compare

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

Full Changelog: v0.69.0...v0.69.1

v0.69.0

19 Nov 20:34
3624cc9
Compare
Choose a tag to compare

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

19 Nov 18:56
51cd2ff
Compare
Choose a tag to compare

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 and exclude.

Related links

Full Changelog: v0.68.16...v0.68.17

v0.68.16

19 Nov 15:46
533bc11
Compare
Choose a tag to compare

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

tg-flags-exclude

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 as RenderJSONWithMetadata

Related links

v0.68.15

18 Nov 21:13
d8adfda
Compare
Choose a tag to compare

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

1  tmuxinator local 2024-11-19 at 11 09 30 AM

--terragrunt-log-format key-value

1  tmuxinator local 2024-11-19 at 11 10 05 AM

--terragrunt-log-format json

1  tmuxinator local 2024-11-19 at 11 10 55 AM

--terragrunt-log-format pretty

1  tmuxinator local 2024-11-19 at 11 11 22 AM

--terragrunt-log-custom-format "%level(format=tiny,case=upper,color=preset) %interval %prefix(path=short-relative,color=gradient,suffix=' ')%msg(path=relative)"

1  tmuxinator local 2024-11-19 at 11 19 18 AM

"%time(format='H:m:s',color=yellow) %level(format=short,case=upper,color=preset) %prefix(color=gradient,suffix=' ',align=right)%msg(path=relative)"

1  tmuxinator local 2024-11-19 at 11 27 51 AM

--terragrunt-log-custom-format "%(content='time=',color=magenta)%time %(content='level=',color=light-blue)%level %(content='msg=',color=green)%msg"

1  tmuxinator local 2024-11-19 at 11 41 33 AM

What's Changed

Full Changelog: v0.68.14...v0.68.15

v0.68.15-beta2024111501

15 Nov 20:27
806a153
Compare
Choose a tag to compare
Pre-release

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

#3134

v0.68.14

15 Nov 15:37
cb85244
Compare
Choose a tag to compare

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

Full Changelog: v0.68.13...v0.68.14

v0.68.14-beta2024111502

15 Nov 11:33
Compare
Choose a tag to compare
Pre-release

⚠️ 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

#3537

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

13 Nov 17:41
580998c
Compare
Choose a tag to compare

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

#3418

What's Changed

Full Changelog: v0.68.12...v0.68.13

v0.68.13-beta2024111301

13 Nov 15:09
6839411
Compare
Choose a tag to compare
Pre-release

⚠️ 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

#3537

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.