Travelling back in time. In August 2023 HashiCorp announced a license change of most of their products. They switched from an open source Mozilla Public License to the non open source Business Source License.
The business source license is not an approved license of the open source initiative and HashiCorp restricts the use of its products in several aspects. They provide an FAQ about the license changes and we discovered that we were affected by changes and would be limited in providing our DevOps services to our clients.
If you do no consulting services and just use the software internally you seem to be on the safe side – but of course you need to do a legal check on your own!
Reaction of the open source community
The community first focused on Terraform. As this is maybe the most impactful software product for pushing infrastructure as code in the past decades.
But there is good news, Terraform has been forked by community members and OpenTofu announces a fork of Terraform. Soon after the announcement of the fork, the Linux Foundation announced to officially support OpenTofu as an Linux Foundation project! With that announcement the OpenTofu project gained a huge momentum.
In the following months there was a kind of uncertainty how the projects (both Terraform as well as OpenTofu) will evolve. Of course, setting up an infrastructure for a tool like OpenTofu is not a trivial task. The software itself is one part – and actually the simpler one.
But the great think about Terraform was a module repository where a huge amount of modules provided by the open source community as well as nearly all infrastructure provider was available to orchestrate the users cloud and base infrastructure.
And after a few months of work and the availability of the OpenTofu module registry we started to use OpenTofu in our own projects as the first release candidate has been announced in December 2023 and at January 10th the project team announced general availability of OpenTofu.
The results have been great so far. Of course, you should expect a "simple" fork to work like a charm - at least just the name of the software has been changed. BUT the infrastructure behind the scenes is the hard part to migrate.
And the OpenTofu team did an amazing job as we can confirm after switching to OpenTofu for our first (disclaimer here - and simple) projects. The rising interest is reflected by the "GitHub stars". OpenTofu rose up to 18k stars on GitHub at the time of writing (February 2024) and that is an impressive number for such a young project.
All modules we needed have been available in the OpenTofu registry. No major updates of our former Terraform code where required. Simply put, we just replaced Terraform with OpenTofu and all the rest works as expected.
But the real game changer could be a completely different thing. As we discussed internally how we should proceed in the Terraform vs OpenTofu game we discovered an epic ticket in GitLab.
And this is huge. GitLab will deprecate Terraform support from their default build templates and switch to OpenTofu. Their internal legal analysis concludes that the usage in their SaaS offer is not affected by the license change but the Self-Managed offer is affected and they are not allowed to ship their Terraform CI templates.
GitHub does not provide any "officially" support for one or the other in their GitHub Actions but of course there are community-built terraform containers that have been available for a long time. In the GitHub marketplace there are already OpenTofu actions sets available. As GitHub is a SaaS only solution I guess it is not affected by the license changes similar to what GitLab internal legal check found out.
As we are using the Self-Managed GitLab offering we will follow GitLab's path and will switch to OpenTofu for all of our IaC projects. And we maintain a lot of them. We're optimistic that the migration will be a simple as we don't use the latest and greatest features from the new Terraform releases after the license switch (and we did this by purpose).
OpenTofu is a simple drop-in replacement
To make it short: we will move on to use OpenTofu from now on. Right now, OpenTofu is a simple drop-in replacement for Terraform. We are not planning to build competing products to the HashiCorp product stack but as we want to be completely free in how we deploy and deliver our software for our customers.
The big question remains as in any software fork situation. Both projects will move in their direction and hopefully there will be at least a minimum collaboration between both projects so that we can have similar features with similar usability in both products.
If you are a paying HashiCorp customer, you will probably want to stick with Terraform as there is no reason for you to change - at least right now. Only future will show how the two projects will evolve.
Ultimately, this example shows once again how open source software helps to protect investments in in-house developments. Even if the company behind an open source product change the rules, you can always fork the source code.
If you want to share your experience with OpenTofu or need help with your Infrastructure as Code initiatives feel free to contact me on LinkedIn. I love to share my experience and thoughts with you!