OpenTofu is a Linux Foundation fork of Terraform, created after HashiCorp relicensed Terraform under the Business Source License in August 2023. It runs the same configurations and the same providers. For most enterprises the license never applied — which makes this a governance decision, not a compliance one.
Are you actually restricted?
The license permits production use. What it forbids is offering Terraform to third parties on a hosted or embedded basis competitive with HashiCorp's own products.
If you provision your own infrastructure, you were never in scope. If you sell a platform with provisioning inside it, you always were.
That distinction did most of the damage. Two years of coverage written from the perspective of vendors, who were restricted, was read by buyers, who mostly were not.
The restriction expires on a schedule
Four years after publication, each Terraform release converts to MPL 2.0 automatically. Terraform 1.6.0, the first release under the new license, converts in late 2027. Every release after it follows on its own clock.
This is in the license file and almost nobody plans around it. If your concern is the license itself rather than who controls it, the constraint has an end date you can put in a calendar.
What the acquisition changed
IBM closed its $6.4bn acquisition of HashiCorp on 27 February 2025. The license terms did not change. What changed is who sets them.
The 2023 relicensing took one company one day to decide. That is the real question in front of you: whether unilateral vendor control over your provisioning layer is a risk you want to keep holding. Foundation governance does not make OpenTofu better software. It makes a repeat of August 2023 structurally harder.
The two engines have started to diverge
For roughly two years the honest answer to "what is different?" was "not much." That is no longer true.
OpenTofu 1.12, released May 2026, allows a resource's destroy protection to be set from a variable. One shared module can now protect a production database while permitting its development equivalent to be replaced. Previously that forced either a hard-coded decision or a forked module.
The feature matters less than the direction. Anything you adopt that exists on only one side is a decision you cannot cheaply reverse.
What a move costs
The migration is a binary swap. State records a new engine version; the resources themselves do not change. Technical risk is low and well-documented.
The cost is ongoing rather than one-time. You take on a second upgrade track and a release cadence you do not control, which lands on the team maintaining your pipelines. Budget for that, not for the cutover.
When to move, and when not to
Do not migrate on license grounds without first reading the Additional Use Grant against how you actually deliver software. Most enterprises will find they were never in scope, and a migration bought on that basis is a real cost paid against an imagined constraint.
Do migrate if you embed provisioning in something you sell — that case is unambiguous — or if single-vendor control of this layer is a risk you have decided not to carry. The second is a governance judgment rather than a technical one, and it is the only version of this decision worth taking to a board.
Related Reading
- Infrastructure as Code (IaC) Platforms
- GitOps & Continuous Delivery
- Internal Developer Platforms (IDP)
- CI/CD Pipeline Platforms
- Technical debt was never about bad code. That is the whole point of the metaphor.
- Knight Capital lost $460 million in 45 minutes because of code it stopped using in 2003
- Amdahl’s Law was written to argue against parallel computing. Now it is used to plan it.
- Platform Engineering: Building Internal Developer Platforms at Scale
- Cloud Migration Playbook: From Workload Assessment to Production
Independent. No sponsorships. Unsubscribe anytime.