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: Oct. 24, 2021, 12:07 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
8m
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
1y 52d
MPL-2.0

Terraform PDF Documentation

42
59
1y 6m
n/a

Terragrunt Reference Architecture (upd: May 2020)

200
41
1y 5m
MIT

Books

Beginner Guides

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

AWS

AWS Lambda using Terraform., an Introductory Cookbook

1.08K
81
5m
MIT

Miscellaneous

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

387
28
1y 4m
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
4y 7m
n/a

A set of Terraform modules for configuring production infrastructure with AWS

2.05K
410
1y 4m
MIT

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

208
302
11m
n/a

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

239
170
8m
n/a

Terraform module which creates Auto Scaling resources on AWS

159
270
11m
n/a

Terraform Module to manage Docker Container Registries on AWS ECR

109
80
8m
Apache-2.0

Terraform Module to define an EFS Filesystem (aka NFS)

51
84
8m
Apache-2.0

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

1.68K
1.41K
8m
n/a

Terraform module which creates ELB resources on AWS

79
150
1y 4m
n/a

A terraform module for a highly available Jenkins deployment.

40
26
8m
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
8m
Apache-2.0

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

118
50
8m
Apache-2.0

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

15
10
1y 5m
MIT

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

72
49
1y 9m
Apache-2.0

Terraform module which creates RDS resources on AWS

414
592
8m
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
9m
MIT

Terraform module which creates EC2-VPC security groups on AWS

320
448
11m
n/a

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

153
39
1y 63d
MIT

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

175
93
8m
n/a

Terraform module which creates VPC resources on AWS

1.7K
2.12K
8m
n/a

A terraform module for creating an AKS cluster on Azure.

0
1
3y 61d
n/a

This module quickly installs IIS on an Azure VM

4
1
2y 9m
Apache-2.0

Terraform module creating a MySQL Database on Azure

2
6
3y 73d
MIT

Terraform Module for Azure Redis Service

0
1
3y 4m
MIT

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

6
10
3y 5m
n/a

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

75
4
9m
MIT

Provisions Jenkins on AWS ECS using Terraform

93
68
4y 17d
n/a

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

405
285
8m
Apache-2.0

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

38
5
5y 4m
n/a

Get availability zones for your AWS region/account from Cloudformation

5
2
5y 55d
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 9m
Apache-2.0

An easy way to lookup CoreOS AMIs with terraform

14
7
4y 11m
Apache-2.0

NAT instances for AWS

37
21
1y 5m
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 9m
MIT

A Private Terraform Module Registry

207
31
8m
MPL-2.0

Providers

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

15
11
1y 61d
MPL-2.0

Terraform AWS provider

5.48K
4.87K
8m
MPL-2.0

Terraform provider for Azure Resource Manager

2.27K
2.25K
8m
MPL-2.0

Terraform provider for Azure DevOps

0
0
1y 10m
MIT

Terraform provider for Buildkite

29
18
4m
MIT

๐ŸŒ A Terraform provider for the Checkly monitoring service

18
1
4m
MIT

Terraform Datadog provider

229
230
101d
n/a

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

1
1
1y 102d
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
10m
MPL-2.0

The Terraform plugin for the Dominos Pizza provider.

667
28
2y 5m
MIT

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

0
0
9m
MIT

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

0
1
1y 73d
n/a

Terraform Google Cloud Platform provider

1.28K
988
8m
MPL-2.0

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

13
2
10m
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
1y 106d
MPL-2.0

Terraform Provider for healthchecks.io

24
5
10m
Apache-2.0

Terraform Helm provider

696
263
8m
MPL-2.0

Terraform Heroku provider

69
54
10m
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
8m
MPL-2.0

Kubernetes Terraform provider with support for raw manifests

123
26
4m
MIT

Terraform provider for Keycloak

224
140
8m
MIT

Terraform Kubernetes provider

877
569
8m
MPL-2.0

A terraform plugin for linode

72
30
2y 6m
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
1y 43d
MPL-2.0

Terraform provider to manage pingdom resources

106
68
11m
MIT

Terraform Rancher2 provider

139
95
101d
MPL-2.0

Terraform Provider to manage and use secrets

46
3
8m
Apache-2.0

Terraform provider for managing Snowflake accounts

153
89
8m
MIT

A Spinnaker provider for Terraform

134
41
1y 9m
MIT

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

0
1
1y 16d
MPL-2.0

A Terraform Provider for Stripe

143
26
8m
MPL-2.0

Terraform UCloud provider

50
15
4m
MPL-2.0

A terraform provider for UptimeRobot

88
36
9m
MPL-2.0

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

26
11
8m
Apache-2.0

Terraform VMware vSphere provider

375
289
8m
MPL-2.0

Testing

Test Kitchen plugins for testing Terraform configurations

947
127
9m
Apache-2.0

RSpec tests for your Terraform modules

83
10
6y 46d
MIT

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

902
103
8m
MIT

Assists in the enforcement of user-defined standards in Terraform

245
42
3y 57d
GPL-3.0

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

4.89K
716
8m
Apache-2.0

A declaritive test framework for Terraform

75
6
9m
MIT

Tools

