Terraform Learning Path

Everything Everywhere All as Code

“Everything as Code” Definition Everything as Code is a philosophy for managing IT infrastructure where all components of infrastructure are created, managed, and deleted using code. This applies to container definitions, cloud infrastructure, on-premise server...

read more

Open Source driftctl Alternatives

What is driftctl? driftctl is an OSS CLI tool that enables users to identify Terraform drift as well as unmanaged resources within a cloud environment. It is a quite popular tool and has collected over two thousand stars on GitHub. Why Would We Want a Replacement?...

read more

Why We Are Not Supporting OpenTF

Background On August 10, HashiCorp changed the license to their previously “Open Source” projects to a Business Source License (BSL), making them now “source available” for all future releases. We discusssed in detail reasons and motivations for this change here. On...

read more

Terraform Drift: The Bad, the Ugly and the Black Swan

What is Terraform Drift? What problems does it cause? And how can we fix it? So you’re using an Infrastructure as Code (IAC) solution like HashiCorp’s Terraform. You have at least some cloud resources deployed via Terraform. You’ve noticed that sometimes when you go...

read more

The Reese’s Cup of DevOps: Terraform + GitOps

Two definitions What is GitOps? We like the definition that GitLab gives for GitOps: “GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them...

read more

Managing Terraform Modules in a Monorepo

Motivation Our organization uses a Monorepo. Chances are, if you have found this article, you use a Monorepo as well. While building out our cloud infrastructure modules in Terraform, we realized that we wanted to preserve our Monorepo, while at the same time build...

read more

Terraform 1.5.x’s Import Block

Motivation It is a common occurence for DevOps teams without rock-solid best practice usage of Terraform: A user or application has created a cloud resource through the AWS console or the gcloud CLI, and now we want to bring that resource under Terraform control. For...

read more

Terraform Variable Management

We've previously discussed the syntax for creating variables within Terraform configuration. While this helps us with syntax, it leaves open questions about how variable values are actually passed into our Terraform workflow. CLI Specification When running terraform...

read more

What is Terraform? How Does Terraform Work?

What is Terraform? Terraform is the leading Infrastructure as Code (IaC) tool (see our article for a review of IaC). It is fully open-sourced, and managed by HashiCorp. Over 1000+ different infrastructure providers can be controlled via Terraform, and new providers...

read more

Quickstart: Writing Terraform

In this article we discuss how the basics of writing organized Terraform infrastructure configuration. Specifying Terraform's Configuration We recommend keeping a given Terraform module's requirements within their own versions.tf file. Within versions.tf, you can...

read more

5 Ways to Run Your Terraform Workflows

Once you have some Terraform configuration written within a directory, you can run CLI commands to provision your infrastructure with Terraform. The combination of these commands to provision, change, and delete remote cloud resources via Terraform is referred to as a...

read more

What is Infrastructure as Code? Why Should We Use It?

Cloud Computing: Revolutionary Innovation Cloud computing was, and is revolutionary for a lot of organizations. It enables virtually infinite scalability, spending on IT infrastructure on a pay-as-you-go basis, and abstracts away the need to manage physical servers...

read more