Zum Inhalt springen

Terragrunt Updates & Release Notes

8 Einträge aus 1 Quelle. Zuletzt aktualisiert:

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt v1.2.0-rc2: zweiter Release Candidate mit Fehlerbehebungen

Der zweite Release Candidate für Terragrunt v1.2 schließt dieselben elf Experimente wie rc1 ab, behebt vor allem Fehler in CAS, Catalog, Provider Cache Server und exclude-Blöcken und lässt base64gzip() nun die Ausgabe des Go-1.27-Encoders liefern.

🎉 v1.2.0 Release Candidate

This is the second release candidate for Terragrunt v1.2.

It completes the same eleven experiments as v1.2.0-rc1, and adds bug fixes found since then, most of them in the CAS, the catalog, the Provider Cache Server, and exclude blocks.

Future release candidates for v1.2.0 will include bug fixes related to these experiments or other urgent bug fixes as necessary, and documentation improvements.

Please try out this release candidate in lower environments and share your feedback in the associated GitHub discussion.

🛠️ Breaking Changes

base64gzip() uses the current Go encoder

Go 1.27 changed the compressed output of its gzip encoder. Terragrunt v1.1.5 kept base64gzip() on the older output and warned once per run that this was legacy behavior. base64gzip() now returns what the Go 1.27 encoder produces. …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.2.0-rc1: Erster Release Candidate, base64gzip() geändert

Terragrunt v1.2.0-rc1 ist der erste Release Candidate für v1.2, schließt elf Experimente wie block-iteration, oci und azure-backend ab und ändert als Breaking Change base64gzip() so, dass die Ausgabe des Go 1.27 Encoders verwendet wird.

🎉 v1.2.0 Release Candidate

This is the first release candidate for Terragrunt v1.2.

This release completes the following experiments:

  • block-iteration
  • oci
  • bounded-discovery
  • catalog-format
  • mutable-generate
  • optional-dependency-outputs
  • optional-hooks
  • azure-backend
  • version-attribute
  • profiling
  • dependency-fetch-output-from-state

Future release candidates for v1.2.0 will include bug fixes related to these experiments or other urgent bug fixes as necessary, and documentation improvements.

Please try out this release candidate in lower environments and share your feedback in the Associated GitHub discussion.

🛠️ Breaking Changes

base64gzip() uses the Go 1.27 encoder

Go 1.27 changed the compressed output of its gzip encoder. Terragrunt v1.1.5 kept base64gzip() on the older output and warned once per run that this was legacy behavior. base64gzip() now returns what the Go 1.27 encoder produces. …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.6: Git-Filter unter Windows liefern wieder Ergebnisse

Unter Windows liefern find, list und browse mit einem Git-Filter wie --filter '[main...HEAD]' wieder Ergebnisse für geänderte Units in verschachtelten Verzeichnissen, da nun überall / als Pfadtrenner verwendet wird.

🐛 Bug Fixes

Git filters find nested units on Windows again

On Windows, find, list and browse returned nothing for a Git-based filter such as --filter '[main...HEAD]' when the diff changed only unit configurations in nested directories, like nested\path\terragrunt.hcl.

The worktree optimization in v1.1.5 checks out only the directories of changed units for these commands. On Windows, it spelled those directories with \ separators and looked them up in Git's file listing, which uses /. None matched, so it checked out nothing. Terragrunt now uses / separators for those directories on every platform.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.5: Erweiterte Kontrolle für doppelte dependency-Labels

Die strikte Kontrolle duplicate-dependency-labels warnt nun auch, wenn zwei dependency-Blöcke mit unterschiedlichen Labels dasselbe config_path nutzen (als Fehler bei aktivierter Kontrolle), und run --all benötigt weniger Remote-Abfragen für gemeinsam genutzte Sources.

✨ New Features

duplicate-dependency-labels also catches a shared config_path

Two dependency blocks with different labels can point at the same config_path. Both parse, so the same unit is declared twice, and the two blocks drift apart as soon as one gains a mock_outputs or skip_outputs the other lacks:

dependency "vpc" {
  config_path = "../vpc"
}

dependency "network" {
  config_path = "../vpc"
}

Terragrunt now warns when it finds this, alongside the existing warning for two blocks sharing a label. With the duplicate-dependency-labels strict control enabled, the warning becomes an error naming both addresses and the path they share:

/path/to/terragrunt.hcl: dependencies vpc and network both point at ../vpc; declare that dependency once and reference it under one name

🏎️ Performance Improvements

Fewer remote probes for sources shared across units

run --all asked the remote what a source resolved to once per unit, so a hundred units sharing one module made a hundred requests. Each of them then read the same commit out of the store for itself.

Units that resolve the same source at the same time now share one probe, and units that need the same Git commit share the work of reading it into the CAS. …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.4: Neue strikte Kontrolle duplicate-dependency-labels

Neue strikte Kontrolle duplicate-dependency-labels in Terragrunt v1.1.4: Zwei dependency-Blöcke mit gleichem Label in einer terragrunt.hcl lösen eine Warnung aus, die bei aktivierter Kontrolle zum Fehler wird, und scaffold fragt Werte interaktiv ab.

✨ New Features

duplicate-dependency-labels strict control

Declaring two dependency blocks with the same label in one terragrunt.hcl configuration file parsed without error, and then quietly resolved every reference to that label to whichever block came last. The blocks before it were silently overridden:

dependency "vpc" {
  config_path = "../vpc-us-east-1"
}

dependency "vpc" {
  config_path = "../vpc-us-west-2"
}

