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: March 1, 2021, 9:03 a.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.

111
26
10d
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
6m
MPL-2.0

Terraform PDF Documentation

42
59
11m
n/a

Terragrunt Reference Architecture (upd: May 2020)

200
41
9m
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)

387
28
9m
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 11m
n/a

A set of Terraform modules for configuring production infrastructure with AWS

2.05K
410
9m
MIT

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

208
302
97d
n/a

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

239
170
21d
n/a

Terraform module which creates Auto Scaling resources on AWS

159
270
97d
n/a

Terraform Module to manage Docker Container Registries on AWS ECR

109
80
22d
Apache-2.0

Terraform Module to define an EFS Filesystem (aka NFS)

51
84
13d
Apache-2.0

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

1.68K
1.41K
32d
n/a

Terraform module which creates ELB resources on AWS

79
150
8m
n/a

A terraform module for a highly available Jenkins deployment.

40
26
10d
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

187
108
20d
Apache-2.0

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

118
50
23d
Apache-2.0

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

15
10
9m
MIT

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

72
49
1y 58d
Apache-2.0

Terraform module which creates RDS resources on AWS

414
592
13d
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.

569
194
62d
MIT

Terraform module which creates EC2-VPC security groups on AWS

320
448
108d
n/a

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

153
39
6m
MIT

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

175
93
11d
n/a

Terraform module which creates VPC resources on AWS

1.7K
2.12K
27d
n/a

A terraform module for creating an AKS cluster on Azure.

0
1
2y 6m
n/a

This module quickly installs IIS on an Azure VM

4
1
2y 53d
Apache-2.0

Terraform module creating a MySQL Database on Azure

2
6
2y 6m
MIT

Terraform Module for Azure Redis Service

0
1
2y 8m
MIT

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

6
10
2y 9m
n/a

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

75
4
52d
MIT

Provisions Jenkins on AWS ECS using Terraform

93
68
3y 4m
n/a

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

405
285
13d
Apache-2.0

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

38
5
4y 8m
n/a

Get availability zones for your AWS region/account from Cloudformation

5
2
4y 6m
Apache-2.0

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

177
110
1y 54d
Apache-2.0

An easy way to lookup CoreOS AMIs with terraform

14
7
4y 99d
Apache-2.0

NAT instances for AWS

37
21
9m
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.

68
14
2y 57d
MIT

A Private Terraform Module Registry

207
31
18d
MPL-2.0

Providers

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

15
11
6m
MPL-2.0

Terraform AWS provider

5.48K
4.87K
10d
MPL-2.0

Terraform provider for Azure Resource Manager

2.27K
2.25K
10d
MPL-2.0

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

0
3
7m
MPL-2.0

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

1
1
7m
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/kreuzwerker/docker/latest

131
90
81d
MPL-2.0

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

0
0
53d
MIT

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

0
1
6m
n/a

Terraform Google Cloud Platform provider

1.28K
988
11d
MPL-2.0

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

13
2
74d
MPL-2.0

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

0
1
7m
MPL-2.0

Terraform Provider for healthchecks.io

24
5
90d
Apache-2.0

Terraform Helm provider

696
263
13d
MPL-2.0

Terraform Heroku provider

69
54
76d
MPL-2.0

Terraform on IBM provider https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-getting-started

207
290
4d
MPL-2.0

Terraform provider for Keycloak

224
140
17d
MIT

Terraform Kubernetes provider

877
569
13d
MPL-2.0

A terraform plugin for linode

72
30
1y 10m
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
6
5m
MPL-2.0

Terraform provider to manage pingdom resources

106
68
93d
MIT

Terraform Provider to manage and use secrets

46
3
13d
Apache-2.0

A Spinnaker provider for Terraform

134
41
1y 47d
MIT

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

0
1
4m
MPL-2.0

A Terraform Provider for Stripe

143
26
29d
MPL-2.0

A terraform provider for UptimeRobot

88
36
35d
MPL-2.0

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

26
11
13d
Apache-2.0

Terraform VMware vSphere provider

375
289
31d
MPL-2.0

The Terraform plugin for the Dominos Pizza provider.

667
28
1y 9m
MIT

Terraform provider for Azure DevOps

0
0
1y 66d
MIT

Terraform provider for managing Snowflake accounts

153
89
12d
MIT

Testing

Test Kitchen plugins for testing Terraform configurations

947
127
42d
Apache-2.0

RSpec tests for your Terraform modules

83
10
5y 5m
MIT

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

902
103
21d
MIT

