OpenTofu vs. Terraform

Introduction

In this article, we will be reviewing the key differences between OpenTofu and Terraform, two popular infrastructure-as-code (IaC) tools used for provisioning and managing cloud resources. While both tools share a similar foundation, OpenTofu emerged as a response to HashiCorp’s 2023 licensing changes to Terraform, offering a fully open-source alternative.

Why was OpenTofu Created?

In August 2023, HashiCorp announced that it would change the license of Terraform from the Mozilla Public License (MPL 2.0) to a Business Source License (BSL). The BSL change sparked a backlash from the open-source community and Terraform users.

In response to these concerns, a group of developers, including former contributors to Terraform, decided to fork Terraform and create an open-source version with a completely permissive license. This fork became OpenTofu. More information can be found under OpenTofu’s Manifesto.

What are the differences?

Compatibility

As of version 1.6, OpenTofu maintains compatibility with Terraform 1.6, allowing for a straightforward migration process. OpenTofu is committed to continuing to support Terraform 1.x releases. More information can be found here.

Development & Community

  • Terraform: Development is primarily driven by HashiCorp, with feature implementation and roadmap decisions made internally. https://github.com/hashicorp/terraform

  • OpenTofu: Emphasizes community involvement, allowing contributors to influence feature development and prioritization. This collaborative approach aims to address user needs more responsively. https://github.com/opentofu/opentofu

Comparison

This table was pulled from Spacelift.io

FeatureOpenTofuTerraform
LanguageHCLHCL
State Management✅ Yes✅ Yes
State Encryption✅ Yes❌ No
Early Variable Evaluation✅ Yes❌ No
Provider Functions✅ Yes✅ Yes
Community Driven✅ Yes, there is an issue ranking system you can influence.❌ No

Examples

Init

Plan

Apply

Reference

0
Subscribe to my newsletter

Read articles from Christian Herrera directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Christian Herrera
Christian Herrera

Hey, I'm Chris 👨🏽‍💻👋🏽🤙🏽 I’m a seasoned Platform Engineer based in the LA area with extensive experience leading cloud engineering projects. I specialize in designing, deploying, and managing scalable, high-performance infrastructure using Kubernetes, Terraform, and cloud-native technologies. 💻 Currently, I’m leading Kubernetes-focused initiatives to enhance Developer Experience (DevEx) across cloud platforms like GCP and AWS. By streamlining workflows, optimizing infrastructure, and automating processes, I’m driving efficiency and empowering development teams to work faster and smarter. I’m deeply committed to building scalable, reliable, and cost-effective systems while mentoring teams to implement cloud-native best practices and elevate the overall development process.