github gruntwork-io/terragrunt v0.89.0

17 hours ago

Several experimental features have been made generally available.

🛠️ Breaking Changes

Runner-pool

Terragrunt now supports the Runner Pool concurrency model, replacing the traditional group-based concurrency model with a dynamic scheduler by default.

Instead of waiting for groups of units that block downstream units to complete their runs, the Runner Pool executes each unit as soon as its dependencies (or dependents for destroys) are resolved. This improves efficiency, reduces bottlenecks, and limits the impact of individual failures on the run of the entire queue.

✨New Features

  • Dynamically schedules Units as soon as dependencies (or dependents) are satisfied
  • Improves throughput for large stacks
  • Provides better fault-isolation for failed units

image

Report

The experimental Report feature is now stable and enabled by default.

Every Terragrunt run will now emit a short summary at the end of the run that looks like the following by default:

$ terragrunt run --all plan

# Omitted for brevity...

❯❯ Run Summary  3 units  62ms
   ────────────────────────────
   Succeeded    3

This summary will give a high-level overview of the run results for units in a given Terragrunt run.

You can optionally request a CSV or JSON report of runs as well, giving you detailed insights as to the performance of each run using the --report flag:

terragrunt run --all plan --report-schema-file report.schema.csv
Name,Started,Ended,Result,Reason,Cause
first-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude block,
second-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude block,
first-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run error,
first-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,
second-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run error,
second-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,
second-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early exit,run error,
first-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early exit,run error,
terragrunt run --all plan --report-schema-file report.schema.json
[
  {
    "Name": "first-exclude",
    "Started": "2025-06-05T16:28:41-04:00",
    "Ended": "2025-06-05T16:28:41-04:00",
    "Result": "excluded",
    "Reason": "exclude block"
  },
  {
    "Name": "first-success",
    "Started": "2025-06-05T16:28:41-04:00",
    "Ended": "2025-06-05T16:28:41-04:00",
    "Result": "succeeded"
  }
]

✨New Features

  • Generates detailed run reports (CSV and JSON formats supported)
  • Displays run summaries directly in the CLI output
  • Allows disabling summaries if desired

To learn more about the Run Report feature, read the dedicated guide on Run Reports here.

🔧 Migration Guide

No action is required

To disable summary output explicitly, use --disable-report-summary:

terragrunt run --all plan --disable-report-summary

Auto OpenTofu Provider Cache Directory

Terragrunt now automatically configures OpenTofu’s native provider caching mechanism by default when running with OpenTofu > = 1.10.

Note that if you are using Terraform, you will not be able to take advantage of this new feature.

This feature is only possible in OpenTofu due to the hard work and coordination with the OpenTofu team to ensure that concurrent access to the provider cache directory is safe for all OpenTofu users, regardless of whether they use Terragrunt.

✨New Features

  • Automatically sets the TF_PLUGIN_CACHE_DIR environment variable
  • Uses OpenTofu’s native provider cache instead of Terragrunt’s internal cache server
  • Provides improved concurrency safety in multi-runner and CI environments

🔧 Migration Guide

No action is required if you’re running OpenTofu > = 1.10 — provider caching will be configured automatically.

To disable this behavior, use the --no-auto-provider-cache-dir flag:

terragrunt run --all apply --no-auto-provider-cache-dir

What's Changed

Full Changelog: v0.88.1...v0.89.0

Don't miss a new terragrunt release

NewReleases is sending notifications on new releases.