Skip to content

Update dependency terragrunt to v0.81.6 #409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 20, 2025

This PR contains the following updates:

Package Update Change
terragrunt minor 0.78.4 -> 0.81.6

Release Notes

gruntwork-io/terragrunt (terragrunt)

v0.81.6

Compare Source

🐛 Bug Fixes

The catalog command no longer panics during scaffolding

A mistake in a refactor of internal logging caused a panic during scaffolding while using the Terragrunt Catalog Terminal User Interface (TUI).

That bug has been fixed.

IaC Engines now properly handle errors during init and shutdown

Some missing error handling in IaC Engines has been introduced to properly handle failed initialization and shutdown by IaC Engines.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.81.5...v0.81.6

v0.81.5

Compare Source

✨ New Features

Terragrunt now supports using credentials in .terraformrc files

Terragrunt now supports credentials stored in .terraformrc files when fetching from private registries, in addition to the fallback mechanism of using TG_TF_REGISTRY_TOKEN.

Special thanks to @​dlundgren for contributing this feature!

What's Changed

New Contributors

Full Changelog: gruntwork-io/terragrunt@v0.81.4...v0.81.5

v0.81.4

Compare Source

🧪 Experiments Updated

The reports experiment now supports the --summary-unit-duration flag

As part of delivering #​3628 , the reports experiment has been updated to support optionally displaying unit-level duration information in the Run Summary.

You can now optionally display the duration for each unit run as part of the Run Summary by adding the --summary-unit-duration flag to your run commands:

e.g.

$ terragrunt run --all plan --summary-unit-duration

### Omitted for brevity...

❯❯ Run Summary
   Duration:   10m
      long-running-unit:    10m
      medium-running-unit:  12s
      short-running-unit:   5ms
   Units:      3
   Succeeded:  3

By default, this information will be omitted.

For more information, see Showing unit durations in the docs.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.81.3...v0.81.4

v0.81.3

Compare Source

🧪 Experiments Updated

The reports experiment now supports generating reports in JSON format

As part of delivering #​3628 , the reports experiment has been updated to support JSON report generation in addition to the default of CSV report generation.

To generate a report using JSON formatting, either use the --report-format flag to explicitly set the format to one of csv or json or provide a --report-file with a .csv or .json file extension to implicitly select the report format.

The JSON version of report summaries look like this:

[
  {
    "name": "second-exclude",
    "started": "2025-06-09T12:50:02.59688-04:00",
    "ended": "2025-06-09T12:50:02.596881-04:00",
    "result": "excluded",
    "reason": "exclude block"
  },
  {
    "name": "first-exclude",
    "started": "2025-06-09T12:50:02.596882-04:00",
    "ended": "2025-06-09T12:50:02.596882-04:00",
    "result": "excluded",
    "reason": "exclude block"
  },
  {
    "name": "error-ignore",
    "started": "2025-06-09T12:50:02.597139-04:00",
    "ended": "2025-06-09T12:50:02.742775-04:00",
    "result": "succeeded"
  }
]

For more information, read the documentation on the Run Report.

The reports experiment now supports generating a JSON schema for reports

As part of delivering #​3628 , the reports experiment has been updated to support generating a JSON schema following the JSON Schema specification in addition to generating reports.

To generate a schema, use the --report-schema-file flag.

The schema looks like this:

{
  "items": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://terragrunt.gruntwork.io/schemas/run/report/v1/schema.json",
    "properties": {
      "Started": {
        "type": "string",
        "format": "date-time"
      },
      "Ended": {
        "type": "string",
        "format": "date-time"
      },
      "Reason": {
        "type": "string",
        "enum": [
          "retry succeeded",
          "error ignored",
          "run error",
          "--queue-exclude-dir",
          "exclude block",
          "ancestor error"
        ]
      },
      "Cause": {
        "type": "string"
      },
      "Name": {
        "type": "string"
      },
      "Result": {
        "type": "string",
        "enum": [
          "succeeded",
          "failed",
          "early exit",
          "excluded"
        ]
      }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
      "Started",
      "Ended",
      "Name",
      "Result"
    ],
    "title": "Terragrunt Run Report Schema",
    "description": "Schema for Terragrunt run report"
  },
  "type": "array",
  "title": "Terragrunt Run Report Schema",
  "description": "Array of Terragrunt runs"
}

