Every few months, we send out a newsletter to all Gruntwork customers that describes all the updates we’ve made since the last newsletter and news from the DevOps industry. Note that many of the links below go to private repos in the Gruntwork Infrastructure as Code Library that are only accessible to customers.
Happy new year, and welcome to the first Gruntwork newsletter of 2025! We have a ton of exciting stuff planned for 2025, including of course lots of content related to the upcoming release of Terragrunt 1.0.
As always, if you have any questions or need help, email us at support@gruntwork.io!
We’ve published a blog post detailing the vision and steps to be taken on The Road to Terragrunt 1.0. Give it a read and let us know what you think!
As we publish follow-up posts in the series, we’ll update this living post with more details on the topics covered therein.
The dedicated Road to 1.0 blog post for Terragrunt Stacks has been published, giving a high level overview of why we’re introducing a new paradigm for Terragrunt Stacks, and a deep-dive on the new terragrunt.stack.hcl
file.
To give an early preview of the functionality afforded by the new terragrunt.stack.hcl
file, an alpha release has been cut that allows for generation of .terragrunt-stack
directories using terragrunt.stack.hcl
files. This is not a feature complete alpha of the functionality that will be available with stacks, but early feedback is welcome!
As discussed in the CLI Redesign RFC, the Terragrunt CLI is gaining new commands, and reorganizing existing functionality to improve ergonomics and provide enhanced functionality. Part of this will be provided by the introduction of the new exec
command.
You can learn more about the exec
command in the RFC.
Try out the command by installing the alpha, and share your feedback in the associated GitHub Discussion!
In release v0.70.0, we introduced a new mechanism for rolling out experimental functionality in Terragrunt we’re calling “Experiment Mode”.
Using this feature allows users to opt-in to experimental functionality using feature flags before they’re stable. This allows us to deliver new functionality quickly, while maintaining stability for the core of Terragrunt functionality.
To learn more about Experiment Mode, read the docs.
As discussed in the Feature Flags, Errors and Exclude RFC, Terragrunt has three new configuration blocks that allow for increased control over how it operates at runtime.
Feature Flags
Terragrunt now has first-class support for feature flags. Using a combination of the new feature
configuration block and the new feature
CLI flag, users can override default behavior of Terragrunt configurations at runtime.
This new feature has been designed to integrate nicely with two other new configuration blocks, the errors
block and the exclude
block.
Exclude
Replacing the now deprecated skip
attribute, users can now define an exclude
configuration block with settings to determine when a unit should be dynamically excluded from the queue of units to run.
The exclude
configuration block introduces additional capabilities and is far more flexible than the deprecated skip
attribute.
Errors
Replacing the now deprecated retryable_errors
attribute, users can now define nuanced rules for how Terragrunt should handle errors encountered while orchestrating OpenTofu/Terraform using a new errors
configuration block.
The errors
block provides more control over error handling, including the ability to ignore errors, rather than only retrying them.
Learn More
You can learn more about these capabilities here.
Terragrunt logging has gotten a glow-up 💅.
Default logging UI/UX has been improved, and users now have much more control over exactly how Terragrunt logs.
You can learn more about the updated logging here.
The Getting Started guide has been revamped making it easier than ever to get started with Terragrunt!
You can follow the updated guide here.
If you’re experienced with Terragrunt, consider sharing this with any friends and colleagues that might need help getting started and give us a star on GitHub
OpenTofu has released version 1.9. Major feature highlights include (from the OpenTofu release notes and blog post):
for_each
in provider configuration blocks: An alternate (aka "aliased") provider configuration can now have multiple dynamically-chosen instances using the for_each
argument:provider "aws" {
alias = "by_region"
for_each = var.aws_regions
region = each.key
}
-exclude
planning option: similar to -target
, this allows operators to tell OpenTofu to work on only a subset of the objects declared in the configuration or tracked in the state.tofu plan -exclude=kubernetes_manifest.crds
While -target
specifies the objects to include and skips everything not needed for the selected objects, -exclude
instead specifies objects to skip. OpenTofu will exclude the selected objects and everything that depends on them.
Incase you missed it, AWS re:Invent took place the first week of December in Las Vegas. AWS posted a summary, here are some key announcements we recommend you check out: