Terraform (software)

Terraform is an infrastructure-as-code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON.

Design
Terraform manages external resources (such as public cloud infrastructure, private cloud infrastructure, network appliances, software as a service, and platform as a service) with "providers". HashiCorp maintains an extensive list of official providers, and can also integrate with community-developed providers. Users can interact with Terraform providers by declaring resources or by calling data sources. Rather than using imperative commands to provision resources, Terraform uses declarative configuration to describe the desired final state. Once a user invokes Terraform on a given resource, Terraform will perform CRUD actions on the user's behalf to accomplish the desired state. The infrastructure as code can be written as modules, promoting reusability and maintainability.

Terraform supports a number of cloud infrastructure providers such as Amazon Web Services, Cloudflare, Microsoft Azure, IBM Cloud, Serverspace, Selectel  Google Cloud Platform, DigitalOcean, Oracle Cloud Infrastructure, Yandex.Cloud, VMware vSphere, and OpenStack.

HashiCorp maintains a Terraform Module Registry, launched in 2017. In 2019, Terraform introduced the paid version called Terraform Enterprise for larger organizations.

License change
Terraform was previously free software available under version 2.0 of the Mozilla Public License (MPL). On August 10, 2023, HashiCorp announced that all products produced by the company would be relicensed under the Business Source License (BSL), with HashiCorp prohibiting commercial use of the community edition by those who offer "competitive services".

The last MPL-licensed version of Terraform was forked as "OpenTofu", which is backed by the Linux Foundation. In April 2024, HashiCorp sent a cease and desist notice to the OpenTofu project, stating that it had incorporated code from a BSL-licensed version of Terraform without permission and "incorrectly re-labeled HashiCorp's code to make it appear as if it was made available by HashiCorp originally under a different license." OpenTofu denied the allegation, stating that the code cited had originated from an MPL-licensed version of Terraform.