For more information, read the documentation on the Run Report.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.81.2...v0.81.3

v0.81.2

Compare Source

🧪 Experiments Updated

The reports experiment now supports generating reports

As part of delivering #​3628 , the reports experiment has been updated to support CSV report generation.

When the reports experiment is enabled, and the --report-file argument is passed to a run --all / run --graph / stack run command, Terragrunt will generate a CSV report of the run in addition to the summary that is emitted by default.

The report summary looks like this:

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,

That report offers details on the outcome of each run in the Run Queue.

For more information, read the documentation on the Run Report.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.81.1...v0.81.2

v0.81.1

Compare Source

🧪 Experiments Added

The reports experiment has been added

As part of delivering #​3628 , the reports experiment has been added.

When enabled, Terragrunt will emit summaries of runs at the end of run --all commands.

e.g.

$ terragrunt run --all plan

### Omitted for brevity...

❯❯ Run Summary
   Duration:   62ms
   Units:      3
   Succeeded:  3

The summary can also be disabled using the --summary-disable flag, even when the experiment is active.

You can learn more about this feature here.

More will be added in the near future to allow for report generation and customization. Stay tuned!

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.81.0...v0.81.1

v0.81.0

Compare Source

🛠️ Breaking Changes

Bare Includes Deprecated

Use of bare includes (include configuration blocks without a label) are now deprecated.

For example:

include {
    path = find_in_parent_folders("root.hcl")
}

Will now result in a deprecation warning, while the following usage of an include with a label added won't:

include "root" {
    path = find_in_parent_folders("root.hcl")
}

Using labeled includes result in better performance, as backwards compatibility requires that Terragrunt does additional work during configuration processing. You are advised to update your bare includes to use labels as early as possible.

Note that although this deprecation won't be an immediate breaking change. It will be a breaking change in the future. To opt-in to this breaking change today, you can use the bare-include strict control to mandate usage of the modern, labelled include. Doing so will ensure that you and your teammates are leveraging the most performant version of the configuration block.

Backwards compatibility is guaranteed to remain present for this functionality until at least Terragrunt 2.0.

Logging Moved from Terragrunt Options

If you depend on Terragrunt as a Golang library, you'll want to take note that this release introduces a breaking change to public functions in multiple packages to adjust how the logger is passed. The Terragrunt logger is no longer a member of the TerragruntOptions struct in the options package, and is instead passed explicitly as an argument to functions that need the logger.

For example, the signature for the RunCommand function in the shell package changed from this:

func RunCommand(ctx context.Context, opts *options.TerragruntOptions, command string, args ...string) error

To this:

func RunCommand(ctx context.Context, l log.Logger, opts *options.TerragruntOptions, command string, args ...string) error

You maybe need to manually construct a logger to pass into public functions you are calling in Terragrunt packages as a consequence.

✨ New Features

Added constraint_check HCL Function

A new HCL function, constraint_check, has been added to Terragrunt.

This HCL function allows you to drive logic in your configurations based on constraints checked against arbitrary semantic versions.

For example:

feature "module_version" {
  default = "1.2.3"
}

locals {
  module_version       = feature.module_version.value
  needs_v2_adjustments = constraint_check(local.module_version, ">= 2.0.0")
}

terraform {
  source = "github.com/my-org/my-module.git//?ref=v${local.module_version}"
}

inputs = !local.needs_v2_adjustments ? {
  old_module_input_name = "old_module_input_value"
} : {
  new_module_input_name = "new_module_input_value"
}

Using this function, you can alter the behavior of units when particular OpenTofu/Terraform module versions are used, including changing inputs or altering error handling.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.80.4...v0.80.5

v0.80.4

Compare Source

✨ New Features

The exec command now supports --tf-path

The exec command has gained support for use of the --tf-path flag. This can be important when Terragrunt incidentally uses OpenTofu/Terraform to do things like fetch outputs from dependencies.

Thanks to @​erpel for contributing this feature!

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.80.3...v0.80.4

v0.80.3

Compare Source

🏎️ Performance Improvements

Significant performance improvements for run --all

