All Projects → coretech → Terrafile

coretech / Terrafile

Licence: apache-2.0
A binary written in Go to systematically manage external modules from Github for use in Terraform

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Terrafile

Terraform Provisioner Inspec
Terraform InSpec Provisioner Plugin
Stars: ✭ 69 (-16.87%)
Mutual labels:  terraform
Terraform Aws Couchbase
Reusable infrastructure modules for running Couchbase on AWS
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Terraform
Terraform - Beginners | Intermediate | Advanced
Stars: ✭ 77 (-7.23%)
Mutual labels:  terraform
Terraform Aws Vpc Peering
Terraform module to create a peering connection between two VPCs in the same AWS account.
Stars: ✭ 70 (-15.66%)
Mutual labels:  terraform
Terraenv
Terraform & Terragrunt Version Manager
Stars: ✭ 72 (-13.25%)
Mutual labels:  terraform
Terraform Provider Vcd
Terraform VMware vCloud Director provider
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Terraform Provider Credstash
Terraform provider for secrets stored with credstash
Stars: ✭ 68 (-18.07%)
Mutual labels:  terraform
Mikado
🤖💨Mikado helps managing your AWS infrastructure for WordPress sites by defining an out-of-box, highly available, easy-to-deploy setup
Stars: ✭ 80 (-3.61%)
Mutual labels:  terraform
Gitops Terraform Jenkins
GitOps Workflow with Jenkins and Terraform
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Terraboard
🌍 📋 A web dashboard to inspect Terraform States
Stars: ✭ 1,192 (+1336.14%)
Mutual labels:  terraform
Terrastack
This project is archived, but the idea of Terrastack lives on in the Terraform CDK. - https://github.com/hashicorp/terraform-cdk
Stars: ✭ 71 (-14.46%)
Mutual labels:  terraform
Tf Jitsi
5-minute self-hosted Jitsi on AWS
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Tf aws elasticsearch
Terraform module which creates AWS Elasticsearch resources
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Terraform Infra As Code Coverage Badges
Terraform / infrastructure-as-code coverage badges - how much of your AWS infrastructure is managed by Terraform?
Stars: ✭ 69 (-16.87%)
Mutual labels:  terraform
Terraform Wrapper
Claranet France Terraform Wrapper
Stars: ✭ 78 (-6.02%)
Mutual labels:  terraform
Terraform Aws Airflow
Terraform module to deploy an Apache Airflow cluster on AWS, backed by RDS PostgreSQL for metadata, S3 for logs and SQS as message broker with CeleryExecutor
Stars: ✭ 69 (-16.87%)
Mutual labels:  terraform
Terraform Aws Elasticache Redis
Terraform module to provision an ElastiCache Redis Cluster
Stars: ✭ 73 (-12.05%)
Mutual labels:  terraform
Terraform Eks
Terraform for AWS EKS
Stars: ✭ 82 (-1.2%)
Mutual labels:  terraform
Terraform Ebs Attachmentizer
Convert ebs_block_device blocks in aws_instance resource to aws_ebs_volume and aws_volume_attachment resources
Stars: ✭ 79 (-4.82%)
Mutual labels:  terraform
Dd2tf
Export DataDog configuration to Terraform
Stars: ✭ 74 (-10.84%)
Mutual labels:  terraform

Terrafile Build Status

Terrafile is a binary written in Go to systematically manage external modules from Github for use in Terraform. See this article for more information on how it was introduced in a Ruby rake task.

How to install

macOS

brew tap coretech/terrafile && brew install terrafile

Linux

Download your preferred flavor from the releases page and install manually.

For example:

curl -L https://github.com/coretech/terrafile/releases/download/v{VERSION}/terrafile_{VERSION}_Linux_x86_64.tar.gz | tar xz -C /usr/local/bin

How to use

Terrafile expects a file named Terrafile which will contain your terraform module dependencies in a yaml like format.

An example Terrafile:

tf-aws-vpc:
    source:  "[email protected]:terraform-aws-modules/terraform-aws-vpc"
    version: "v1.46.0"
tf-aws-vpc-experimental:
    source:  "[email protected]:terraform-aws-modules/terraform-aws-vpc"
    version: "master"

Terrafile config file in current directory and modules exported to ./vendor/modules

$ terrafile
INFO[0000] [*] Checking out v1.46.0 of [email protected]:terraform-aws-modules/terraform-aws-vpc  
INFO[0000] [*] Checking out master of [email protected]:terraform-aws-modules/terraform-aws-vpc  

Terrafile config file in custom directory

$ terrafile -f config/Terrafile
INFO[0000] [*] Checking out v1.46.0 of [email protected]:terraform-aws-modules/terraform-aws-vpc  
INFO[0000] [*] Checking out master of [email protected]:terraform-aws-modules/terraform-aws-vpc  

Terraform modules exported to custom directory

$ terrafile -p custom_directory
INFO[0000] [*] Checking out master of [email protected]:terraform-aws-modules/terraform-aws-vpc  
INFO[0001] [*] Checking out v1.46.0 of [email protected]:terraform-aws-modules/terraform-aws-vpc  

TODO

  • Break out the main logic into seperate commands (e.g. version, help, run)
  • Update tests to include unit tests for broken out commands
  • Add coverage tool and badge
  • May be worth renaming Terrafile config file to something that won't be misinterpreted as the binary
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].