A Go binary that systematically manages external GitHub modules for use in Terraform projects.
Terrafile is a command-line tool written in Go that helps Terraform users manage external modules from GitHub repositories. It provides systematic version control and organization for Terraform module dependencies, solving the problem of inconsistent module versions across infrastructure codebases. The tool reads a YAML configuration file to fetch specified module versions and organize them in vendor directories.
Terraform developers and infrastructure teams working with multiple external modules across different projects or environments. It's particularly useful for organizations managing complex Terraform codebases with shared modules.
Developers choose Terrafile because it brings explicit dependency management to Terraform modules, similar to package managers in software development. Its unique approach allows centralized management of modules across multiple stacks while maintaining version consistency and reducing manual git operations.
A binary written in Go to systematically manage external modules from Github for use in Terraform
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Declares module dependencies with specific versions in a YAML file, ensuring consistency across stacks as shown in the example Terrafile with version tags like 'v1.46.0'.
Supports both per-directory and centrally managed approaches, allowing modules to be fetched once and copied to multiple destinations, reducing redundancy in large codebases.
Provides straightforward commands like 'terrafile -f config/Terrafile' for easy module fetching, with clear output logs as demonstrated in the README examples.
Works directly with GitHub repositories as module sources, simplifying dependency management for popular Terraform modules hosted there.
Only supports GitHub repositories, lacking integration with other Git hosts or the Terraform Registry, which restricts its usability in diverse infrastructure setups.
Missing advanced commands like help or version, and tests need updating, as acknowledged in the TODO section of the README, indicating incomplete development.
The config file is named 'Terrafile', which can be confused with the binary itself, a known issue mentioned in the TODO that might cause user errors.