The Value of Optionality in TF

What to think about when you are thinking about switching to OpenTofu

Hey folks,

First off, I'm biased on the Terraform vs OpenTofu debate.

Not in any "I own stock in a company" way. Rather, I believe strongly in open source software (OSS). I also believe HashiCorp's license change to BSL was a big rug pull on the Terraform community.

Masterpoint has switched a handful of orgs to OpenTofu. The way we describe it to clients is that the move from Terrform to OpenTofu is not even a "migration", unless you use a handful of newly released Terraform features. It is often an executable binary switch. That's it!

The primary reason we recommend making the switch is optionality.

If you're on Terraform today, then you're only option for a paid vendor to help you run your IaC at scale is Terraform Cloud (TFC). TFC is prohibitively expensive because it's has a "Resources under management" pricing model.

There are other vendors with better or equivalent offerings for running IaC at scale. AND their pricing model is actually reasonable.

All of the open source tooling out there (Atlantis, Terrateam, OSS GHA Pipelines, and similar) are going to support OpenTofu long term because it's OSS.

Anecdotally, we see a drive to switch to OpenTofu from organizations once they either:

  1. want to stop paying Terraform Cloud a ton of money or

  2. realize they need to stop applying locally and want to graduate to a mature platform to do so

There are not many published success stories with OpenTofu; I get it. Part of the problem is that no engineering organizations have any incentive to publicize their switch to OpenTofu. Particularly larger companies. We’ve blogged about switching before, but it’d be great if other folks did.

For those of you either already on OpenTofu or thinking about the switch, here is a useful resource for you: the "Can I TF" website. It's a microsite focused on providing details of features in Terraform vs OpenTofu and at what versions they exist.

This is the first attempt that I've seen at providing an open-source view of the differences between TF versions and mapping them in one place. We're definitely going to need resources like this as Terraform and OpenTofu start to diverge more!

It's not perfect, but it is under active development and you can submit a PR or download the raw JSON at the GitHub repo.

Here's more to read if you are evaluating a move to OpenTofu:

May your plans be quick and your vendors inexpensive,

Matt @ Masterpoint.io

PS On a different note, I found this AWS Console Clickops notifier a while back. Haven’t implemented it yet, but have pointed clients to it. Seems useful.