Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-terraform
Curated list of resources on HashiCorp's Terraform
https://github.com/eric-erki/awesome-terraform
Last synced: 5 days ago
JSON representation
-
Tutorials and Blog Posts
-
Writing Custom Providers
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Writing a Terraform provider - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
- Creating custom terraform providers - Guide for creating custom providers.
-
Beginner Guides
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- Using Terraform for Cloud Deployments - Part 1 - Provisioning an EC2 instance.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
-
How-To
- Tutorial: How to Use Terraform to Deploy OpenStack Workloads - Illustrates how easy it is to use the OpenStack Terraform provider to deploy a web server.
- Zero Downtime Updates with HashiCorp Terraform - Ensuring zero downtime of your infrastructure.
- Easily Deploy A Seneca Microservice to ECS with Wercker and Terraform: Part I - deploy-a-seneca-microservice-to-ecs-with-wercker-and-terraform-part-ii/) & [III](http://chiefy.github.io/easily-deploy-a-seneca-microservice-to-ecs-with-wercker-and-terraform-part-i/) - Illustrates how Terraform can be incorporated into a microservice deployment pipeline.
- Deploying Discourse with Terraform - Shows how Terraform can create a running instance of Discourse on DigitalOcean in one command.
-
Multi-Environment Configuration
- Terraform Design Patterns: the Terrafile - Managing Terraform modules and their versions within Terraform projects with Terrafile.
- Terraform, VPC, and why you want a tfstate file per env - Some gotchas surrounding using Terraform in large projects with multiple environments and how to avoid them.
- Using Pipelines to Manage Environments with Infrastructure as Code - Explains different approaches for building a pipeline to handle infrastructure changes moving from one environment to the next.
-
Azure
- Learning HashiCorp Terraform - Guide for Azure.
- New Terraform Azure Automation Resources - Azure Automation.
- Terraforming Azure PaaS - Deploy PaaS Resources on Azure.
-
Miscellaneous
- Sharing data between Terraform configurations - Illustrates how to use remote state to share data between Terraform configurations.
- The Segment AWS Stack - Shows the behind the scenes of the infrastructure powered by Terraform that solved [The Million Dollar Engineering Problem](https://segment.com/blog/the-million-dollar-eng-problem/) at [Segment](https://segment.com/).
- Top 3 Terraform Testing Strategies for Ultra-Reliable Infrastructure-as-Code
- Two Weeks with Terraform - Some hard-earned experience from using Terraform in the wild, and some operational wisdom.
- Terraform: Beyond the Basics with AWS - Explanation of a demo using Terraform to provision a sample AWS architecture.
-
-
Community
- Terraform Gitter
- Terraform Bug Tracker
- Terraform Community Modules
- Terraform Best Practices - [open-source ebook](https://github.com/antonbabenko/terraform-best-practices)
- Terraform PDF Doc
- Complete Terraform documentation as PDF files (Updated nightly)
- Terraform Module Registry
-
Books
-
Community Modules
-
Miscellaneous
- terraform-aws-modules - Collection of Terraform AWS modules supported by the community (includes official AWS modules).
- terraform-digitalocean-droplet - Terraform module for managing DigitalOcean Droplets and related resources.
- rancher-terraform-digitalocean - Rancher server on digitalocean.
- segmentio/stack - Configures production infrastructure with AWS, Docker, and ECS.
- terraform-aws-alb - Created Application load-balancer on AWS (verified module).
- terraform-aws-atlantis - Creates Terraform configurations for running [Atlantis](https://runatlantis.io) on AWS Fargate. Github, Gitlab and BitBucket are supported.
- terraform-aws-autoscaling - Creates Auto-Scaling Groups and Launch Configurations (verified module).
- terraform-aws-ecr - Manages Docker container registries on AWS ECR.
- terraform-aws-efs - Defines an EFS Filesystem.
- terraform-aws-eks - Creates Elastic Kubernetes Service on AWS (very popular module).
- terraform-aws-elb - Created Elastic load-balancer on AWS (verified module).
- terraform-aws-key-pair - Automatically Generate SSH Key Pairs (Public/Private Keys).
- terraform-aws-postgresql-rds - Creates PostgreSQL on RDS.
- terraform-aws-rds - Creates RDS resources on AWS (verified module).
- terraform-aws-secure-baseline - Set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations.
- terraform-aws-security-group - Creates EC2-VPC security groups on AWS (verified module).
- terraform-aws-ssh-bastion-service - Terraform plan to deploy ssh bastion as a stateless service on AWS.
- terraform-aws-vpc - Creates VPC resources on AWS (verified and very popular module).
- terraform-azurerm-aks - Create AKS resources on Azure.
- terraform-azurerm-iis - Install IIS Server on Azure VM instance.
- terraform-azurerm-mysql - Create MySql Database on Azure.
- terraform-azurerm-redis - Create Redis on Azure.
- terraform-azurerm-sqlserver - Create SQl Server Database on Azure.
- terraform-ecs-jenkins - Provisions Jenkins on AWS ECS using Terraform.
- terraform-google-project-factory - Opinionated Google Cloud Platform project creation and configuration with Shared VPC, IAM, APIs, etc.
- tf_aws_availability_zones_cfn - Gets availability zones for your AWS region/account from Cloudformation.
- tf_aws_bastion_s3_keys - Creates bastion hosts on AWS EC2.
- tf_aws_coreos_ami - Easy way to lookup CoreOS AMIs with terraform.
- tf_aws_nat - NAT instances for AWS.
-
-
Tools
-
Miscellaneous
- geopoiesis - Specialized continuous integration and deployment tool for modern declarative infrastructure provisioning and management.
- modules.tf - Infrastructure as code generator - from visual diagrams created with [Cloudcraft.co](https://cloudcraft.co/app) to Terraform. [Source code](https://github.com/antonbabenko/modules.tf-lambda).
- atlantis - Unified workflow for collaborating on Terraform through GitHub.
- blast radius - Interactive visualizations of Terraform dependency graphs.
- fogg - A tool for eliminating toil in managing terraform repositories.
- iam-policy-json-to-terraform - Small tool to convert an IAM Policy in JSON format into a Terraform aws_iam_policy_document
- k2tf - Kubernetes YAML to Terraform HCL converter.
- json2hcl - Convert JSON to HCL and vice versa.
- para - The missing 3rd-party plugin manager and a "swiss army knife" for Terraform/Terragrunt - just 1 tool to facilitate all workflows.
- pre-commit-terraform - pre-commit git hooks to take care of Terraform configurations (auto-format, validate, update docs).
- pretf - drop-in Terraform wrapper that generates Terraform configuration with Python. See [pretf documentation](https://pretf.readthedocs.io/en/latest/)
- python-terrafile - Systematically manage external modules from Github for use in Terraform.
- prettyplan - Prettyplan ([available online here](https://chrislewisdev.github.io/prettyplan/)) is a small tool to help you view large Terraform plans with ease.
- ruby-terraform - Simple Ruby wrapper for invoking terraform commands.
- scenery - Another Terraform plan output prettifier.
- scratchrelaxtv - Simple Python tool to help with module development - extract vars from `main.tf` to generate `variables.tf` and make module usage stub from `variables.tf`.
- tads-boilerplate - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices.
- tau - Tau is a thin wrapper on top of terraform to manage multiple deployments, dependencies and secrets.
- terraboard - Web dashboard to inspect Terraform States.
- terraboot - DSL to generate a terraform configuration and run it.
- terrafile - Systematically manage external modules from Github for use in Terraform (written in Go).
- terrafile - Systematically manage external modules from Github for use in Terraform (written in Ruby).
- terraform-landscape - Improve Terraform's plan output to be easier to read and understand.
- terraform-plan-parser - Command line utility and JavaScript API for parsing stdout from `terraform plan` and converting it to JSON.
- terraform-provisioner - Tool for managing multiple provisions of the same Terraform scripts.
- terraform-rake-tasks - Shared Rake tasks for managing terraform plans.
- terraformer - CLI tool to generate terraform files from existing infrastructure. Infrastructure to Code. Supported few providers.
- terraforming - Export existing AWS resources to Terraform style (tf, tfstate). Similar to `terraformer`.
- terragrunt - Terragrunt is a thin wrapper for Terraform that supports locking for Terraform state and enforces best practices.
- terrahelp - Command line utility aimed at providing supplementary functionality which can sometimes prove useful when working with Terraform.
- tfenv - Terraform version manager inspired by rbenv.
- tfjson - Utility to read in a Terraform plan file and dump it out in JSON.
- tfscaffold - Framework for controlling multi-environment multi-component terraform-managed AWS infrastructure.
- tfschema - Schema inspector for Terraform providers.
- tfupdate - Update version constraints in your Terraform configurations.
- tfwrapper - Rubygem providing rake tasks for running Hashicorp Terraform sanely.
- xterrafile
-
-
Talks
-
Miscellaneous
- Building Scalable, Repeatable Infrastructure in the Cloud with Terraform - Demonstrates how Terraform enables the practice of Infrastructure as Code by deploying TeamCity in AWS using a hosted PostgreSQL.
- Creating a Google Compute Instance with Terraform - Example of creating a Google Compute Instance with Terraform code.
- Creating a Terraform Provider for Just About Anything - Learn how to contribute to a Terraform provider or create your own from this walkthrough.
- Evolving Your Infrastructure with Terraform - CTO of OpenCredo provides an extensive look at using Terraform in the real-world with the help of some interesting use-cases.
- Going Multi-Cloud with Terraform and Nomad
- How to Build Reusable, Composable, Battle tested Terraform Modules - Yevgeniy Brikman talks about how to write Terraform code so that it is reusable, composable and testable. The presentation focuses on Terraform modules, but also provides a brief and clear explanation of what problem Terraform was created to solve and a short demo of Terraform basics (~39 min, October 2017).
- How to Extend the Terraform Provider List - In this talk, Paul will walk through the creation of a terraform provider.
- Production ChaosMonkey with Terraform - How DigitalOcean uses Terraform to run production integration tests.
- Running a Terraform Environment at Scale - Running Terraform at scale with hundreds of AWS accounts.
- Setup Continuous Integration for a Terraform module - Example of using CI with Kitchen-Terraform to test, tag and publish our Terraform module which creates a Google Compute Instance.
- State of Terraform Providerland - How Terraform providers work and how to write one.
- Terraform At Scale - How Segment uses Terraform.
- Terraform w/ Lee Trout - Focuses on development patterns and how to effectively structure Terraform code.
- Terraforming the Composable World - Integrating Terraform with an on-premise bare metal provisioning.
- Test and verify a Google Compute Instance with Kitchen-Terraform - Example of using Kitchen-Terraform to test our Terraform code that created a Google Compute.
- Untangling Terraform Through Refactoring - How to refactor your Terraform code in a careful way with minimum risk.
- Using Terraform for blue-green deployments on Triton - Video of demo on using Blue green with Terraform.
- Webinar: Multi-Cloud, One Command with Terraform - Provisioning hybrid cloud infrastructure using Terraform.
-
-
Official Resources
-
Private Module Registries
-
Miscellaneous
- anthology - Private Terraform registry implementation as an alternative to the official registry.
- citizen - Private Terraform Module Registry
- terraform-simple-registry - Simple implementation of the Terraform registry protocols.
-
-
Providers
-
Miscellaneous
- terraform-provider-healthchecksio - Provider to manage healthchecks.io resources.
- terraform-provider-keycloak - Provider to manage the settings of your [Keycloak](https://www.keycloak.org/) identity provider server.
- terraform-provider-linode - Plugin for Linode.
- terraform-provider-pingdom - Provider to manage Pingdom resources.
- terraform-provider-spinnaker - Manage [Spinnaker](https://www.spinnaker.io/) applications and pipelines with Terraform.
- terraform-provider-stripe - Provider for Stripe.
- terraform-provider-uptimerobot - Provider to manage uptimerobot resources.
- terraform-provider-vaulted - Encrypted HashiCorp Vault secrets via Terraform that can be stored in SCM such as Git.
- terraform-provider-azuredevops - Provider for Azure DevOps (VSTS).
-
-
Testing
-
Miscellaneous
- kitchen-terraform - Provides a set of Test Kitchen plugins which enable a system to use Test Kitchen to converge a Terraform configuration and verify the resulting Terraform state with InSpec controls.
- rspec-terraform - RSpec tests for your Terraform modules.
- terraform_validate - Assists in the enforcement of user-defined standards in Terraform.
- terratest - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
-
-
Libraries
-
Terraform Enterprise
-
Miscellaneous
- terraform-enterprise-cli - Terraform Enterprise Command Line Interface.
- terraform-enterprise-client - Terraform Enterprise API Ruby Client and Command Line tool.
-
-
Editor Plugins
-
Miscellaneous
-
Programming Languages
Categories
Sub Categories
Keywords
terraform
45
aws
19
terraform-module
11
devops
10
terraform-modules
8
golang
8
hcl
8
go
7
infrastructure-as-code
7
ruby
4
terraform-provider
3
python
3
hcl2
3
hashicorp
3
kubernetes
3
bash
3
docker
3
ruby-gem
2
rubygem
2
devops-tools
2
rds
2
terragrunt
2
cli
2
hashicorp-terraform
2
aws-vpc
2
automation
2
registry
2
vim
2
terrafile
2
atlantis
2
terraform-docs
2
opentofu
2
vpc
1
security-group
1
nlb
1
azure
1
azurerm
1
db-initialize
1
db-seed
1
sqlserver
1
cft-terraform
1
operations
1
network-load-balancer
1
bastion
1
ssh
1
application-load-balancer
1
alb
1
rancher
1
luna
1
cloud-init
1