The performance of run --all has been improved in two significant ways:

  1. Performance for named includes has improved.

    Backwards compatibility for bare includes required that Terragrunt do some inefficient work internally to handle both named includes and bare includes by doing an in-memory rewrite of Terragrunt configurations. An optimization has been introduced to avoid this behavior when users use named includes. This optimization does not extend to users that are using bare includes.

    Users are advised to avoid using bare includes whenever possible for maximum performance. A strict control has been introduced to enforce usage of named includes.

    In a future minor release, a warning will be emitted, instructing users to stop using bare includes. Maintainers will avoid breaking support for bare includes until at least 2.0.

    For more information on how to benefit from this optimization, see the migration guide.

  2. The check for OpenTofu/Terraform code has been optimized.

    To provide helpful error messages when users don't have OpenTofu/Terraform code for Terragrunt to run, Terragrunt checks for the presence of OpenTofu/Terraform configuration files (e.g. *.tf, *.tofu). This check has been optimized to improve performance.

In a micro-benchmark on an M3 Max, using the BenchmarkManyEmptyTerragruntInits benchmark, which tests the performance of a Terragrunt run --all init across 1000 inits, the following performance gains were released:

  • 42% speed improvement.
  • 43% memory reduction.

More optimizations of this sort are planned for future releases.

Size reduction of compiled binaries

The size of compiled binaries will be reduced due to the stripping of debug symbols from the final executable. As an example, this drops the size of the compiled Linux AMD64 binary from 99MB to 70MB.

This can be a small improvement to download times for environments where Terragrunt is downloaded frequently.

🐛 Bug Fixes

Fixed -detailed-exitcode behavior in run --all

An unintended side-effect of addressing a different bug for Terragrunt’s handling of the -detailed-exitcode flag in OpenTofu/Terraform in retries was that any run in a run --all could override the exit code of the entire run --all.

This has been fixed. The exit code of the run --all -- plan -detailed-exitcode command will now properly aggregate exit codes from all runs in a run --all, only reseting the exit code for an individual unit if it properly recovers after a retry.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.80.2...v0.80.3

v0.80.2

Compare Source

✨ New Features

find adds support for --include

The find command now supports the --include flag to allow for fine grained control over the discovery of units that include other partial configurations.

e.g.

$ terragrunt find --include --format=json | jq
[
  {
    "type": "unit",
    "path": "bar",
    "include": {
      "cloud": "cloud.hcl"
    }
  },
  {
    "type": "unit",
    "path": "foo"
  }
]

Combining the flag with tools like jq allows for simple discovery of configurations that include other partial configurations.

$ terragrunt find --include --format=json | jq '[.[] | select(.include.cloud == "cloud.hcl")]'
[
  {
    "type": "unit",
    "path": "bar",
    "include": {
      "cloud": "cloud.hcl"
    }
  }
]

🐛 Bug Fixes

--tf-path now correctly overrides terraform_binary

A bug in the precedence logic for Terragrunt configuration parsing resulted in the CLI flag --tf-path from being ignored when the terraform_binary attribute was set.

Terragrunt will now correctly respect the terraform_binary attribute when set, and allow --tf-path to override the value when it is set.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.80.1...v0.80.2

v0.80.1

Compare Source

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.80.0...v0.80.1

v0.80.0

Compare Source

Terraform 1.12 support: We are now testing Terragrunt against Terraform 1.12 and is confirmed to be working.

NOTE: Although this release is marked as backward incompatible, it is functionally compatible as nothing has been changed in Terragrunt internals. The minor version release is useful to mark the change in Terraform version that is being tested.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.79.3...v0.80.0

v0.79.3

Compare Source

💪🏽 Enhancements

Limitation on Catalog URLs lifted

A limitation on only supporting recognized go-getter URL patters has been lifted from the catalog command.

The reason this limitation existed in the past was to ensure that users were able to have Terragrunt load module source code in browsers from the catalog Terminal User Interface (TUI). To support that, only a constrained set of sources were supported, to ensure that a button was available to pop open the link in the browser.

image image

Terragrunt will now dynamically adjust the buttons available after module selection to gracefully degrade the experience, instead of completely rejecting repository sources that can't be predictably converted to browser URLs.

image

This allows more users to adopt the Terragrunt Catalog, while providing the same great user experience for users that are on fully supported platforms, like GitHub, GitLab, BitBucket, etc.

What's Changed

New Contributors

Full Changelog: gruntwork-io/terragrunt@v0.79.2...v0.79.3

v0.79.2

Compare Source

🏎️ Performance Improvements

Improved overall performance by memoizing -version output in each unit.

