The announcement of OpenTofu has prompted many questions, as people want to understand more about what is going to happen in the world of infrastructure as code (IaC). Terraform has been essential in the last couple of years, and many companies have adopted it due to its open-source nature.
In this post, we will answer some of the most important questions about OpenTofu that we have seen in different channels.
OpenTofu is a Terraform fork, created by the initiative of OpenTF supported by Gruntwork, Spacelift, Harness, Env0, Scalr, and others, as a response to HashiCorp’s switch from an open-source license to the BSL. OpenTofu is an open-source version of Terraform and a viable alternative to HashiCorp’s Terraform that will expand on Terraform’s existing concepts and offerings.
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).
BUSL is an alternative type of license to open-source and closed-source, giving public access to the source code of a tool and ensuring the non-production use case of that code is always free of charge. Owners of the tools may decide to grant a so-called Additional Use Grant and allow specific cases of production use as well.
In this regard, HashiCorp decided to allow production use of its tools as long as “such use does not include offering the Licensed Work to third parties on a hosted or embedded basis which is competitive with HashiCorp’s products.” If this exception applies to your use of the tools, a specific license grant from HashiCorp is needed and might be subject to additional restrictions at HashiCorp’s discretion.
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 change to the BSL.
The ambiguity of the BUSL 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.
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 BUSL 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.
Yes, OpenTofu is an open-source version of Terraform. It was forked from Terraform version 1.5.6.
OpenTofu’s manifesto presented HashiCorp with two options:
- Switch Terraform back to an open-source license
- Create a fork of Terraform that will be placed in a Foundation
As the first option wasn’t taken into consideration, OpenTofu was created to make sure the fork of Terraform will be developed and maintained and remain an open-source tool, forever.
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 30k stars.
OpenTofu’s repository has over 6k stars.
Numerous engineers from various companies, including some that compete with each other, have collaborated over the past week to bring OpenTofu to life.
Some of these companies, such as Spacelift, have even pledged to cover the costs of multiple full-time engineers to ensure the tool stays open-source. Spacelift will cover the costs for five full-time engineers for a period of at least five years.
Gruntwork, the creators of Terragrunt and Terratest, two of the most popular tools inside the ecosystem, have pledged resources to ensure the healthy development of OpenTofu.
OpenTofu is a part of the Linux Foundation. Having a foundation responsible for the project ensures the tool stays vendor-neutral.
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.
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.
OpenTofu works with an existing state file, up to state files created with a version prior to Terraform’s 1.5.x.
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.
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.
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 will be publicly available soon.
Few companies have pledged to cover the costs of full-time engineers who will work on OpenTofu. There are 19 such engineers involved right now — and that doesn’t consider the willingness of many other individuals, companies, projects, and foundations to contribute.
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
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 will work with the existing Terraform providers, but it is operating its own registry.
Switching 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.
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.
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:
There are a couple of interesting features on the way such as state encryption and support of OCI registries. Priorities can shift based on the community’s voice, so you can request features and create RFC’s to implement them.
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.
The Most Flexible CI/CD Automation Tool
Spacelift is an alternative to using homegrown solutions on top of a generic CI. It helps overcome common state management issues and adds several must-have capabilities for infrastructure management.