254 lines
10 KiB
HTML
254 lines
10 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> lets you declaratively
|
||
manage your infrastructure. It’s an open-source and 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">Official
|
||
registry</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/opentofu/blob/main/TSC_SUMMARY.md#technical-steering-committee-tsc-summary">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>
|
||
<ul>
|
||
<li><a href="https://youtu.be/rR4IbhlRSkI">End-to-end encryption for
|
||
state files</a> 🚧</li>
|
||
<li><a
|
||
href="https://twitter.com/OpenTofuOrg/status/1696913055576387599">OCI-compliant
|
||
registry support</a> 🚧</li>
|
||
<li><a
|
||
href="https://www.youtube.com/shorts/4aHZjDz2VWg">Provider-defined
|
||
functions</a> 🚧</li>
|
||
</ul>
|
||
<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/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 aims to simplify OpenTofu usage and enforce best
|
||
practices.</li>
|
||
</ul>
|
||
<h3 id="ci">CI</h3>
|
||
<ul>
|
||
<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/devsectop/tf-via-pr-comments">tf-via-pr-comments</a>
|
||
- GitHub Action to run Terraform or OpenTofu CLI commands via PR
|
||
comments.</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 it easier to write automated tests for your
|
||
infrastructure code.</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 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://github.com/seal-io/walrus">walrus</a> - Walrus is
|
||
an open-source application management platform based on IaC tools
|
||
including OpenTofu, Terraform and others.</li>
|
||
</ul>
|
||
<h3 id="registry">Registry</h3>
|
||
<ul>
|
||
<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 an 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>
|
||
</ul>
|
||
<h3 id="helpers">Helpers</h3>
|
||
<ul>
|
||
<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>
|
||
</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>
|
||
</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 2024</a></li>
|
||
</ul>
|
||
<h2 id="podcasts">Podcasts</h2>
|
||
<!-- DESC, from most recent to oldest. -->
|
||
<ul>
|
||
<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>
|