OpenTofu

OpenTofu: The Open-Source Alternative to Terraform

what is opentofu

In this post, we will answer some of the most important questions about OpenTofu that we have seen in different channels.

What is OpenTofu?

OpenTofu is a fully open-source Terraform fork, a drop-in replacement for Terraform version 1.6 that is backward compatible with all prior versions of Terraform. It’s a viable alternative to HashiCorp’s Terraform that will expand on Terraform’s existing concepts and offerings.

OpenTofu was created by the initiative of OpenTF supported by Gruntwork, Spacelift, Harness, Env0, Scalr, and other companies as a response to HashiCorp’s license changes to the BSL in August 2023.

OpenTofu was forked from Terraform version 1.5.6. and retained all the features and functionalities that had made Terraform popular among developers, while also introducing improvements and enhancements. The project is now a part of the Linux Foundation, with the ultimate goal of joining the Cloud Native Computing Foundation (CNCF).

OpenTofu’s first stable version was released in January 2023 (read here), and recently, OpenTofu has released its 1.7 version. The latest OpenTofu version comes packed with new features, enhancements, and bug fixes that aim to elevate the user experience, improve overall functionality, and boost your infrastructure as code management.

History of OpenTofu

The history of OpenTofu (originally named OpenTF) started on August 10th, 2023, when HashiCorp announced that going forward they will be changing the license on their core products, including Terraform, to a Business Source License (BSL). Unlike the Mozilla Public License (MPL v2) that their products were previously licensed under, BSL is not an open source license. While it still allows similar freedoms for individuals to use, share, and modify, it places restrictions on various forms of commercial use.

Since the announcement of the license change there has been a tumultuous amount of activity, speculation and discussion about the future of Terraform and what can be done to not lose such a precious and important asset. As a result, in the true spirit of our community, many companies and individuals have come together in unison to act as one under the umbrella of OpenTF (currently OpenTofu).

On August 15th, OpenTF released its manifesto. The manifesto lays out OpenTFs intent and goals and sets out a roadmap to ensure the continued survival of Terraform as an open-source tool.

The OpenTofu initiative was launched with significant initial support, boasting over 18 full-time equivalents (FTEs) committed to the project from four companies. The manifesto has been endorsed by over 140 companies, involving 11 projects with the participation of over 700 individuals. Moreover, the manifesto has received more than 35,000 GitHub stars, and the fork itself has garnered over 6,000 stars in just one week.

On September 5th, OpenTofu officially published the fork, and on September 20th, the project officially joined the Linux Foundation.

Joining the Linux Foundation is significant because it provides OpenTofu with a stable and well-respected organizational home. This move ensures that the project remains independent and avoids the risk of being controlled or influenced by a single company, which is a concern that many in the open-source community share.

Why was OpenTofu created?

OpenTofu was created to ensure the Terraform ecosystem continues to flourish into the future. It was created by the OpenTF initiative in response to HashiCorp’s license change to the BSL.

The ambiguity of the BSL license and the additional use grant outlined by the HashiCorp team makes it difficult for companies, vendors, and developers using Terraform to determine whether their actions could be viewed as falling outside of the permitted scope of use. 

Hashicorp’s FAQs offer some reassurance to end users and system integrators for now, but questions arise over the licensing terms’ implications for future usage. The potential for changes to the company’s definition of “competitive” or “embedding” or further modifications to the license to make it closed source creates uncertainty for Terraform users. 

We strongly believe that Terraform should stay open-source, as it is a project used by many companies, and many people have contributed to getting Terraform where it is today. Terraform wouldn’t be as successful as it is without the community’s effort in building many supporting projects around it.

Is Terraform still open source?

No, Terraform will cease to be open source. Everything created before version 1.5.x stays open-source, but new versions of Terraform are placed under the BSL license.

You will still have access to the public source code, but if your use falls outside of the additional use grant, you won’t be able to use it for commercial purposes without receiving a special license grant based on an individual agreement with HashiCorp. Security patches for the MPL version will be provided until the end of December 2023.

Who owns OpenTofu?

OpenTofu is a part of the Linux Foundation following the same management structure as other projects within the Linux Foundation. The OpenTofu team submitted it’s CNCF application in early 2024. Once its accepted the project and the associated trademarks will be donated to CNCF.

Who is behind OpenTofu? Who sponsors and maintains OpenTofu?

OpenTofu is backed and supported by an enormous community of large companies, projects, and individuals. The founding companies and initial maintainers of OpenTofu are: Spacelift, Harness, Gruntwork, Env0, and Scalr. 

The current community size behind OpenTofu initiative:

  • Almost 144 Companies
  • Over 10 Projects
  • Over 718 Individuals

The manifesto repository has over 36k stars.

OpenTofu’s repository has over 20k stars.

Numerous engineers from various companies, including some that compete with each other, have collaborated over the past week to bring OpenTofu to life. OpenTofu is a part of the Linux Foundation. Having a foundation responsible for the project ensures the tool stays vendor-neutral.

How is OpenTofu licensed?

OpenTofu is published under the Mozilla Public License (MPL).

Publishing software under MPL means that it is open source, can be freely used, modified, and distributed. MPL requires any modifications made to the code to be available under the same license.

What are the differences between Terraform and OpenTofu?

There are not any differences between Terraform (versions prior to 1.5.x) and OpenTofu, but this will change as new versions emerge. Initially, it works exactly the same as Terraform, with OpenTofu being a drop-in replacement for it. OpenTofu does not have its own providers and modules, but it uses its own registry for them.

Learn more in our OpenTofu tutorial.

Will OpenTofu work with my existing state file?

