331 lines
14 KiB
HTML
331 lines
14 KiB
HTML
<h1 id="awesome-opentofu-awesome">Awesome OpenTofu <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a> <!-- omit in toc --></h1>
|
||
<blockquote>
|
||
<p>A curated and collaborative list of awesome OpenTofu resources and
|
||
tools.</p>
|
||
</blockquote>
|
||
<p><a href="https://opentofu.org/">OpenTofu</a> allows you to
|
||
declaratively manage your infrastructure. It’s an open-source,
|
||
community-driven alternative to Terraform.</p>
|
||
<h2 id="contents">Contents <!-- omit in toc --></h2>
|
||
<ul>
|
||
<li><a href="#official">Official</a></li>
|
||
<li><a href="#community">Community</a></li>
|
||
<li><a href="#features">Features</a></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#environment-managers">Environment managers</a></li>
|
||
<li><a href="#wrappers">Wrappers</a></li>
|
||
<li><a href="#ci">CI</a></li>
|
||
<li><a href="#tests">Tests</a></li>
|
||
<li><a href="#state">State</a></li>
|
||
<li><a href="#providers">Providers</a></li>
|
||
<li><a href="#platforms">Platforms</a></li>
|
||
<li><a href="#registry">Registry</a></li>
|
||
<li><a href="#helpers">Helpers</a></li>
|
||
</ul></li>
|
||
<li><a href="#learning">Learning</a></li>
|
||
<li><a href="#media">Media</a></li>
|
||
<li><a href="#podcasts">Podcasts</a></li>
|
||
</ul>
|
||
<h2 id="official">Official</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/opentofu/opentofu">OpenTofu
|
||
repository</a> 🎉</li>
|
||
<li><a href="https://opentofu.org/announcement">Fork
|
||
announcement</a></li>
|
||
<li><a href="https://github.com/opentofu/registry">Registry</a></li>
|
||
<li><a
|
||
href="https://github.com/opentofu/opentofu-mcp-server#opentofu-mcp-server">Registry
|
||
MCP Server</a></li>
|
||
<li><a
|
||
href="https://github.com/opentofu/opentofu/blob/main/WEEKLY_UPDATES.md#weekly-updates">Weekly
|
||
updates</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=aEoMzUza6Ok&list=PLnVotLM2QsyhCc1_8PA7fbVF-ixt4_XAY">Office
|
||
hours</a></li>
|
||
<li><a href="https://github.com/opentofu/org/tree/main/TSC">Technical
|
||
Steering Committee updates</a></li>
|
||
</ul>
|
||
<h2 id="community">Community</h2>
|
||
<p><em>Communication channels, meetups, newsletters, and
|
||
forums.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/orgs/opentofu/discussions">OpenTofu
|
||
GitHub Discussion</a></li>
|
||
<li><a href="https://www.linkedin.com/company/opentofuorg/">OpenTofu
|
||
LinkedIn</a></li>
|
||
<li><a href="https://opentofu.org/slack">OpenTofu Slack</a></li>
|
||
<li><a href="https://twitter.com/opentofuorg">OpenTofu Twitter</a></li>
|
||
</ul>
|
||
<h2 id="features">Features</h2>
|
||
<!--lint disable double-link-->
|
||
<ul>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#enhanced-moved-and-removed-blocks">1.10
|
||
- Enhanced moved and removed blocks</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#external-key-providers">1.10
|
||
- External key providers</a></li>
|
||
<li><a href="https://opentofu.org/docs/cli/oci_registries/">1.10 - OCI
|
||
registry support</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#native-s3-state-locking">1.10
|
||
- S3 native state locking</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#target-and-exclude-files">1.10
|
||
- Target and exclude files</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#provider-iteration-for_each">1.9
|
||
- Provider iteration with for_each</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#the--exclude-flag">1.9
|
||
- The -exclude flag</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#early-variablelocals-evaluation">1.8
|
||
- Early variable and locals evaluation</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/intro/whats-new/#override-files-for-opentofu-keeping-compatibility">1.8
|
||
- Override files for OpenTofu (.tofu)</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/v1.7/intro/whats-new/#state-encryption">1.7
|
||
- End-to-end encryption for state files</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/v1.7/intro/whats-new/#loopable-import-blocks">1.7
|
||
- Loopable import blocks</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/v1.7/intro/whats-new/#provider-defined-functions">1.7
|
||
- Provider-defined functions</a></li>
|
||
<li><a
|
||
href="https://opentofu.org/docs/v1.7/intro/whats-new/#removed-block">1.7
|
||
- Removed block</a></li>
|
||
<li><a href="https://cani.tf/">CanI.TF - Feature parity between
|
||
Terraform and OpenTofu</a></li>
|
||
</ul>
|
||
<!--lint enable double-link-->
|
||
<h2 id="tools">Tools</h2>
|
||
<h3 id="environment-managers">Environment managers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/alexellis/arkade">arkade</a> - CLI and
|
||
Kubernetes app installer.</li>
|
||
<li><a
|
||
href="https://github.com/virtualroot/asdf-opentofu">asdf-opentofu</a> -
|
||
OpenTofu plugin for asdf version manager.</li>
|
||
<li><a href="https://github.com/tofuutils/tenv">tenv</a> - Terraform and
|
||
OpenTofu version manager written in Go.</li>
|
||
<li><a href="https://github.com/ASleepyCat/tfswitcher">tfswitcher</a> -
|
||
Terraform and OpenTofu version switcher written in Rust.</li>
|
||
<li><a href="https://github.com/tofuutils/tofuenv">tofuenv</a> -
|
||
OpenTofu version manager inspired by tfenv.</li>
|
||
</ul>
|
||
<h3 id="wrappers">Wrappers</h3>
|
||
<p><em>Simplify your OpenTofu workflows with a thin wrapper.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cloudposse/atmos">Atmos</a> -
|
||
Orchestration tool that keeps environment configuration DRY.</li>
|
||
<li><a href="https://github.com/gruntwork-io/terragrunt">Terragrunt</a>
|
||
- Keep your configurations DRY, work with multiple modules, and manage
|
||
remote state.</li>
|
||
<li><a href="https://github.com/terramate-io/terramate">Terramate</a> -
|
||
Automation, orchestration, and code generation for OpenTofu, Terraform,
|
||
Kubernetes, and others.</li>
|
||
<li><a href="https://github.com/SeisoLLC/easy_infra">easy_infra</a> -
|
||
Docker container to simplify and secure the use of infrastructure as
|
||
code.</li>
|
||
<li><a href="https://github.com/leg100/pug">pug</a> - A terminal user
|
||
interface for power users.</li>
|
||
<li><a href="https://github.com/dex4er/tf">tf</a> - Less verbose and
|
||
more friendly command outputs.</li>
|
||
<li><a href="https://github.com/Ant0wan/tfam">tfam</a> - Rust-powered
|
||
wrapper for concurrent Terraform/OpenTofu apply, enabling
|
||
multi-deployment support.</li>
|
||
<li><a href="https://github.com/Ant0wan/tfexe">tfexe</a> - Rust-powered
|
||
wrapper for seamless execution of tfswitch and Terraform/OpenTofu with
|
||
version control.</li>
|
||
<li><a href="https://github.com/claranet/tfwrapper">tfwrapper</a> -
|
||
Python wrapper that simplifies OpenTofu usage and enforces best
|
||
practices.</li>
|
||
</ul>
|
||
<h3 id="ci">CI</h3>
|
||
<ul>
|
||
<li><a href="https://www.runatlantis.io/">Atlantis</a> - Automating
|
||
workflows via pull requests.</li>
|
||
<li><a href="https://docs.burrito.tf/overview/">Burrito</a> - Burrito is
|
||
a TACoS (Terraform Automation and Collaboration Software) that works
|
||
inside Kubernetes.</li>
|
||
<li><a href="https://github.com/OP5dev/TF-via-PR">TF-via-PR</a> - GitHub
|
||
Action to init, plan and apply Terraform/OpenTofu via PR
|
||
automation.</li>
|
||
<li><a
|
||
href="https://github.com/tofuutils/pre-commit-opentofu">pre-commit-opentofu</a>
|
||
- Git pre-commit hooks plugin.</li>
|
||
<li><a
|
||
href="https://github.com/opentofu/setup-opentofu">setup-opentofu</a> -
|
||
Set up OpenTofu CLI in your GitHub Actions workflow.</li>
|
||
<li><a
|
||
href="https://github.com/dflook/terraform-github-actions">terraform-github-actions</a>
|
||
- GitHub Actions for OpenTofu.</li>
|
||
<li><a
|
||
href="https://github.com/flux-iac/tofu-controller">tofu-controller</a> -
|
||
GitOps OpenTofu and Terraform controller for Flux.</li>
|
||
</ul>
|
||
<h3 id="tests">Tests</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gruntwork-io/terratest">Terratest</a> -
|
||
Go library that makes writing automated tests for your infrastructure
|
||
code easier.</li>
|
||
</ul>
|
||
<h3 id="state">State</h3>
|
||
<p><em>Analyze and manipulate OpenTofu’s state.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/minamijoyo/tfmigrate">tfmigrate</a> -
|
||
State migration tool.</li>
|
||
</ul>
|
||
<h3 id="providers">Providers</h3>
|
||
<p><em>Inspect and interact with OpenTofu providers.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/minamijoyo/tfschema">tfschema</a> -
|
||
Schema inspector for providers.</li>
|
||
</ul>
|
||
<h3 id="platforms">Platforms</h3>
|
||
<p><em>Alternatives to Terraform Cloud.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/diggerhq/digger">digger</a> -
|
||
Open-source IaC orchestration tool. Digger allows you to run IaC in your
|
||
existing CI pipeline.</li>
|
||
<li><a href="https://github.com/AzBuilder/terrakube">terrakube</a> -
|
||
Open-source platform with a private registry, remote state, custom
|
||
flows, scheduled workspaces, and visual states.</li>
|
||
<li><a href="https://github.com/tofutf/tofutf">tofutf</a> - Open-source
|
||
alternative to Terraform Enterprise with SSO, team management, agents,
|
||
etc.</li>
|
||
<li><a href="https://terrateam.io">Terrateam</a> - Open-source
|
||
alternative to Terraform Cloud/Enterprise, GitOps-first with native
|
||
GitHub integration and designed for scale, security, and
|
||
reliability.</li>
|
||
</ul>
|
||
<h3 id="registry">Registry</h3>
|
||
<ul>
|
||
<li><a href="https://library.tf/">library.tf</a> - An indexer of
|
||
registries for providers and modules with insights and
|
||
documentation.</li>
|
||
<li><a
|
||
href="https://github.com/boring-registry/boring-registry">boring-registry</a>
|
||
- Boring-registry is an open-source module and provider registry
|
||
compatible with OpenTofu.</li>
|
||
<li><a href="https://github.com/seal-io/hermitcrab">hermitcrab</a> -
|
||
Registry network mirroring service compatible with OpenTofu.</li>
|
||
<li><a href="https://github.com/haoliangyu/terrac">terrac</a> - Minimal
|
||
private module registry compatible with OpenTofu.</li>
|
||
<li><a
|
||
href="https://docs.gitlab.com/ee/user/packages/terraform_module_registry/">GitLab
|
||
Module Registry</a> - Use GitLab projects as a private registry for
|
||
terraform modules.</li>
|
||
<li><a href="https://github.com/terralist/terralist">terralist</a> -
|
||
Private registry for providers and modules.</li>
|
||
<li><a href="https://github.com/outsideris/citizen">citizen</a> -
|
||
Private registry for modules and providers with support for multiple
|
||
databases and storages.</li>
|
||
<li><a href="https://github.com/devoteamgcloud/petra">petra</a> -
|
||
Private registry manager using Google Cloud Storage.</li>
|
||
<li><a href="https://github.com/PacoVK/tapir">tapir</a> - Private
|
||
registry for modules and providers with a UI.</li>
|
||
<li><a
|
||
href="https://github.com/nrkno/terraform-registry">terraform-registry</a>
|
||
- Modules registry with authentication and support for multiple
|
||
backends.</li>
|
||
<li><a href="https://github.com/MatthewJohn/terrareg">terrareg</a> -
|
||
Open-source modules registry with UI, optional Git integration and deep
|
||
analysis.</li>
|
||
<li><a href="https://github.com/veepee-oss/terustry">terustry</a> -
|
||
Proxy registry for providers.</li>
|
||
<li><a href="https://github.com/djetelina/tofuref">tofuref</a> - TUI for
|
||
OpenTofu provider registry.</li>
|
||
</ul>
|
||
<h3 id="helpers">Helpers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/opentofu/tofu-ls">OpenTofu Language
|
||
Server</a> - OpenTofu Language Server.</li>
|
||
<li><a href="https://open-vsx.org/extension/OpenTofu/vscode-opentofu">VS
|
||
Code Extension</a> - Extension for Visual Studio Code with the OpenTofu
|
||
Language Server adds editing features for OpenTofu files such as syntax
|
||
highlighting, IntelliSense, code navigation, code formatting, module
|
||
explorer.</li>
|
||
<li><a href="https://github.com/ashpool37/zed-extension-opentofu">zed
|
||
Extension</a> - Extension for the Zed Editor.</li>
|
||
<li><a href="https://github.com/env0/terratag">terratag</a> - CLI tool
|
||
allowing for tags or labels to be applied across an entire set of
|
||
OpenTofu/Terraform files.</li>
|
||
<li><a href="https://github.com/minamijoyo/tfupdate">tfupdate</a> -
|
||
Update version constraints in your Terraform / OpenTofu
|
||
configurations.</li>
|
||
</ul>
|
||
<h2 id="learning">Learning</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://killercoda.com/quincycheng/course/course_opentofu">OpenTofu
|
||
Course</a> - Interactive tutorials.</li>
|
||
<li><a href="https://www.manning.com/books/terraform-in-depth">Terraform
|
||
in Depth</a> - Book with OpenTofu sections.</li>
|
||
<li><a
|
||
href="https://www.udemy.com/course/infrastructure-automation-with-opentofu-hands-on-devops/?couponCode=1D97F4D8FFE62E296BE1">Infrastructure
|
||
automation with OpenTofu</a> - Learn infrastructure provisioning with
|
||
lectures, quizzes, hands-on demos and coding exercises.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=v9rJgtHzxUk">Migrating From
|
||
Terraform To OpenTofu</a> - Introduction to OpenTofu history and how to
|
||
migrate.</li>
|
||
</ul>
|
||
<h2 id="media">Media</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=Ha77rpusEDM&t=1190s">OSS EU
|
||
2023 - Announcement</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=-8sOE9-icmY&t=15116s">OSS EU
|
||
2023 - Project Overview</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=HeUz6TMg82U">Code To Cloud
|
||
- Getting Started With OpenTofu</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLnVotLM2Qsyiw_6Pd_9WxRRLdrUAs3c1c">CNCF
|
||
- OpenTofu Day Europe 2024</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLnVotLM2QsyhhCO5TgEUsAip601j3NUlm">CNCF
|
||
- OpenTofu Day North America 2024</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P1WUOx9Ny6Q3JJxiAs1A3M">CNCF
|
||
- OpenTofu Day Europe 2025</a></li>
|
||
</ul>
|
||
<h2 id="podcasts">Podcasts</h2>
|
||
<!-- DESC, from most recent to oldest. -->
|
||
<ul>
|
||
<li><a
|
||
href="https://se-radio.net/2025/01/se-radio-652-christian-mesh-on-opentofu/">SE
|
||
Radio: Christian Mesh on OpenTofu</a></li>
|
||
<li><a
|
||
href="https://kubernetespodcast.com/episode/232-opentofu/">Kubernetes
|
||
Podcast - OpenTofu, with Ohad Maislish</a></li>
|
||
<li><a
|
||
href="https://www.theiacpodcast.com/episode/expert-panel-on-opentofu-ga-release-licensing-and-oss-future">TheIaCPodcast
|
||
- Expert Panel on OpenTofu GA Release, Licensing, and OSS
|
||
Future</a></li>
|
||
<li><a href="https://www.contributor.fyi/opentofu">Contributor -
|
||
Community-Driven IaC</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=p0vDydkUWB4">Ned in the
|
||
Cloud - IaC Live Stream</a></li>
|
||
<li><a href="https://www.arresteddevops.com/open-tofu/">Arrested DevOps
|
||
- What’s Up With Open Terraform?</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=5QdUs9VKq5g">OpenObservability -
|
||
Terraform is no longer open source. Is OpenTF the successor?</a></li>
|
||
<li><a
|
||
href="https://www.thecloudgambit.com/2236725/13576531-the-future-of-opentf-with-ohad-maislish">TheCloudGambit
|
||
- The Future of OpenTF</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=QaU94LY891M">Oxide and
|
||
Friends - Fork in the road for Terraform?</a></li>
|
||
<li><a href="https://changelog.com/podcast/556">Changelog - OpenTF for
|
||
an open Terraform</a></li>
|
||
</ul>
|
||
<p><a href="https://github.com/virtualroot/awesome-opentofu">opentofu.md
|
||
Github</a></p>
|