Skip to content

Releases: gruntwork-io/terragrunt

v0.70.0

18 Dec 14:48
d2a0285
Compare
Choose a tag to compare

✨ New Features

  • Terragrunt now supports a native Experiment Mode to try out the latest features in Terragrunt before they're fully stable. Over time, we'll be moving some opt-in functionality to this system, and we'll be introducing new features behind it to give users granularity in their use of experimental functionality in Terragrunt.

    As part of this new system, we'll also be documenting our experiments in much more detail so that you know exactly what they do, and what is required for them to reach full stability.

  • The catalog and scaffold commands now support configurability in the root configuration include used for their scaffolding.

    This allows users to use a root Terragrunt configuration named anything they like, and scaffold new units conveniently, pulling those configurations in with a simple CLI flag.

🛠️ Breaking Changes

The recent work introduced in #3562 to support symlinks has been downgraded to an experiment. We merged in this feature believing it had enough testing to be supported at launch, but quite a bit of unexpected regression occurred as a consequence.

If you are still using this functionality, use the --experiment symlinks flag to re-enable it in your environments. For more information, you can read the documentation on Controlling Experiment Mode.

⚠️ Deprecations

This release also deprecates one of the longest lasting patterns of Terragrunt usage, the root terragrunt.hcl file.

To reiterate the note in the migration guide, this is not going to be a breaking change for a very long time, but we want to start encouraging users to adopt new patterns.

The practice of using terragrunt.hcl as the root of Terragrunt configurations has been harmful to new Terragrunt users and experienced users alike, and we want to have Terragrunt start communicating better practices.

You will have ample warning before this functionality is no longer supported.

📖 Documentation Updates

The Features section of the docs has been revamped significantly to improve the ability to understand and use Terragrunt features at a glance. Much more will be done in the near future to improve the experience of using Terragrunt documentation, and your feedback is always actively solicited!

What's Changed

  • feat: Deprecating terragrunt.hcl as root by @yhakbar in #3588
  • fix: ProviderCacheWithProviderCacheDir test by @levkohimins in #3656
  • fix: Updated docs JSON formatting by @denis256 in #3668
  • fix: Markdown lint fixes by @denis256 in #3670
  • fix: Adding redirect entries for all the pages that were renamed by @yhakbar in #3676
  • fix: Reintroduce symlink work behind experiment flag by @yhakbar in #3672
  • chore: Reorganizing the features section of the docs by @yhakbar in #3640
  • build(deps): bump golang.org/x/oauth2 from 0.23.0 to 0.24.0 by @dependabot in #3637
  • build(deps): bump github.com/zclconf/go-cty from 1.14.2 to 1.15.1 by @dependabot in #3636
  • build(deps): bump github.com/charmbracelet/lipgloss from 0.13.0 to 1.0.0 by @dependabot in #3635
  • build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @dependabot in #3634
  • build(deps): bump ruby/setup-ruby from 1.202.0 to 1.204.0 by @dependabot in #3660
  • build(deps): bump google.golang.org/grpc from 1.68.0 to 1.68.1 by @dependabot in #3638

Full Changelog: v0.69.13...v0.70.0

v0.69.13

13 Dec 16:25
38ceae2
Compare
Choose a tag to compare

What's Changed

  • feat: Incorporating user feedback on the Getting Started guide by @yhakbar in #3648
  • fix: Add redirect for unused contact page. by @panzacoder in #3653
  • fix: Don't require HOME if TERRAGRUNT_PROVIDER_CACHE_DIR is set by @g7r in #3649

New Contributors

Full Changelog: v0.69.12...v0.69.13

v0.69.12

12 Dec 20:51
521d95f
Compare
Choose a tag to compare

What's Changed

  • feat: Allow endpoints.s3 in remote_state block. by @wakeful in #3643

Full Changelog: v0.69.11...v0.69.12

v0.69.11

12 Dec 19:08
2cc1fde
Compare
Choose a tag to compare