Least privilege AWS IAM Terraformer

289
24
8m
Apache-2.0

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

331
17
1y 9m
Apache-2.0

Terraform Pull Request Automation

3.33K
442
8m
n/a

Interactive visualizations of Terraform dependency graphs using d3.js

1.36K
145
1y 9m
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
8m
Apache-2.0

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

11
4
9m
BSD-3-Clause

Upgrade and version manager for terraform

10
2
1y 11m
MIT

Manage Infrastructure as Code with less pain.

177
12
8m
MIT

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

715
84
8m
MIT

Gaia is a Terraform ๐ŸŒ UI for your modules, and self-service infrastructure ๐Ÿ‘จโ€๐Ÿ’ป

107
18
102d
MPL-2.0

A command line editor for HCL

100
7
8m
MIT

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

270
24
8m
Apache-2.0

Kubernetes YAML to Terraform HCL converter

455
41
1y 86d
MPL-2.0

Find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle of your infrastructure-as-code with KICS by Checkmarx.

477
58
4m
n/a

Cloud cost estimates for Terraform in your CLI and pull requests ๐Ÿ’ฐ๐Ÿ“‰

3.14K
132
4m
Apache-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 9m
MIT

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

48
1
2y 46d
MIT

pre-commit git hooks to take care of Terraform configurations

860
206
11m
MIT

Generate Terraform code with Python

64
10
11m
MIT

Manages external Terraform modules

32
11
2y 11d
MIT

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

91
5
2y 17d
MIT

Regula checks Terraform for AWS, Azure and GCP security and CIS compliance using Open Policy Agent/Rego

308
38
10m
Apache-2.0

A simple Ruby wrapper for invoking terraform commands.

68
26
9m
MIT

A Terraform plan output prettifier

369
17
2y 56d
MIT

Terraform module development tool.

10
2
8m
GPL-3.0

Lightweight static analyzer for several programming languages

184
5
30d
AGPL-3.0

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

415
61
1y 6m
MIT

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

52
5
10m
Apache-2.0

A web dashboard to inspect Terraform States

1.17K
126
8m
Apache-2.0

DSL to generate terraform configuration and run it

35
4
3y 7m
EPL-1.0

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

51
4
1y 8m
MIT

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

81
13
9m
Apache-2.0

Install Terraform modules using a Terrafile

1
1
8m
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
1y 52d
MPL-2.0

Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform

1.4K
99
9m
MPL-2.0

Generate documentation from Terraform modules in various output formats

1.84K
248
8m
MIT

Terraform graph beautifier

67
3
10m
Apache-2.0

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

1.25K
85
9m
Apache-2.0

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

116
11
10m
MIT

Manage multiple provisions of the same Terraform scripts.

12
1
4y 80d
n/a

Shared Rake tasks for managing terraform plans @GINA

3
0
4y 68d
n/a

Ansible dynamic inventory script for parsing Terraform state files

400
116
3y 6m
Apache-2.0

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

4.08K
449
8m
Apache-2.0

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

3.91K
585
2y 112d
MIT

Apply\Destory Terraform modules via a simple REST API endpoint.

94
22
73d
LGPL-3.0

Terraform Visual is an interactive way of visualizing your Terraform plan

177
9
1y 15d
MIT

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

4.75K
595
8m
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 10m
Apache-2.0

Terraform Automation and Orchestration Tool (Open Source)

142
14
8m
MPL-2.0

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

1.27K
140
8m
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
1y 37d
MPL-2.0

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

6
1
1y 101d
n/a

๐Ÿ”’๐ŸŒ Security scanner for your Terraform code

1.88K
125
11m
MIT

Terraform version manager

1.99K
202
8m
MIT

Terraform plan file to JSON

173
57
2y 6m
MIT

A Pluggable Terraform Linter

2.14K
182
8m
MPL-2.0

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

147
22
1y 73d
Apache-2.0

A Terraform state migration tool for GitOps

42
0
1y 37d
MIT
125
31
1y 64d
MIT

A schema inspector for Terraform providers

198
9
10m
MIT

Update version constraints in your Terraform configurations

138
5
10m
MIT

Rubygem providing rake tasks for running Hashicorp Terraform sanely

6
2
9m
MIT

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

68
14
8m
MIT

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

59
6
1y 8m
MIT

Extensible auto-tagger for your IaC files. The ultimate way to link entities in the cloud back to the codified resource which created it.

216
17
4m
Apache-2.0

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
1y 4m
MPL-2.0

Pure Ruby HCL parser

15
7
7y 35d
MIT

Boilerplates

Project scaffolding for Terraform

122
12
1y 66d
MIT

Terraform Enterprise

Terraform Enterprise Command Line Interface

9
3
3y 5m
MPL-2.0

Terraform Enterprise API Ruby Client and Command Line tool

7
0
3y 5m
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
8m
Apache-2.0

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

16
2
2y 32d
n/a

Videos

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

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.

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.

Editor Plugins

Major mode of Terraform configuration file

148
24
10m
GPL-3.0

Language Server Protocol for Terraform

464
34
1y 34d
MIT

basic vim/terraform integration

656
76
10m
ISC

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

275
25
2y 89d
MIT