Skip to main content

Terraform

LicenseFOSS problemsMaintenanceSSOUsersTested
BUSL 1.1Relicensed from MPL 2.0 to BUSL in 2023ActiveUnlimited

Description

Terraform describes desired infrastructure state in .tf files, then figures out what to create, change, or destroy to match it — terraform plan to preview, terraform apply to execute, with a state file tracking what it has actually provisioned. OpenTofu and Pulumi both measure themselves against this — it's the tool the category was defined by.

Features

  • Largest provider ecosystem — including Infomaniak's own OpenStack and DNS providers, both used here, and the source both OpenTofu's wire-compatible providers and Pulumi's bridged providers ultimately depend on.
  • Most accumulated documentation and prior art — real issues hit while provisioning this project (S3 backend checksum handling, boot-from-volume requirements, DNS zone import) were all things someone else had already hit and written up.
  • Drift detectionterraform plan -refresh-only / apply -refresh-only, the original of the mechanism OpenTofu inherited and Pulumi reimplemented as pulumi refresh. Not built-in on a schedule here either; that's HCP Terraform (or a third-party platform) layered on top, same as the other two.

Example usage

Same HCL as OpenTofu's example, but not literally the same file anymore — this project's actual config is .tofu, and Terraform doesn't read that extension at all, only .tf. Switching back would mean renaming the files again first, not just swapping the binary back.

Usage patterns

  • Direct provisioning.tf config applied straight against a cloud provider's API, self-managed S3-compatible state backend.
  • HCP Terraform — HashiCorp's own hosted layer on top: managed state, scheduled drift detection, RBAC, policy as code (Sentinel) — the same shape as Pulumi Cloud sitting on top of Pulumi's CLI.
  • Third-party platforms — Spacelift, env0, Scalr and similar wrap either Terraform or OpenTofu with CI-style workflows and drift scheduling, independent of HashiCorp's own hosted offering.

License and governance

HashiCorp relicensed it from MPL 2.0 to the Business Source License in August 2023 — no longer OSI-approved open source, and a real trust break for a tool this deeply embedded in infrastructure. OpenTofu exists specifically because of this, and is the more principled choice if the license itself is disqualifying.

The relicensing wasn't the end of the story either. IBM completed its $6.4B acquisition of HashiCorp in February 2025, and by mid-2026 a survey found 38% of Terraform users actively evaluating or migrating away — not because anything's broken yet, but because IBM has $6.4B to justify recouping, and enterprise licensing, feature gating, and ecosystem lock-in are the obvious levers to pull. "The safe, boring default" was the whole case for sticking with Terraform over the fork; a single commercial owner with that kind of payback pressure is precisely what erodes that.

Conclusion

Why you would — mostly default momentum: tutorials and integrations still tend to target Terraform by name first, OpenTofu catching up rather than leading. Not a real advantage, since wire-compatibility means OpenTofu shares almost all the same provider coverage and documentation anyway.

Why you wouldn't — the August 2023 MPL-to-BUSL relicense, and IBM's $6.4B acquisition since, with $6.4B of pressure to recoup it sitting behind future licensing and feature decisions. See OpenTofu for what switching actually costs and what it's gained since the fork.