sincecutoff.com
← all changes

terragrunt deep-merge experiment adds deep_merge HCL function

Introduced 2026-05-25 · score 0.98

HOW TO USE IT

When composing inputs from multiple JSON, YAML, or HCL-derived maps, enable the `deep-merge` experiment and call `deep_merge` with positional map/object arguments; later values override overlapping keys, nested maps merge recursively, lists append, and `null` arguments are ignored.

locals { config_json_files = sort(fileset(get_terragrunt_dir(), "*.json")) config = deep_merge([ for file in local.config_json_files : jsondecode(file("${get_terragrunt_dir()}/${file}")) ]...) } inputs = local.config
terragrunt run --all --experiment deep-merge -- plan

WHY THIS HELPS

Compose Terragrunt inputs from multiple decoded JSON, YAML, or HCL-derived maps.

REQUIREMENTS AND LIMITATIONS

  • Version: 1.0.6
  • Availability: Experimental; requires enabling the `deep-merge` experiment.
  • deep_merge(map1, map2, ...) (required): Positional map/object arguments to combine; later arguments override overlapping keys, nested maps merge recursively, lists append, and null arguments are ignored.
  • --experiment deep-merge (required): Enables the experiment required to call `deep_merge`; the docs' CLI example enables it for `terragrunt run`.
  • Prerequisite: Enable the `deep-merge` experiment; calling `deep_merge` without it returns an error.
  • Calling `deep_merge` without enabling the `deep-merge` experiment returns an error.

FIRST-PARTY EVIDENCE

Check the installed version and the source before using it. Entry JSON

Report a problem with this card