Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/docs/iac/comparisons/opentofu.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,5 +141,6 @@ Yes — and this is one of the more common adoption patterns. Pulumi can read ou

- [Get started with Pulumi](/docs/iac/get-started/)
- [Pulumi vs. Terraform](/docs/iac/comparisons/terraform/)
- [Pulumi terms and command equivalents for OpenTofu users](/docs/iac/comparisons/terraform/#terraform-terms-and-command-equivalents)
- [Using any Terraform or OpenTofu provider with Pulumi](/docs/iac/concepts/providers/any-terraform-provider/)
- [Migrating from Terraform to Pulumi](/docs/iac/guides/migration/migrating-to-pulumi/from-terraform/)
53 changes: 51 additions & 2 deletions content/docs/iac/comparisons/terraform/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ aliases:
- /docs/intro/vs/terraform/
- /docs/concepts/vs/terraform/
- /docs/iac/concepts/vs/terraform/
- /docs/iac/comparisons/terraform/terminology/
- /docs/intro/vs/terraform/terminology/
- /docs/concepts/vs/terraform/terminology/
- /docs/iac/concepts/vs/terraform/terminology/
---

Pulumi and [HashiCorp Terraform](https://developer.hashicorp.com/terraform) are both declarative infrastructure as code tools with overlapping capabilities and several meaningful differences. Pulumi lets you define infrastructure in general-purpose languages (Python, TypeScript, JavaScript, Go, .NET, Java, or YAML) and supports any cloud or SaaS provider through the [Pulumi Registry](/registry/); Terraform uses [HashiCorp Configuration Language (HCL)](https://developer.hashicorp.com/terraform/language) with HashiCorp's provider ecosystem.
Expand Down Expand Up @@ -144,9 +148,54 @@ Yes. [Pulumi Cloud as a Terraform state backend](/docs/iac/get-started/terraform

[`pulumi refresh`](/docs/iac/cli/commands/pulumi_refresh/) compares the state file to the actual state in the cloud and reports differences, and `pulumi preview --diff` shows what would change on the next update. Pulumi Cloud commercial plans add [scheduled drift detection and remediation](/docs/deployments/deployments/drift/) that runs on a configurable cadence and can auto-remediate.

## Terraform terms and command equivalents

If you're already familiar with Terraform, many concepts and CLI commands have direct Pulumi equivalents.

### Terminology

| Terraform | Pulumi |
| --------- | ------ |
| Workspace | [Stack](/docs/iac/concepts/stacks/) |
| Variables | [Stack Config](/docs/iac/concepts/config/) |
| Directory | [Project](/docs/iac/concepts/projects/) |
| Module | [Component](/docs/iac/concepts/components/) |
| Resource | [Resource](/docs/iac/concepts/resources/) |
| Interpolation | [Interpolation](/docs/iac/concepts/inputs-outputs/#working-with-outputs) |
| Run | [Up](/docs/iac/cli/commands/pulumi_up/) |
| Output Values | [Outputs](/docs/iac/concepts/inputs-outputs/) |
| State | [State](/docs/iac/concepts/state-and-backends/) |
| State Version | [Update Events](/docs/reference/cloud-rest-api/) |
| Backend | [Backend](/docs/iac/concepts/state-and-backends/) |
| Deposed | [Pending Operations](/docs/support/troubleshooting/common-issues/interrupted-updates/) |

### Commands

| Terraform | Pulumi |
| --------- | ------ |
| `init` | `pulumi new` |
| `validate` | Validation is performed with the inherent syntax checking and testing frameworks in the supported programming languages |
| `plan` | `pulumi preview` |
| `apply` | `pulumi up` |
| `destroy` | `pulumi destroy` |
| `console` | Pulumi commands can be evaluated in a standard programming language shell |
| `fmt` | Standard programming language linting tools checks for format and style |
| `force-unlock` | `pulumi cancel` |
| `get` | Reusable modules are directly imported as a library in the programming language |
| `graph` | `pulumi stack graph` |
| `import` | `pulumi import -f resources.json` |
| `login` | `pulumi login` |
| `logout` | `pulumi logout` |
| `output` | `pulumi stack output` |
| `providers` | `pulumi plugin` |
| `refresh` | `pulumi refresh` |
| `show` | `pulumi stack` |
| `state` | `pulumi state` |
| `version` | `pulumi version` |
| `workspace` | `pulumi stack` |

## Next steps

- [Get started with Pulumi](/docs/iac/get-started/)
- [Pulumi terms and command equivalents for Terraform users](/docs/iac/comparisons/terraform/terminology/)
- [Pulumi vs. OpenTofu](/docs/iac/comparisons/opentofu/)
- [OpenTofu vs. Terraform](/docs/iac/comparisons/terraform/opentofu/)
- [OpenTofu vs. Terraform](/what-is/opentofu-vs-terraform/)
75 changes: 0 additions & 75 deletions content/docs/iac/comparisons/terraform/terminology.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,21 +1,13 @@
---
title_tag: "OpenTofu vs. Terraform"
title: "OpenTofu vs. Terraform"
meta_desc: Compare and contrast OpenTofu and Terraform across key features. Learn how they differ and why many teams are migrating to Pulumi.
title: OpenTofu vs. Terraform
h1: OpenTofu vs. Terraform
meta_image: /images/docs/meta-images/docs-meta.png
menu:
iac:
name: OpenTofu vs. Terraform
parent: iac-comparisons-terraform
weight: 2
concepts:
parent: vs-terraform
weight: 2
type: what-is
page_title: "OpenTofu vs. Terraform"
aliases:
- /docs/intro/vs/terraform/opentofu/
- /docs/concepts/vs/terraform/opentofu/
- /docs/iac/concepts/vs/terraform/opentofu/
- /docs/iac/comparisons/terraform/opentofu/
- /docs/intro/vs/terraform/opentofu/
- /docs/concepts/vs/terraform/opentofu/
- /docs/iac/concepts/vs/terraform/opentofu/
---

<style>
Expand Down
2 changes: 1 addition & 1 deletion content/what-is/top-iac-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ OpenTofu is a recent fork of Terraform 1.6.x. It shares many core functionalitie

While OpenTofu aims to maintain compatibility with Terraform, it's expected to develop its own unique features and community-driven improvements over time. The primary difference currently lies in the licensing model, with OpenTofu using the Mozilla Public License 2.0.

For a more detailed comparison between OpenTofu and other IaC tools, including Terraform and Pulumi, please refer to our in-depth article: [Terraform vs.OpenTofu](/docs/iac/comparisons/terraform/opentofu/).
For a more detailed comparison between OpenTofu and other IaC tools, including Terraform and Pulumi, please refer to our in-depth article: [Terraform vs. OpenTofu](/what-is/opentofu-vs-terraform/).

- **Flexibility**: Utilizes HCL, offering similar capabilities to Terraform in terms of infrastructure definition.
- **Multi-cloud**: Supports multiple cloud providers, mirroring Terraform's broad compatibility.
Expand Down
Loading