What's Changed

  • docs: Adding signature verification docs by @yhakbar in #3647
  • docs: Add missed close parenthesis in Terminology docs by @Rindrics in #3651
  • build(deps): bump golang.org/x/crypto from 0.28.0 to 0.31.0 by @dependabot in #3650

New Contributors

Full Changelog: v0.69.10...v0.69.11

v0.69.10

11 Dec 13:30
9b3ef3e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.69.9...v0.69.10

v0.69.9

06 Dec 16:19
36fa169
Compare
Choose a tag to compare

Updated CLI args, config attributes and blocks

  • engine

What's Changed

  • chore: enhanced engine extraction - switched to using the internal library for archive extraction, resulting in resolving CVEs
  • build(dep): bump github.com/creack/pty from 1.1.17 to 1.1.24
  • build(dep): bump github.com/charmbracelet/bubbles from 0.16.1 to 0.20.0

Full Changelog: v0.69.8...v0.69.9

v0.70.0-beta2024120501

05 Dec 15:30
3bba7d0
Compare
Choose a tag to compare
Pre-release

Deprecation Notice

This release deprecates terragrunt.hcl as the idiomatic root of Terragrunt configurations.

Naming the file placed at the root of Terragrunt configurations terragrunt.hcl is a pattern that does not provide any functional advantage over calling it anything else (e.g. root.hcl), but does serve to provide additional confusion and risk to Terragrunt users, as they can easily use Terragrunt in such a way that it ends up treating the terragrunt.hcl file at the root as a unit instead of shared configuration.

This pattern is very longstanding in typical Terragrunt usage, so changing it can be difficult. To get the ball rolling on this, the behavior will be deprecated, but still supported for the near future (and for a pretty long time thereafter).

How this will be achieved

Terragrunt will now emit warnings whenever it detects that users are following a pattern indicating usage of a root terragrunt.hcl file.

The warning will look like this:

16:04:54.555 WARN   Using `terragrunt.hcl` as the root of Terragrunt configurations is an anti-pattern, and no longer recommended. In a future version of Terragrunt, this will result in an error. You are advised to use a differently named file like `root.hcl` instead. For more information, see https://terragrunt.gruntwork.io/docs/migrate/migrating-from-root-terragrunt-hcl

You can take a look at what those docs will look like here.

Those docs include information on a new Strict Control named root-terragrunt-hcl that will allow users to opt-in for a breaking change preventing usage of a root terragrunt.hcl.

Using this strict control will also update defaults for commands like scaffold and catalog so that they don't assume usage of a root terragrunt.hcl file.

Feedback Requested

You are encouraged to share your feedback on this pre-released change. You can either share your feedback via the associated GitHub Discussion, or you can share your feedback in our Discord.

Full Changelog: v0.69.7...v0.70.0-beta2024120501

v0.69.8

05 Dec 15:07
f86f312
Compare
Choose a tag to compare

Updated CLI args, config attributes and blocks

  • errors

What's Changed

  • feat: Enhanced support for handling negative error patterns in the error block.
  • fix: Resolved broken links in the documentation.
  • chore: Updated documentation to clarify the priority of error evaluation within the error block.

Full Changelog: v0.69.7...v0.69.8

v0.69.7

04 Dec 12:30
cfe02c5
Compare
Choose a tag to compare

New built-in function

What's Changed

  • add new built-in function get_aws_account_alias() by @wakeful in #3607

Full Changelog: v0.69.6...v0.69.7

v0.69.6

03 Dec 20:57
ba1e4b5
Compare
Choose a tag to compare

Updated CLI args, config attributes and blocks

  • errors

New Feature: errors configuration block

This release introduces an improved configuration block for managing errors, enhancing the flexibility of retry and ignore mechanisms. These new features provide fine-grained control over error handling, ensuring a smoother and more robust execution flow.

Example

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"
    }
}

Demo

Ignore error:

ignore-error

Retry error:

retry-on-error

What's Changed

  • Added errors block

Related links

Full Changelog: v0.69.5...v0.69.6