Open source is not free. It is, however, free.
When someone tries to take that freedom away, the community responds with a fork.

π― What this article covers
- How Terraform became the standard for IaC (Infrastructure as Code)
- Why HashiCorp changed its license and the community’s reaction
- The background of OpenTofu’s birth and why it joined CNCF
- OpenTofu vs Terraform: What are the differences now?
- The future of OpenTofu and what choice we should make
π Introduction β “The tool we trusted suddenly changed”
The concept of managing infrastructure as code, IaC (Infrastructure as Code). For a long time, the de facto standard tool in this field has been Terraform.
Terraform, which effortlessly creates cloud infrastructure across AWS, Azure, and GCP with just a few lines in a .tf file. This tool, used daily by millions of engineers, suddenly changed its license in August 2023.
The reaction was immediate. The community was outraged, companies were bewildered, and eventually, a new project called OpenTofu was born. In just a few months, it became an official project of the CNCF (Cloud Native Computing Foundation).
This article summarizes the entire story from beginning to end: from the history of Terraform, why OpenTofu had to be born, and what its future holds.

π The History of Terraform β How it ascended to the IaC throne
Birth (2014)
Terraform is an open-source IaC tool created by HashiCorp in 2014. HashiCorp is known for infrastructure-related tools like Vagrant, Consul, Vault, and Nomad.
The problem at the time was this: as cloud computing grew explosively, managing infrastructure resources by clicking through a console (GUI) hit its limits. Managing hundreds of servers and dozens of network settings manually? Impossible. It led to many errors, lack of reproducibility, and difficulty in collaboration.
Terraform’s solution was simple yet powerful.
# main.tf β Example of declaring a single AWS EC2 instance
provider "aws" {
region = "ap-northeast-2" # Seoul Region
}
resource "aws_instance" "web" {
ami = "ami-0c9c942bd7bf113a2"
instance_type = "t3.micro"
tags = {
Name = "my-web-server"
}
}
With just this one file, a single `terraform apply` creates an EC2 instance. `terraform destroy` cleans it up neatly. Since it’s code, it can be version-controlled with Git and shared with team members.
Growth (2015~2020)
Terraform’s core design philosophy is a Declarative approach. Instead of saying “make it like this,” you declare “this is the final state,” and Terraform automatically performs only the necessary operations by comparing it with the current state.
Furthermore, the Provider ecosystem grew explosively. From AWS, Azure, and GCP to GitHub, Datadog, Cloudflare, and Kubernetes β thousands of Providers were uploaded to the Registry. Effectively, “everything in the cloud world” could be managed with Terraform.
# Example of managing multiple clouds simultaneously
provider "aws" {
region = "ap-northeast-2"
}
provider "azurerm" {
features {}
subscription_id = var.azure_subscription_id
}
# S3 bucket on AWS
resource "aws_s3_bucket" "backup" {
bucket = "my-backup-bucket-2024"
}
# Storage Account on Azure
resource "azurerm_storage_account" "backup" {
name = "mybackupstorage2024"
resource_group_name = var.resource_group
location = "koreacentral"
account_tier = "Standard"
account_replication_type = "LRS"
}
For companies adopting a multi-cloud strategy, Terraform became a necessity, not an option.
Heyday (2020~2023)
In 2021, HashiCorp went public on Nasdaq. Its enterprise value reached billions of dollars. Terraform became a must-know tool for DevOps/cloud engineers, and related certifications (HashiCorp Certified: Terraform Associate) emerged.
However, becoming a publicly traded company also means answering to shareholders and investors rather than the community. And in 2023, that crack became apparent.
π₯ License Change β The Shock of That Day
August 10, 2023
HashiCorp announced that it would change the license of its major products, including Terraform, from the existing MPL 2.0 (Mozilla Public License 2.0) to BSL 1.1 (Business Source License 1.1).
Why is this a problem? Let’s compare the differences.
| Item | MPL 2.0 (Previous) | BSL 1.1 (After Change) |
| Personal Use | β Free | β Free |
| Internal Corporate Use | β Free | β Free |
| Open Source Projects | β Free | β Free |
| Building competing products/services with HashiCorp | β Possible | β Not Possible |
| OSI Official Open Source Certification | β Certified | β Not Certified |
The core point is one: “HashiCorp’s competitors cannot use Terraform to build commercial services.”
HashiCorp’s logic was this: “Some companies are making money with our open source but not contributing. We also need a sustainable business.” This isn’t entirely wrong.
But the community’s reaction was different.
We contributed for 10 years and grew the ecosystem because it was open source.
If you change the rules now, isn’t that a betrayal?
Companies like Spacelift, Env0, and Scalr, which built services based on Terraform, were directly hit. This was because they competed with HashiCorp’s Terraform Cloud.
π The Birth of OpenTofu β The Community’s Fork
OpenTF Manifesto (August 2023)
Immediately after the license change announcement, the community moved quickly. Dozens of companies and thousands of developers signed the OpenTF Manifesto. The gist was simple.
- Request HashiCorp to revert to MPL 2.0
- If they don’t, we will directly create a true open-source Terraform fork
The companies that signed included prominent ones like Gruntwork, Spacelift, Env0, and Terragrunt developers. HashiCorp did not comply.
OpenTofu Born (September 2023)
And so, OpenTofu was born. It is an official fork based on Terraform’s last MPL 2.0 version (1.5.x).
The origin of the name is interesting. π A mascot using a clover emoji, and Tofu. Tofu goes well with any dish, can be freely reshaped, and like open source, anyone can make it. It’s a clever naming that expresses open-source philosophy through food.
OpenTofu μ΄κΈ° μ°Έμ¬ κΈ°μ
/νλ‘μ νΈ:
- Gruntwork (Terragrunt κ°λ°μ¬)
- Spacelift
- Env0
- Scalr
- Digger
- Terramate
- ... μμ κ° κΈ°μ
Joined CNCF (September 2023)
OpenTofu joined the CNCF (Cloud Native Computing Foundation) Sandbox project at an astonishing speed. This happened just a few weeks after the announcement.
βοΈ What is CNCF, and why did OpenTofu join it?
About CNCF
CNCF is a non-profit organization under the Linux Foundation. It houses core cloud-native ecosystem projects like Kubernetes, Prometheus, Envoy, Argo CD, and Helm. Simply put, it’s the “official home of the cloud-native world.”
The meaning of becoming a CNCF project:
- π Guaranteed Neutrality: Independent of specific corporate interests
- π° Financial Support: Infrastructure, marketing, legal support
- ποΈ Governance: Transparent decision-making structure
- π Community: Global contributor network
Why OpenTofu chose CNCF
OpenTofu’s biggest risk was becoming “another HashiCorp.” The concern was that it might start as open source and later change its license due to commercial interests, repeating the cycle.
Joining CNCF structurally prevents this risk.
- No single company can “own” OpenTofu
- License changes are impossible without the consensus of the entire community
- The MPL 2.0 license will be permanently maintained
Just as Kubernetes was transferred from Google to CNCF, OpenTofu is following the same path.
π OpenTofu vs Terraform β How different are they now?
Initially, they were almost identical. Terraform code could be used directly in OpenTofu. However, differences have emerged over time.
Current (2024~2025) Key Differences
Feature Terraform OpenTofu
| License | BSL 1.1 (Non-Open Source) | MPL 2.0 (Open Source) |
| State Encryption | β Not Supported | β Natively Supported |
| Provider Functions | Limited | Extended Support |
| Development Transparency | HashiCorp-led | Community-led |
| GitHub Stars Growth | Slowed | Steep Increase |
In particular, State file encryption is a killer feature of OpenTofu. Terraform’s State files often store sensitive information (passwords, API keys, etc.) in plain text, raising security concerns, but OpenTofu supports this natively.
# OpenTofu β State encryption configuration example
terraform {
# In OpenTofu, the 'terraform' block is used as is
encryption {
key_provider "pbkdf2" "my_passphrase" {
passphrase = var.state_passphrase
}
method "aes_gcm" "my_method" {
keys = key_provider.pbkdf2.my_passphrase
}
state {
method = method.aes_gcm.my_method
}
}
}
How easy is migration?
For existing Terraform users, in most cases, you just need to do this:
# macOS (Homebrew)
brew install opentofu
# Replace existing Terraform commands with tofu
terraform init β tofu init
terraform plan β tofu plan
terraform apply β tofu apply
terraform destroy β tofu destroy
# .tf files can be used as is without modification (in most cases)
The code inside the .tf file rarely needs modification. This is because the HCL syntax itself is identical.
β οΈ Precautions β OpenTofu Adoption Checklist
1. Check Provider Compatibility Most Providers are compatible, but some enterprise-specific Providers may be optimized only for HashiCorp Terraform. Be sure to check before adoption.
2. If you are using Terraform Cloud/Enterprise Integration with HashiCorp’s managed services (Terraform Cloud, Terraform Enterprise) is, of course, Terraform-specific. When switching to OpenTofu, you should consider alternatives like Spacelift, Env0, Scalr, or Atlantis.
3. State File Management Existing Terraform State files can be read directly by OpenTofu. However, if you enable OpenTofu’s State encryption feature, it may be difficult to revert to Terraform.
4. Unify versions within the team Mixing Terraform and OpenTofu within a team can lead to confusion. It is recommended that the entire team switches simultaneously.
π The Future of OpenTofu β Reasons to be Optimistic
IBM’s Acquisition of HashiCorp (2024)
In 2024, IBM acquired HashiCorp for approximately $6.4 billion. This news actually acted as a boon for the OpenTofu community. We have seen countless cases where open-source policies become more restrictive after a large company acquisition. This served as a catalyst for companies considering a switch to OpenTofu to make their decision.
Rapid Growth
- GitHub Stars: Surpassed tens of thousands (growing rapidly)
- Contributors: Hundreds of global developers
- Corporate Sponsorship: Dozens of major tech companies
- Promoted to CNCF Incubating stage
Strength of Community-Driven Development
OpenTofu is rapidly adding features that Terraform had not addressed. These are features that the community had requested for years but HashiCorp did not prioritize. State encryption is a prime example.
Cases where Terraform should still be used
While OpenTofu is excellent, there are still situations where Terraform might be the preferred choice.
- If official enterprise support from HashiCorp is required
- If you are using workflows deeply integrated with Terraform Cloud
- If organizational regulations require official vendor support other than CNCF projects
β Summary β Open Source Freedom is Protected by Forks
| Timeline | Event |
| 2014 | HashiCorp releases Terraform as open source with MPL 2.0 |
| 2021 | HashiCorp lists on Nasdaq |
| August 2023 | Terraform announces license change to BSL 1.1 |
| August 2023 | OpenTF Manifesto announced, thousands sign |
| September 2023 | OpenTofu officially launched, joins CNCF Sandbox |
| 2024 | IBM completes acquisition of HashiCorp |
| 2024~2025 | OpenTofu promoted to CNCF Incubating and adds unique features |
Terraform was undoubtedly a great tool, and it still is. But OpenTofu has once again proven that the power of open source lies not with a specific company, but with the community.
Recommended next steps for learning:
- OpenTofu Official Documentation: opentofu.org
- Understanding the CNCF project ecosystem
- OpenTofu-based workflow tools like Terragrunt, Atlantis
- State encryption practice
If you are new to IaC, I recommend starting with OpenTofu now. π¦
Leave a Reply