inputs = {
  # Reads ../vpc-us-west-2.
  vpc_id = dependency.vpc.outputs.vpc_id
}

Terragrunt now warns when it finds this. With the new duplicate-dependency-labels strict control enabled, the warning becomes an error naming the address the blocks share:

terragrunt run plan --strict-control duplicate-dependency-labels
/path/to/terragrunt.hcl: dependency vpc is declared more than once; every dependency needs an address of its own

Give each block a label of its own. A configuration that was relying on the shadowing to pick the last block should keep only that block.

scaffold asks for values interactively …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.3: Fixes für autoinclude-Inputs und fehlende Zeilenumbrüche

Terragrunt v1.1.3 behebt Unsupported attribute-Fehler bei values.*-Inputs, die per autoinclude gesetzt werden, sowie die Behandlung von Dateien ohne abschließenden Zeilenumbruch bei overwrite_terragrunt und remove_terragrunt.

🐛 Bug Fixes

Fixed Unsupported attribute errors for values.* inputs that autoinclude overrides

A unit input referencing a values.* key that the unit's values file doesn't define no longer fails with Unsupported attribute when an autoinclude block supplies that input. The autoinclude value is applied as intended.

# stacks/terragrunt.stack.hcl
unit "subnet" {
  source = "../units/subnet"
  path   = "subnet"

  autoinclude {
    dependency "vpc" {
      config_path  = unit.vpc.path
      mock_outputs = { vpc_id = "mock" }
    }

    inputs = {
      vpc_id = dependency.vpc.outputs.vpc_id
    }
  }

  values = {
    cidr_block = "10.0.0.0/24"
  }
}
# units/subnet/terragrunt.hcl
inputs = {
  vpc_id     = values.vpc_id      # supplied by autoinclude, not the values file
  cidr_block = values.cidr_block  # still resolves from values file
}

Fixed overwrite_terragrunt and remove_terragrunt on files with no trailing newline

generate blocks using if_exists = "overwrite_terragrunt" or if_disabled = "remove_terragrunt" failed to properly handle existing files when the file at the target path had no newline after its first line, empty files included.

Terragrunt now properly handles files like this, so a file carrying the Terragrunt signature is overwritten or removed as configured, and a file without it produces the usual error naming the path Terragrunt would not touch. …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.2: Sofortiges Scaffolding im Catalog-TUI, schnelleres find_in_parent_folders()

Im terragrunt catalog TUI scaffoldet ctrl+d in der README-Ansicht eine Komponente sofort ohne interaktives Formular, und find_in_parent_folders() führt deutlich weniger Dateisystemprüfungen durch.

✨ New Features

Scaffold straight from the catalog README view with ctrl+d

In the terragrunt catalog TUI, pressing ctrl+d while reading a component's README now scaffolds it immediately, skipping the interactive form. Module and template inputs are written as # TODO placeholders, and unit/stack copies get a fully placeholder terragrunt.values.hcl. The hint bar at the bottom of the README view advertises the new key.

🏎️ Performance Improvements

Fewer filesystem checks when resolving find_in_parent_folders()

<img width="2320" height="1780" alt="626834110-d04de8b8-cc1b-4426-ab1f-d1760601dd12" src="https://github.com/user-attachments/assets/1198dc75-21fa-4a55-9534-ec0680a5836f" />

find_in_parent_folders() walks up from a unit toward the filesystem root, checking each directory for the configuration file it was asked to find. Even when the call named a file, as in find_in_parent_folders("root.hcl"), each directory along the way was also checked for the default configuration filenames. Units sharing a parent chain then repeated every check their siblings had already made.

Terragrunt now checks only the filename the call names, and reuses what it already learned about a directory for the rest of the command. Deeply nested estates benefit most, since every level between a unit and its root configuration used to be re-checked once per unit. …

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Terragrunt von Gruntwork

Terragrunt 1.1.1: assume_role für S3-Backend und sicherere Catalog-Clones

Terragrunt v1.1.1 berücksichtigt assume_role für S3-Backend-Operationen bei extern gelieferten AWS-Credentials, legt für terragrunt catalog sicherere temporäre Clone-Verzeichnisse an und löst dependency-Outputs für Units auf, die in Hooks, extra_arguments oder remote_state auf ihre Dependency verweisen.

🐛 Bug Fixes

Chained role assumption for the S3 backend

When AWS credentials were supplied through --auth-provider-cmd or environment variables, Terragrunt ignored the assume_role attribute of the remote_state block for its own backend operations, such as bootstrapping the state bucket. In cross-account setups this caused access errors, even though OpenTofu/Terraform itself assumed the role correctly during runs.

Terragrunt now uses the supplied credentials as the source identity and assumes the configured role on top of them. The same applies to roles configured via the iam_role attribute or the --iam-assume-role flag, and to fetching dependency outputs directly from S3 state.

Safer temporary clone directories for terragrunt catalog

Terragrunt now creates a fresh temporary clone directory for each catalog load, rejects symlinked clone roots, and removes catalog clones when the TUI session exits.

Resolve dependency outputs for units that reference a dependency in a hook, extra_arguments, or remote_state block

Resolving a unit's dependency outputs for a downstream unit no longer fails when that unit references its own dependency in:

  • a before_hook, after_hook, or error_hook
  • an extra_arguments block
  • a remote_state block

Previously these raised There is no variable named "dependency" on the downstream unit, and a remote_state reference could crash Terragrunt. …

Originalquelle(öffnet in neuem Tab)Problem melden