OpenTofu works with an existing state file, up to state files created with a version prior to Terraform’s 1.5.x.

Why should you use OpenTofu instead of Terraform?

Key advantages of using OpenTofu instead of Terraform:

  • Open-source nature: There are no restrictions on how you can use OpenTofu, either for commercial or personal use. The open-source nature of OpenTofu embodies the principles of openness and collaboration that characterize the tech community.
  • Dynamic community: Developer contributions will make the project more robust and adaptable to different use cases. Bugs and issues will be identified and resolved quickly to ensure reliability and stability.
  • Fast, reliable support: The growing community behind OpenTofu not only gives everyone the opportunity to influence the development of new features, but it also supplies the resources to ensure these features and bug fixes will be introduced rapidly.
  • Minimal risk: OpenTofu is published under MPL and is a part of the Linux Foundation (with the goal of joining CNCF), which provides the guarantee the tool remains truly open-source, forever.

Let’s understand the reasons that different personas may have in using OpenTofu instead of Terraform:

  • Personal Use – At first glance, for personal use, you could use either OpenTofu or Terraform, as there are no restrictions in the BUSL license for non-commercial use cases. That is subject to change as the Terraform ecosystem becomes more and more fragile, and a switch to another license is possible. Adopting OpenTofu for personal use is easy if you already know Terraform, so there aren’t any knowledge gaps, at least in the beginning.
  • Consultants As a consultant, one of your responsibilities is to offer your clients the best possible solution based on their budget. As OpenTofu is on par with Terraform’s versions up to 1.5.x and one of the project’s key missions is to listen to the community’s issues, it is advisable to recommend a project that will always stay open-source. If you have used Terraform in the last eight years, you have probably encountered issues that took considerable time to be resolved. Given the sheer number of people involved in developing OpenTofu, this will no longer be the case.
  • Companies – Companies may find the situation more problematic. Switching to a new project is a risk, but staying with a project that suddenly changes its license is far riskier. Giving OpenTofu to the Linux Foundation minimizes the risk associated with license changes, and having feature parity with Terraform up until 1.5.x, reduces technical risks.

Is OpenTofu suitable for production use?

Yes. OpenTofu is suitable for production use without any exceptions. There is no need to enter any separate, individually negotiated agreements regarding the production use of the tool.

How do you migrate from Terraform to OpenTofu?

Migrating from Terraform to OpenTofu involves a simple binary change in your pipeline, replacing Terraform with OpenTofu.

If you are running Terraform locally, which is something we don’t recommend, you can simply add the OpenTofu binary in your PATH, and both OpenTofu and Terraform can co-exist if that is something you want.

To learn more on how to migrate from Terraform to OpenTofu, watch this short video tutorial.

OpenTofu remains a drop-in replacement for its predecessor Terraform™ 1.5 and has easy migration paths from later versions. Check out the overhauled migration guides for detailed migration instructions. You can find the full list of changes and comprehensive examples in the documentation.

Is OpenTofu going to keep pace with the upstream Terraform releases? How will this evolve?

No, the short answer is that OpenTofu will most likely not keep pace with upstream Terraform releases. The community will dictate what they need and want to see in OpenTofu.

Some of the Terraform features you’ve been waiting for ages are now available with the 1.7.0 version of OpenTofu

How are new features, bug fixes, and other development decisions made in OpenTofu?

The development decisions around OpenTofu are made by the steering committee. The steering committee and the community dictate the most important features and bug fixes. The sheer size of the community of developers pledging their resources to help develop OpenTofu will accelerate the development of features and enable faster releases than Terraform achieved in the past.

Does OpenTofu work with all the providers Terraform works with?

OpenTofu does not have its own providers. Terraform providers have not changed their licenses, and the possibility of such a change is almost zero. OpenTofu works with the existing Terraform providers.

OpenTofu has its own registry for providers and modules. The provider registry protocol and the module registry protocol are systems used by OpenTofu to discover details and install providers and modules.

What is the future of OpenTofu?

The future of OpenTofu is in the hands of the community.

The GitHub repository is now published, having community guardrails and processes in place. The initial steering committee members have been selected, and on September 20, 2023, OpenTofu officially became a member of the Linux Foundation.

The community will guide the future of OpenTofu feature-wise.

How can you support the development of OpenTofu?

You can support OpenTofu by:

  • Opening issues
  • Solve existing issues
  • Participate in issue discussions (bug/feature/RFC)

To do that, check out the contribution guide and understand more about what you can do.

Some other things you can do to show your support to OpenTofu’s initiative:

  • Sign the manifesto and pledge your time to help develop this project. This can be done here, by forking the repository, adding your pledge at the end of the table, and creating a pull request.
  • Join OpenTofu’s Reddit community.
  • Follow OpenTofu on Twitter.

What new features can we expect from OpenTofu?

In the last few months since the first stable release the OpenTofu community and the core team have worked hand in hand to bring functionality to OpenTofu that has been requested for years. The latest OpenTofu version (1.7) comes packed with new features, enhancements, and bug fixes that aim to elevate the user experience, improve overall functionality, and boost your infrastructure as code management. Read more about OpenTofu 1.7 here.

OpenTofu is first and foremost a community-driven project. Priorities can shift based on the community’s voice, so you can request features and create RFC’s to implement them. 

Key Points

OpenTofu is the future of the Terraform ecosystem, and we plan to do everything right. We care about the community, and we care about having a truly open-source project to support your IaC needs.

OpenTofu Commercial Support

Spacelift offers native and commercial support to ensure your OpenTofu success. If you need a reliable partner to run your critical workloads with OpenTofu, accelerate your migration, provide support coverage, or train your team – we are here to help.

Learn more