Git Product home page Git Product logo

opentofu-support's Introduction

OpenTofu support across the ecosystem

Awesome?

This is NOT an Awesome List. For that, see awesome-opentofu.

This is a collection of information intended to help you determine how much work is in front of you as you consider a migration from Terraform → OpenTofu.

Summary

When the OpenTofu fork was announced (September 2023), I began reaching out to several notable Terraform-related projects in the community with the goal of understanding how customers like ourselves might be impacted.

The majority of projects expressed taking a wait-and-see approach. Some were more pro-fork, while others were more anti-fork. It was also unclear at the time how things like providers, modules, the Terraform Plugin Framework, and other bits would be impacted by licensing changes.

Licensing

As of this writing, the Terraform Plugin Framework is licensed under the MPL-2.0. This means that Providers will continue to be MPL-2.0. Modules are purely userland code, so they are not impacted. As for compatibility, Providers implement a protocol. As long as Terraform and OpenTofu both support that protocol version, the providers themselves are expected to remain compatible with both projects.

Plans

In the (many) conversations I've had with members of the OpenTofu core team, OpenTofu:

  • Is a drop-in replacement for Terraform 1.5.x and earlier.
  • Is willing/interested in implementing the same major features as Terraform moving forward.
  • Will NOT be bug-for-bug compatible with Terraform.
  • Will invest in community-driven enhancements, which may result in new features not available in Terraform. (See OpenTofu 1.7.)

Table of research

This represents the research done to understand the plans from the Terraform/OpenTofu ecosystem. As new/changed statements are discovered, this will be updated.

Project Notes Sources
× action/setup-terraform Maintained by HashiCorp. This should be used for installing Terraform in GitHub Actions.
action/setup-tofu Maintained by OpenTofu. This should be used for installing OpenTofu in GitHub Actions.
Checkov No anticipated impact. Should continue to work. 1
Infracost Infracost doesn't seem to expect much/any work on their end, and they’re not opposed to OpenTofu. 1
Provider: Artifactory Maintained by JFrog. Implements the protocol, so entirely dependent on that. 1
Provider: AWS Maintained by HashiCorp. Implements the protocol, so entirely dependent on that. 1
Provider: Datadog Maintained by Datadog. Implements the protocol, so entirely dependent on that. 1
Provider: GitHub Maintained by GitHub. Implements the protocol, so entirely dependent on that. 1
Provider: New Relic Maintained by New Relic. Implements the protocol, so entirely dependent on that. 1
Provider: PagerDuty Maintained by PagerDuty. Implements the protocol, so entirely dependent on that. (Never responded.) 1
TerraCognita Embeds internal Terraform libraries (MPL-2.0). Planning to migrate to forked OpenTofu libraries. There is no “support” involved like with other projects because they don’t call out to a binary. 1
terraform-docs Expected to continue to work, since it does not interface with the terraform binary directly; it just parses the HCL. 1
Terraformer No response. 1
Terragrunt Gruntwork is a founding member of the OpenTofu Steering Committee. OpenTofu support made available in v0.52.0. It’s possible that Terraform will be dropped in the future (no timeline for this, however). 1, 2, 3
Terrascan No response. 1
Terratest Gruntwork is a founding member of the OpenTofu Steering Committee. OpenTofu support made available in v0.46.0. It’s possible that Terraform will be dropped in the future (no timeline for this, however). 1, 2
tenv Successor to tfenv and tfswitch. Supports Terraform, Terragrunt, and OpenTofu.
× tfenv Team has elected NOT to add support for OpenTofu. Use tenv instead. 1
× tflint Bundles Terraform source code. License changed to BUSL-1.1 with v0.51.0. There is no technical reason that we cannot continue using this to lint code. There may be legal reasons. 1, 2
tfschema Reads the protocol, so depends on compatibility of providers. There is no “support” involved like with other projects because they don’t call out to a binary. Added explicit support in v0.7.8. 1, 2
× tfsec Deprecated. Use Trivy instead. 1
× tfswitch Appears to be abandoned. Use tenv instead. 1
Trivy Integrates with Providers for cloud services. Will likely be supported as long as its Provider is supported. 1

opentofu-support's People

Contributors

skyzyx avatar

Stargazers

 avatar kvendingoldo avatar

Watchers

 avatar Vlad Ionescu avatar

opentofu-support's Issues

List of places where TF has been superseded by OpenTofu?

Hi, thanks for organizing your research on OpenTofu -- super helpful, especially the linked sources!

I thought I'd forward on my question from awesome-opentofu about collating a list of places where TF has been superseded by OpenTofu. For example:

On the GitHub Actions front, there's a rather limited choice, but it's worth mentioning DevSecTop/TF-via-PR as a CI-driven PR automation workflow for OpenTofu/Terraform -- note, I'm the project maintainer and I collaborated with tenv maintainers to integrate first-class support with their binary proxies as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.