Releases: gruntwork-io/terragrunt
v0.70.0
✨ 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
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
- @panzacoder made their first contribution in #3653
- @g7r made their first contribution in #3649
Full Changelog: v0.69.12...v0.69.13
v0.69.12
v0.69.11
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
v0.69.9
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
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
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
v0.69.6
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:
Retry error:
What's Changed
- Added
errors
block
Related links
Full Changelog: v0.69.5...v0.69.6