In a micro-benchmark on an M3 Max, using the BenchmarkManyEmptyTerragruntInits benchmark, which tests the performance of a Terragrunt run --all init across 1000 units, the following performance gains were released:

  • 18% speed improvement.
  • 9% memory reduction.

More optimizations of this sort are planned for future releases.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.79.1...v0.79.2

v0.79.1

Compare Source

💪🏽 Enhancements

Recursive stack clean

Improved stack clean to recursively delete all nested stack directories, ensuring thorough cleanup.

What's Changed

Full Changelog: gruntwork-io/terragrunt@v0.79.0...v0.79.1

v0.79.0

Compare Source

💪🏽 Enhancements

The run --all command automatically generates Terragrunt Stacks

If you are using terragrunt.stack.hcl files in your codebase, run --all commands will now automatically expand all terragrunt.stack.hcl files into generated stack configurations, as if you had run stack generate before running the run --all command.

e.g.

terragrunt run --all plan

Is now equivalent to:

terragrunt stack generate
terragrunt run --all plan

If you would like to disable this new behavior, you can use the --no-stack-generate to opt out of automatic stack generation.

📖 Docs Updates

The Terragrunt v1 docs are open for feedback!

These docs will undergo significant adjustments, both stylistically, and functionality on the road to 1.0.

They are a full rewrite of the existing Terragrunt Docs site written in Jekyll to one using Starlight.

Your feedback is requested! If you are reading these release notes relatively soon after release, you should see a link at the top of the site where you can provide your feedback on the new docs.

What's Changed

New Contributors

Full Changelog: gruntwork-io/terragrunt@v0.78.4...v0.79.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title Update dependency terragrunt to v0.79.0 Update dependency terragrunt to v0.79.2 May 21, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from 76b36c3 to 58a5c63 Compare May 21, 2025 14:47
@renovate renovate bot changed the title Update dependency terragrunt to v0.79.2 Update dependency terragrunt to v0.79.3 May 21, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from 58a5c63 to 0c854ac Compare May 21, 2025 19:48
@renovate renovate bot changed the title Update dependency terragrunt to v0.79.3 Update dependency terragrunt to v0.80.0 May 21, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from 0c854ac to b5af4d4 Compare May 21, 2025 22:59
@renovate renovate bot changed the title Update dependency terragrunt to v0.80.0 Update dependency terragrunt to v0.80.1 May 22, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from b5af4d4 to 6e959e4 Compare May 22, 2025 09:10
@renovate renovate bot changed the title Update dependency terragrunt to v0.80.1 Update dependency terragrunt to v0.80.2 May 22, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from 6e959e4 to 13b3f9e Compare May 22, 2025 19:39
@renovate renovate bot changed the title Update dependency terragrunt to v0.80.2 Update dependency terragrunt to v0.80.3 May 27, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch 2 times, most recently from 3d9ffe2 to d535650 Compare May 28, 2025 16:24
@renovate renovate bot changed the title Update dependency terragrunt to v0.80.3 Update dependency terragrunt to v0.80.4 May 28, 2025
@renovate renovate bot changed the title Update dependency terragrunt to v0.80.4 Update dependency terragrunt to v0.81.0 Jun 2, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from d535650 to 337092c Compare June 2, 2025 22:19
@renovate renovate bot changed the title Update dependency terragrunt to v0.81.0 Update dependency terragrunt to v0.81.1 Jun 9, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch 2 times, most recently from da85d8e to b07393a Compare June 10, 2025 16:41
@renovate renovate bot changed the title Update dependency terragrunt to v0.81.1 Update dependency terragrunt to v0.81.3 Jun 10, 2025
@renovate renovate bot changed the title Update dependency terragrunt to v0.81.3 Update dependency terragrunt to v0.81.4 Jun 11, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch 2 times, most recently from f5442f4 to 3099985 Compare June 11, 2025 23:38
@renovate renovate bot changed the title Update dependency terragrunt to v0.81.4 Update dependency terragrunt to v0.81.5 Jun 11, 2025
@renovate renovate bot changed the title Update dependency terragrunt to v0.81.5 Update dependency terragrunt to v0.81.6 Jun 13, 2025
@renovate renovate bot force-pushed the renovate/terragrunt-0.x branch from 3099985 to 39b0573 Compare June 13, 2025 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants