A Docker frontend for Terragrunt and Terraform that ensures consistent tooling across environments.
TGF is a Docker frontend for Terragrunt and Terraform that wraps infrastructure commands in containers to guarantee consistent tool versions across team members. It solves the problem of Terraform state file version mismatches and outdated CLI tools by running everything inside a controlled Docker environment.
Infrastructure engineers and DevOps teams managing Terraform/Terragrunt projects who need to ensure consistent execution environments across Windows, macOS, and Linux workstations.
Developers choose TGF because it eliminates 'works on my machine' issues in infrastructure code, provides a unified toolset via Docker images, and offers flexible configuration without requiring everyone to manually manage tool versions.
A Terragrunt frontend that allow execution of Terragrunt/Terraform through Docker
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
TGF runs Terraform, Terragrunt, and AWS CLI inside Docker containers, ensuring all team members use identical tool versions and eliminating state file conflicts, as highlighted in the 'Why use TGF' section.
By leveraging Docker, TGF provides the same behavior on Linux, Windows, and macOS, making infrastructure code portable across different developer machines, as stated in the multi-platform support feature.
Supports YAML, JSON, HCL configs, remote sources like S3, and AWS Parameter Store, with OS-specific sections for fine-grained control, detailed in the Configuration section.
Can run any program in any Docker image, from AWS CLI to custom scripts, allowing teams to standardize diverse tooling environments, exemplified in the 'Other usages' examples.
TGF requires a functioning Docker installation and daemon, adding setup complexity and making it unusable in environments where Docker is not supported, as it's core to its operation.
The multi-pass configuration system with local files, remote sources, and AWS integration can be difficult to debug and manage, especially with bootstrap and config passes outlined in the README.
Default images use Coveo's forks of tools like Terragrunt and the AWS provider, which may lag behind upstream updates or introduce compatibility issues, as noted in the Docker images section.
Running commands inside Docker containers adds latency due to image pulls and container startup, which can slow down iterative development workflows, despite the docker-refresh setting.