
terragrunt-generator
Generate documented terragrunt.hcl manifests from Terraform module variables.
terragrunt-generator generates terragrunt.hcl configuration files - with
documented inputs - from the variables exposed by a Terraform module. Point it
at a module (a git repository or a local directory), tell it where to look up
values, and it emits a ready-to-edit Terragrunt manifest plus an optional YAML
config skeleton.
Documentation
The project site is published from main to GitHub Pages:
https://goabonga.github.io/terragrunt-generator/.
Requirements
- Python 3.13+
Installation
pip install terragrunt-generator
Or run it without installing, using uv:
uvx terragrunt-generator --help
Usage
terragrunt-generator \
-u https://github.com/terraform-google-modules/terraform-google-project-factory.git \
-v v14.2.1 \
-l 'project'
This reads the module's variable blocks and prints a terragrunt.hcl whose
inputs are wired to a yamldecode-based config lookup:
# terraform-google-modules v14.2.1
# https://github.com/terraform-google-modules/terraform-google-project-factory/tree/v14.2.1/
include {
path = find_in_parent_folders()
}
locals {
source = "github.com/terraform-google-modules/terraform-google-project-factory.git?ref=v14.2.1"
all = merge(
yamldecode(file(find_in_parent_folders("config.yaml"))),
)
}
terraform {
source = lookup(local.all, "project", false) == false ? null : lookup(local.all.project, "enabled", false) == false ? null : local.source
}
inputs = merge({
billing_account = lookup(local.all.project, "billing_account", "")
name = lookup(local.all.project, "name", "")
org_id = lookup(local.all.project, "org_id", "")
activate_api_identities = lookup(local.all.project, "activate_api_identities", [])
activate_apis = lookup(local.all.project, "activate_apis", ["compute.googleapis.com"])
})
See the usage guide for the full option reference and the per-environment YAML workflow.
Development
git clone https://github.com/goabonga/terragrunt-generator.git
cd terragrunt-generator
uv sync
# Quality gates (mirrored in CI).
uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy src
uv run pytest --cov=terragrunt_generator
# Install the pre-commit + commit-msg hooks.
uv run pre-commit install
Versioning and release
Releases are automated. Every push to main runs
multicz bump --commit --tag --push - driven by
Conventional Commits - then publishes
to PyPI and deploys the docs.
# Preview the next release against the current branch.
multicz status
Contributing
See CONTRIBUTING.md for the workflow, the commit-message convention, and the test/lint expectations. By participating you agree to the Code of Conduct.
Security issues: please follow the disclosure process in SECURITY.md.
License
Distributed under the MIT License.
Metadata
Release files for terragrunt-generator 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| terragrunt_generator-1.1.3.tar.gz | 15.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| terragrunt_generator-1.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.1 kB
Release files / terragrunt_generator-1.1.3.tar.gz
| Download URL | terragrunt_generator-1.1.3.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa5a4b073291000394c02175a03b845938aee9c03b5fe14a0143e23e6be97730
|
|
BLAKE2b-256 checksum How to use checksums |
f09224dc4aabf48b5d885ce540a33daddeae95c7a39068f9b5eb2956b38dee7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / terragrunt_generator-1.1.3-py3-none-any.whl
| Download URL | terragrunt_generator-1.1.3-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66f50ca61dcb89e7ba040b78bafffac6c2658dc307967e4cb4758460ba257474
|
|
BLAKE2b-256 checksum How to use checksums |
ad02b51d746a8267d8458c6c686cc6b21b016d13dbe12962a9c02c9cf609c667
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logSecurity for terragrunt-generator 1.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for terragrunt_generator-1.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.