User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Terraform

Curated list of resources on HashiCorp's Terraform

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Dec. 5, 2020, 3:12 p.m.

Thank you shuaibiyy & contributors
View Topic on GitHub:
shuaibiyy/awesome-terraform

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Official Resources

Community

Complete Terraform documentation (core + all official providers) as PDF files. Updating nightly.

95
24
2d
MIT

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

23.61K
6.04K
94d
MPL-2.0

Terraform PDF Documentation

41
53
8m
n/a

Terragrunt Reference Architecture (upd: May 2020)

185
33
7m
MIT

Books

Ashley Davis - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster.

open-source ebook](https://github.com/antonbabenko/terraform-best-practices)

Beginner Guides

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.

Writing Custom Providers

How-To

Shows how Terraform can create a running instance of Discourse on DigitalOcean in one command.

Looks at how to use Terraform to spin up the required AWS infrastructure for running a Django app on ECS.

II](http://chiefy.github.io/easily-deploy-a-seneca-microservice-to-ecs-with-wercker-and-terraform-part-ii/) & III - Illustrates how Terraform can be incorporated into a microservice deployment pipeline.

Terraform code to deploy a highly available VPN between AWS and Azure.

How 1Password migrated from CloudFormation to Terraform.

Illustrates how easy it is to use the OpenStack Terraform provider to deploy a web server.

Multi-Environment Configuration

Managing Terraform modules and their versions within Terraform projects with Terrafile.

Some gotchas surrounding using Terraform in large projects with multiple environments and how to avoid them.

Explains different approaches for building a pipeline to handle infrastructure changes moving from one environment to the next.

Azure

Miscellaneous

Anonymized, secure, and free Terraform cost estimation based on Terraform plan (0.12+) or Terraform state (any version)

335
24
6m
Apache-2.0

Illustrates how to use remote state to share data between Terraform configurations.

Shows the behind the scenes of the infrastructure powered by Terraform that solved The Million Dollar Engineering Problem at Segment.

Some hard-earned experience from using Terraform in the wild, and some operational wisdom.

Explanation of a demo using Terraform to provision a sample AWS architecture.

Community Modules

Terraform module for a rancher server on digitalocean.

21
0
3y 8m
n/a

A set of Terraform modules for configuring production infrastructure with AWS

2.04K
407
6m
MIT

Terraform module to create an AWS Application/Network Load Balancer (ALB/NLB) and associated resources

190
286
11d
n/a

Terraform configurations for running Atlantis on AWS Fargate. Github, Gitlab and BitBucket are supported

220
157
22d
n/a

Terraform module which creates Auto Scaling resources on AWS

148
253
11d
n/a

Terraform Module to manage Docker Container Registries on AWS ECR

97
79
36d
Apache-2.0

Terraform Module to define an EFS Filesystem (aka NFS)

46
81
75d
Apache-2.0

Terraform module to create an Elastic Kubernetes (EKS) cluster and associated worker instances on AWS

1.55K
1.24K
23d
n/a

Terraform module which creates ELB resources on AWS

74
139
5m
n/a

A terraform module for a highly available Jenkins deployment.

41
26
73d
Apache-2.0

Terraform module to build Docker image with Jenkins, save it to an ECR repo, and deploy to Elastic Beanstalk running Docker stack

178
106
4m
Apache-2.0

Terraform Module to Automatically Generate SSH Key Pairs (Public/Private Keys)

112
49
18d
Apache-2.0

A terraform module to define a lambda function which source files are automatically built and packaged for lambda deployment.

15
10
6m
MIT

A Terraform module to create an Amazon Web Services (AWS) PostgreSQL Relational Database Server (RDS).

65
48
11m
Apache-2.0

Terraform module which creates RDS resources on AWS

384
540
51d
n/a

Terraform module to set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations and AWS Foundational Security Best Practices.

509
184
12d
MIT

Terraform module which creates EC2-VPC security groups on AWS

300
415
22d
n/a

Terraform plan to deploy ssh bastion as a containerised, stateless service on AWS with IAM based authentication

148
37
105d
MIT

Terraform module, which takes care of a lot of AWS Lambda/serverless tasks (build dependencies, packages, updates, deployments) in countless combinations

112
62
12d
n/a

Terraform module which creates VPC resources on AWS

1.51K
1.98K
31d
n/a

A terraform module for creating an AKS cluster on Azure.

0
1
2y 103d
n/a

This module quickly installs IIS on an Azure VM

4
1
1y 11m
Apache-2.0

Terraform module creating a MySQL Database on Azure

2
6
2y 115d
MIT

Terraform Module for Azure Redis Service

0
1
2y 5m
MIT

Terraform module for creating an Azure SQL Server Database and initialize it with a SQL script.

5
8
2y 6m
n/a

Terraform module to create a responsive Maintenance Page using Cloudflare Workers.

54
1
94d
MIT

Provisions Jenkins on AWS ECS using Terraform

94
68
3y 59d
n/a

Opinionated Google Cloud Platform project creation and configuration with Shared VPC, IAM, APIs, etc.

365
263
11d
Apache-2.0

Terraform template to create static website on AWS S3 & Cloudfront based on variables

37
5
4y 5m
n/a

Get availability zones for your AWS region/account from Cloudformation

4
1
4y 97d
Apache-2.0

A Terraform module for creating bastion host on AWS EC2 and populate its ~/.ssh/authorized_keys with public keys from bucket

176
109
11m
Apache-2.0

An easy way to lookup CoreOS AMIs with terraform

13
6
4y 13d
Apache-2.0

NAT instances for AWS

35
20
6m
Apache-2.0

Terraform module for managing DigitalOcean Droplets and related resources.

Private Module Registries

A private Terraform registry implementation as an alternative to the official registry.

63
14
1y 11m
MIT

A Private Terraform Module Registry

177
30
21d
MPL-2.0

Providers

This has moved to https://github.com/aliyun/terraform-provider-alicloud

12
8
103d
MPL-2.0

Terraform AWS provider

5.08K
4.65K
2d
MPL-2.0

Terraform provider for Azure Resource Manager

2.13K
2.11K
3d
MPL-2.0

This repository has moved to https://github.com/DataDog/terraform-provider-datadog

0
3
4m
MPL-2.0

This provider has moved to https://github.com/digitalocean/terraform-provider-digitalocean

1
0
4m
MPL-2.0

Terraform Docker provider

130
90
4d
MPL-2.0

Terraform GitHub provider

258
210
4d
MIT

This has moved to https://github.com/gitlabhq/terraform-provider-gitlab

0
1
115d
n/a

Terraform Google Cloud Platform provider

1.22K
934
3d
MPL-2.0

Terraform GraphQL plugin to automate the full life-cycle of graphql api resources.

9
2
67d
MPL-2.0

This repository has moved to Hetzner Cloud, you can find their version here: https://github.com/hetznercloud/terraform-provider-hcloud

0
0
4m
MPL-2.0

Terraform Provider for healthchecks.io

24
5
4d
Apache-2.0

Terraform Helm provider

659
250
4d
MPL-2.0

Terraform IBM provider https://cloud.ibm.com/docs/terraform?topic=terraform-tf-provider

194
261
2d
MPL-2.0

Terraform provider for Keycloak

200
122
4d
MIT

Terraform Kubernetes provider

830
538
10d
MPL-2.0

A terraform plugin for linode

72
30
1y 8m
MPL-2.0

As part of our introduction to self-service publishing in the Terraform Registry, this copy of the provider has been archived, and ownership has been transferred to active maintainers in the community. Please see the new location on the Terraform Registry: https://registry.terraform.io/providers/terraform-provider-openstack/openstack

0
5
85d
MPL-2.0

Terraform provider to manage pingdom resources

102
62
7d
MIT

Terraform provider for the SecretHub Secrets Management API

44
3
5d
Apache-2.0

A Spinnaker provider for Terraform

133
41
10m
MIT

Moved to https://github.com/spotinst/terraform-provider-spotinst

0
0
58d
MPL-2.0

A Terraform Provider for Stripe

133
24
19d
MPL-2.0

A terraform provider for UptimeRobot

84
34
37d
MPL-2.0

Encrypted HashiCorp Vault secrets via Terraform that can be stored in SCM such as Git

26
10
5m
Apache-2.0

Terraform VMware vSphere provider

347
275
33d
MPL-2.0

The Terraform plugin for the Dominos Pizza provider.

639
24
1y 7m
MIT

Terraform provider for Azure DevOps

0
0
11m
MIT

Terraform provider for managing Snowflake accounts

131
76
3d
MIT

Testing

Test Kitchen plugins for testing Terraform configurations

925
123
60d
Apache-2.0

RSpec tests for your Terraform modules

81
10
5y 88d
MIT

a lightweight, security focused, BDD test framework against terraform.

832
99
23d
MIT

Assists in the enforcement of user-defined standards in Terraform

240
41
2y 99d
GPL-3.0

Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.

4.52K
651
3d
Apache-2.0

Tools

Least privilege AWS IAM Terraformer

241
20
6d
Apache-2.0

Astro is a tool for managing multiple Terraform executions as a single command

331
17
10m
Apache-2.0

Terraform Pull Request Automation

3.14K
414
3d
n/a

Interactive visualizations of Terraform dependency graphs using d3.js

1.27K
134
11m
MIT

Prevent cloud misconfigurations during build-time for Terraform, Cloudformation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.

1.67K
168
3d
Apache-2.0

Upgrade and version manager for terraform

10
2
1y 23d
MIT

Manage Infrastructure as Code with less pain.

169
12
15d
MIT

Generate CloudFormation / Terraform / Troposphere templates from your existing AWS resources.

581
74
5d
MIT

A command line editor for HCL

90
6
38d
MIT

Small tool to convert an IAM Policy in JSON format into a Terraform aws_iam_policy_document

223
23
4m
Apache-2.0

Kubernetes YAML to Terraform HCL converter

409
34
4m
MPL-2.0

Convert JSON to HCL, and vice versa. We don't use json2hcl anymore ourselves, so we can't invest time into it. However, we're still welcoming PRs.

332
55
11m
MIT

Para - community plugin manager and a "swiss army knife" for Terraform/Terragrunt - just 1 tool to facilitate all your workflows.

47
1
1y 88d
MIT

pre-commit git hooks to take care of Terraform configurations

782
192
23d
MIT

Generate Terraform code with Python

60
10
23d
MIT

Manages external Terraform modules

32
10
1y 53d
MIT

A formatting tool to help make large Terraform plans easier to review.

85
5
1y 59d
MIT

A simple Ruby wrapper for invoking terraform commands.

66
25
11d
MIT

A Terraform plan output prettifier

361
17
1y 98d
MIT

Terraform module development tool.

9
2
4d
GPL-3.0

Terraform + Ansible + Docker Swarm boilerplate = DevOps on | Infrastructure as Code

384
52
7m
MIT

Tau is a thin wrapper on top of terraform to manage multiple deployments, dependencies and secrets.

37
5
3d
Apache-2.0

A web dashboard to inspect Terraform States

1.1K
122
15d
Apache-2.0

DSL to generate terraform configuration and run it

35
4
2y 8m
EPL-1.0

A terraform http backend written in python, deployed on aws lambda.

48
3
9m
MIT

A binary written in Go to systematically manage external modules from Github for use in Terraform

78
12
1y 6m
Apache-2.0

Install Terraform modules using a Terrafile

1
1
7m
MIT

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

23.61K
6.04K
94d
MPL-2.0

Generate documentation from Terraform modules in various output formats

1.71K
225
44d
MIT

Improve Terraform's plan output to be easier to read and understand

1.22K
84
5m
Apache-2.0

Command line utility and JavaScript API for parsing stdout from "terraform plan" and converting it to JSON.

105
11
4d
MIT

Manage multiple provisions of the same Terraform scripts.

12
1
3y 4m
n/a

Shared Rake tasks for managing terraform plans @GINA

3
0
3y 110d
n/a

Ansible dynamic inventory script for parsing Terraform state files

396
115
2y 8m
Apache-2.0

CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code

3.77K
403
3d
Apache-2.0

Export existing AWS resources to Terraform style (tf, tfstate)

3.81K
567
1y 5m
MIT

Terraform Visual is an interactive way of visualizing your Terraform plan

164
9
57d
MIT

Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.

4.54K
571
10d
MIT

Terraform helper. Terrahelp is as a command line utility written in Go and is aimed at providing supplementary functionality which can sometimes prove useful when working with Terraform.

321
30
12m
Apache-2.0

Terraform Automation and Orchestration Tool (Open Source)

133
13
11d
MPL-2.0

Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.

738
96
3d
Apache-2.0

Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources

259
3
79d
MPL-2.0

A Pre-terraform routine that speedups terraform modules download for bulky blueprints.

6
1
4m
n/a

Terraform version manager

1.73K
186
5m
MIT

Terraform plan file to JSON

173
57
1y 7m
MIT

TFLint is a Terraform linter focused on possible errors, best practices, etc. (Terraform >= 0.12)

1.98K
167
4d
MPL-2.0

Terraform utility to mask select output from terraform plan and terraform apply

135
21
115d
Apache-2.0

A Terraform state migration tool for GitOps

42
0
79d
MIT
125
31
106d
MIT

A schema inspector for Terraform providers

189
9
54d
MIT

🔒🌍 Security scanner for your Terraform code

1.97K
136
3d
MIT

Update version constraints in your Terraform configurations

118
5
42d
MIT

Rubygem providing rake tasks for running Hashicorp Terraform sanely

6
2
78d
MIT

A Terragrunt frontend that allow execution of Terragrunt/Terraform through Docker

66
14
29d
MIT

XTerrafile is a Go tool for managing vendored modules and formulas using a YAML file

58
5
9m
MIT

Infrastructure as code generator - from visual diagrams created with Cloudcraft.co to Terraform. Source code.

serverless.tf is an opinionated open-source framework for developing, building, deploying, and securing serverless applications and infrastructures on AWS using Terraform. Read more.

Libraries

HCL is a configuration language. pyhcl is a python parser for it.

253
62
6m
MPL-2.0

Pure Ruby HCL parser

14
7
6y 77d
MIT

Boilerplates

Project scaffolding for Terraform

109
12
108d
MIT

Terraform Enterprise

Terraform Enterprise Command Line Interface

9
3
2y 6m
MPL-2.0

Terraform Enterprise API Ruby Client and Command Line tool

6
0
2y 6m
MPL-2.0

Script for migrating Terraform Enterprise environments from Legacy to new version of Terraform Enterprise

3
2
31d
Apache-2.0

Simple shell for exploring remote terraform enterprise state, with autocomplete.

15
2
1y 74d
n/a

Talks

Demonstrates how Terraform enables the practice of Infrastructure as Code by deploying TeamCity in AWS using a hosted PostgreSQL.

Example of creating a Google Compute Instance with Terraform code.

Learn how to contribute to a Terraform provider or create your own from this walkthrough.

CTO of OpenCredo provides an extensive look at using Terraform in the real-world with the help of some interesting use-cases.

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

In this talk, Paul will walk through the creation of a terraform provider.

Mitchell Hashimoto shows how Terraform can be used to deploy and scale containerized workloads.

How DigitalOcean uses Terraform to run production integration tests.

Running Terraform at scale with hundreds of AWS accounts.

Example of using CI with Kitchen-Terraform to test, tag and publish our Terraform module which creates a Google Compute Instance.

How Terraform providers work and how to write one.

Focuses on development patterns and how to effectively structure Terraform code.

Integrating Terraform with an on-premise bare metal provisioning.

Example of using Kitchen-Terraform to test our Terraform code that created a Google Compute.

How to refactor your Terraform code in a careful way with minimum risk.

Provisioning hybrid cloud infrastructure using Terraform.

Editor Plugins

Major mode of Terraform configuration file

143
24
16d
GPL-3.0

Language Server Protocol for Terraform

442
34
76d
MIT

basic vim/terraform integration

630
72
21d
ISC

A (Neo)Vim Autocompletion and linter for Terraform, a HashiCorp tool

269
24
1y 4m
MIT