From terragrunt-skill
Guides Terragrunt infrastructure setups with OpenTofu, including catalogs, stacks, live repos, remote S3/DynamoDB state backends, and multi-account/multi-environment deployments.
npx claudepluginhub jfr992/terragrunt-skill --plugin terragrunt-skillThis skill uses the workspace's default tool permissions.
This skill provides guidance for infrastructure using Terragrunt with OpenTofu, following a three-repository pattern:
assets/catalog-structure/modules/template/main.tfassets/catalog-structure/modules/template/outputs.tfassets/catalog-structure/modules/template/variables.tfassets/catalog-structure/stacks/template/terragrunt.stack.hclassets/catalog-structure/units/template/terragrunt.hclassets/images/terragrunt-catalog.pngassets/live-structure/non-prod/account.hclassets/live-structure/non-prod/us-east-1/region.hclassets/live-structure/non-prod/us-east-1/staging/env.hclassets/live-structure/prod/account.hclassets/live-structure/prod/us-east-1/region.hclassets/live-structure/root.hclreferences/catalog-scaffolding.mdreferences/catalog-structure.mdreferences/cicd-pipelines.mdreferences/dependencies.mdreferences/live-structure.mdreferences/multi-account.mdreferences/naming.mdreferences/patterns.mdGenerates Terragrunt HCL files including root.hcl, terragrunt.hcl, stacks, child modules, multi-env layouts, and dependency wiring with 2025 features like feature flags and exclude blocks.
Provides advanced Terraform/OpenTofu expertise for IaC automation, state management, complex module design, multi-cloud deployments, GitOps workflows, policy as code, and CI/CD integration.
Guides advanced Terraform/OpenTofu IaC with module design, state management, remote backends, workspaces, policy-as-code, GitOps, and multi-cloud automation.
Share bugs, ideas, or general feedback.
This skill provides guidance for infrastructure using Terragrunt with OpenTofu, following a three-repository pattern:
| Topic | Reference |
|---|---|
| Naming conventions | naming.md |
| Catalog structure | catalog-structure.md |
| Live repo structure | live-structure.md |
| Root/account/env configs | root-config.md |
| Unit dependencies | dependencies.md |
| Catalog scaffolding | catalog-scaffolding.md |
| Stack commands | stack-commands.md |
| Patterns & best practices | patterns.md |
| State management | state-management.md |
| Multi-account setup | multi-account.md |
| Performance optimization | performance.md |
| CI/CD pipelines | cicd-pipelines.md |
Units receive configuration through values.xxx:
inputs = {
name = values.name
environment = values.environment
instance_class = try(values.instance_class, "db.t3.medium") # Optional with default
}
Units resolve symbolic references like "../acm" to dependency outputs:
inputs = {
acm_certificate_arn = try(values.acm_certificate_arn, "") == "../acm" ?
dependency.acm.outputs.acm_certificate_arn :
values.acm_certificate_arn
}
Units reference modules via Git URL with version from values:
terraform {
source = "git::git@github.com:YOUR_ORG/modules/rds.git//app?ref=${values.version}"
}
units/<name>/terragrunt.hcl${values.version}values.xxx for inputs"../unit" patternsstacks/<name>/terragrunt.stack.hcllocals for computed valuesunit blocks referencing catalog unitsenv.hcl with state_bucket_suffix./setup-state-backend.sh to create state resourcesvalues.version"../unit" → dependency outputslength(keys(try(values.X, {}))) > 0try(values.X_path, "../default")state_bucket_suffix//path?ref=branch NOT ?ref=branch//pathcondition ? (\n<<-EOF\n...\nEOF\n) : ""ref=feature-branch)ref=v1.0.0-rc1)ref=v1.0.0)