Assists in the enforcement of user-defined standards in Terraform

245
42
2y 6m
GPL-3.0

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

4.89K
716
13d
Apache-2.0

A declaritive test framework for Terraform

75
6
47d
MIT

Tools

Least privilege AWS IAM Terraformer

289
24
19d
Apache-2.0

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

331
17
1y 45d
Apache-2.0

Terraform Pull Request Automation

3.33K
442
11d
n/a

Interactive visualizations of Terraform dependency graphs using d3.js

1.36K
145
1y 55d
MIT

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

2.07K
225
4d
Apache-2.0

This repository contains the instructions for how to use Cloudrail, as well as specific scenarios to test Cloudrail with.

11
4
35d
BSD-3-Clause

Upgrade and version manager for terraform

10
2
1y 109d
MIT

Manage Infrastructure as Code with less pain.

177
12
10d
MIT

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

715
84
11d
MIT

A command line editor for HCL

100
7
30d
MIT

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

270
24
23d
Apache-2.0

Kubernetes YAML to Terraform HCL converter

455
41
7m
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.

346
57
1y 60d
MIT

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

48
1
1y 5m
MIT

pre-commit git hooks to take care of Terraform configurations

860
206
109d
MIT

Generate Terraform code with Python

64
10
109d
MIT

Manages external Terraform modules

32
11
1y 4m
MIT

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

91
5
1y 4m
MIT

A simple Ruby wrapper for invoking terraform commands.

68
26
58d
MIT

A Terraform plan output prettifier

369
17
1y 6m
MIT

Terraform module development tool.

10
2
13d
GPL-3.0

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

415
61
10m
MIT

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

52
5
76d
Apache-2.0

A web dashboard to inspect Terraform States

1.17K
126
12d
Apache-2.0

DSL to generate terraform configuration and run it

35
4
2y 11m
EPL-1.0

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

51
4
1y 15d
MIT

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

81
13
38d
Apache-2.0

Install Terraform modules using a Terrafile

1
1
31d
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
6m
MPL-2.0

Generate documentation from Terraform modules in various output formats

1.84K
248
11d
MIT

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

1.25K
85
55d
Apache-2.0

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

116
11
75d
MIT

Manage multiple provisions of the same Terraform scripts.

12
1
3y 6m
n/a

Shared Rake tasks for managing terraform plans @GINA

3
0
3y 6m
n/a

Ansible dynamic inventory script for parsing Terraform state files

400
116
2y 11m
Apache-2.0

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

4.08K
449
12d
Apache-2.0

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

3.91K
585
1y 8m
MIT

Terraform Visual is an interactive way of visualizing your Terraform plan

177
9
4m
MIT

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

4.75K
595
11d
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.

326
32
1y 82d
Apache-2.0

Terraform Automation and Orchestration Tool (Open Source)

142
14
27d
MPL-2.0

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

1.27K
140
10d
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
5m
MPL-2.0

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

6
1
7m
n/a

Terraform version manager

1.99K
202
23d
MIT

Terraform plan file to JSON

173
57
1y 10m
MIT

A Pluggable Terraform Linter

2.14K
182
12d
MPL-2.0

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

147
22
6m
Apache-2.0

A Terraform state migration tool for GitOps

42
0
5m
MIT
125
31
6m
MIT

A schema inspector for Terraform providers

198
9
87d
MIT

🔒🌍 Security scanner for your Terraform code

2.3K
176
12d
MIT

Update version constraints in your Terraform configurations

138
5
81d
MIT

Rubygem providing rake tasks for running Hashicorp Terraform sanely

6
2
45d
MIT

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

68
14
11d
MIT

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

59
6
1y 14d
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.

259
62
9m
MPL-2.0

Pure Ruby HCL parser

15
7
6y 5m
MIT

Boilerplates

Project scaffolding for Terraform

122
12
6m
MIT

Terraform Enterprise

Terraform Enterprise Command Line Interface

9
3
2y 9m
MPL-2.0

Terraform Enterprise API Ruby Client and Command Line tool

7
0
2y 9m
MPL-2.0

CLI for various operational tasks for Terraform Cloud / Enterprise such as cloning workspaces, migrating workspaces to a different organization, batch updating variables, etc.

3
3
26d
Apache-2.0

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

16
2
1y 5m
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

148
24
83d
GPL-3.0

Language Server Protocol for Terraform

464
34
5m
MIT

basic vim/terraform integration

656
76
81d
ISC

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

275
25
1y 7m
MIT