Skip to main content

Purpose:

yaml2terragrunt is an open-source project designed to enable the dynamic creation of Terragrunt files, folders, and configurations using a declarative YAML approach. The primary objective is to simplify and streamline the management of complex infrastructure-as-code setups, particularly for organizations dealing with multiple environments, regions, and services.

Aim:

The project aims to address several shortcomings of traditional Terragrunt folder structures:

  1. Scalability issues: As projects grow, maintaining a consistent folder structure across multiple environments and regions becomes challenging.

  2. Duplication of code: Traditional approaches often lead to repetitive configurations, violating the DRY (Don't Repeat Yourself) principle.

  3. Limited flexibility: Static configurations make it difficult to share complex variables or computed values across different levels of the hierarchy.

  4. Complexity in reorganization: Restructuring existing Terragrunt projects can be cumbersome and error-prone.

Future objectives:

Future objectives for yaml2terragrunt may include:

  1. Enhancing support for multi-region and multi-environment setups.
  2. Implementing advanced features for dynamic configuration generation.
  3. Developing tools to facilitate easier migration from existing Terragrunt structures.
  4. Improving integration with other infrastructure-as-code tools and workflows.

Summary:

By addressing these challenges, yaml2terragrunt aims to provide a more flexible, maintainable, and scalable approach to managing Terragrunt configurations for complex infrastructure projects.

Recommended Workflow

Create YAML configuration files with a standard structure Use the Python script to convert YAML to Terragrunt HCL Run Terragrunt/Terraform as normal with generated HCL files

Example YAML Configuration:

source: "github.com/module/path"
backend: "s3"
bucket: "my-terraform-state"
key: "environment/component"
region: "us-west-2"
inputs:
  instance_type: "t3.micro"
  environment: "staging"

Considerations and Limitations

Requires PyYAML and potentially tfmt for JSON to HCL conversion Complex configurations might need manual tweaking Performance overhead of conversion

Dependencies:

  • PyYAML
  • tfmt (optional, for JSON to HCL conversion)
  • Python 3.7+

Potential Enhancements:

  • Add robust error handling
  • Support for complex Terragrunt inheritance
  • Validation against Terraform schemas
  • Templating support

Contributing:

Contribution guidelines for this project

Metadata

Release files for yaml2terragrunt 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yaml2terragrunt 0.1.1
File Size Uploaded Provenance
yaml2terragrunt-0.1.1.tar.gz 15.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for yaml2terragrunt 0.1.1
File Interpreter ABI Platform
yaml2terragrunt-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 32.5 kB

Release files / yaml2terragrunt-0.1.1.tar.gz

Download URL yaml2terragrunt-0.1.1.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f945900315deb7cba0c9b80741b08ee55c74fc75ed119190bb9f6f1b49b93704
BLAKE2b-256 checksum
How to use checksums
83e6748a2dbf8f3b4f2b2f763454b70271c9f0404999c92d7e409a42ca3e536e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.8 Linux/6.8.0-49-generic

Release files / yaml2terragrunt-0.1.1-py3-none-any.whl

Download URL yaml2terragrunt-0.1.1-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9bdd2dd80623e41cf1cc64dea8579c3e11ffdb389f25a0534b1491c42197e520
BLAKE2b-256 checksum
How to use checksums
a980d153171afcf98fd61ca70fd00f8a3146e636abc6d0ddf2e440a7ad3e9d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.8 Linux/6.8.0-49-generic

Security for yaml2terragrunt 0.1.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page