Terraform vs Pulumi vs OpenTofu — what do I need to change?

Choosing an Infrastructure as Code tool in 2026, considering HashiCorp's BSL license change, OpenTofu's CNCF status, and Pulumi's real-language approach with current pricing.

OpenTofu — default pick unless your team explicitly wants real-language IaC; choose Terraform only if BSL 1.1 is acceptable and you're already deep in HashiCorp.

Blockers

Who this is for

Candidates

Terraform

HashiCorp's IaC tool using HCL. License changed from MPL 2.0 to BSL 1.1 (August 2023). Largest provider ecosystem. HCP Terraform (formerly Terraform Cloud) free tier: 500 managed resources.

When to choose

When you need the largest provider ecosystem and your organization accepts BSL 1.1 licensing. Best for enterprise teams already invested in HashiCorp stack (Vault, Consul, Nomad).

Tradeoffs

BSL 1.1 prohibits competitive use — cannot offer Terraform as a managed service. HCP Terraform free tier limited to 500 resources, Teams $0.00014/hour per resource. Largest community and module registry. State management well-understood.

Cautions

BSL 1.1 license since August 2023 — evaluate legal implications for your use case. Competitive use (offering IaC-as-a-service) is prohibited. HCP Terraform pricing changed from per-user to resource-based in 2024. Verify current pricing at hashicorp.com.

OpenTofu

Community fork of Terraform (pre-BSL), maintained under Linux Foundation. CNCF Sandbox project since April 2025. MPL 2.0 license. Compatible with Terraform providers through v1.5.x.

When to choose

When BSL 1.1 is unacceptable (competitive use, open-source policy, or legal risk aversion) and you want HCL-compatible IaC with no license restrictions. Best for cost-sensitive or compliance environments requiring OSS-only tooling.

Tradeoffs

Drop-in replacement for Terraform ≤1.5.x. State encryption built-in (not available in Terraform OSS). Growing provider support but some HashiCorp-proprietary providers may lag. CNCF backing provides governance stability.

Cautions

Post-1.5.x Terraform features (removed blocks, check blocks) are implemented independently — not guaranteed 1:1 compatible. Some enterprise Terraform modules may use BSL-licensed features. Verify provider compatibility for your stack before migrating.

Pulumi

IaC using real programming languages (TypeScript, Python, Go, C#, Java). Apache 2.0 license. Pulumi Cloud free for individual use, Team $0.01/deployment minute.

When to choose

When your team prefers writing infrastructure in familiar programming languages over learning HCL. Best for small-team where developers want full IDE support (autocomplete, refactoring, testing) for infrastructure code.

Tradeoffs

Full language support enables loops, conditionals, and unit tests natively. Smaller provider ecosystem than Terraform but growing — supports Terraform providers via bridge. Pulumi Cloud pricing is usage-based ($0.01/deployment minute on Team plan).

Cautions

Avoid over-abstracting infrastructure code — the flexibility of real languages can lead to unnecessary complexity. Pulumi AI (natural language to IaC) is a differentiator but verify generated code. Self-managed backend available if Pulumi Cloud pricing is a concern.

Facts updated: 2026-03-15
Published: 2026-04-03

Try with your AI agent

$ npm install -g pocketlantern
$ pocketlantern init
# Restart Claude Code, Cursor, or your MCP client, then ask:
# "Terraform vs Pulumi vs OpenTofu — what do I need to change?"
Missing something? Request coverage