Learn Infrastructure as Code (IaC) with OpenTofu from the basics to production-ready: prerequisites & environment setup, the history of the fork from Terraform & the Linux Foundation ecosystem, core workflow & CLI commands, seamless migration from Terraform, providers & resource declarations, input variables & outputs, remote state management & state locking, the exclusive native client-side state encryption feature, dynamic provider iteration, advanced expressions & loops, state manipulation & import workflows, reusable modules & registry, formatting & the native tofu test testing framework, Terragrunt integration, CI/CD pipeline automation, managed platforms & GitOps tools, secret management & state hardening, policy as code with OPA, multi-cloud provisioning, drift detection & auto-remediation, disaster recovery & encrypted state recovery, and a complete production-grade enterprise architecture in 21 episodes.
Before writing your first OpenTofu resource, you need a solid foundation: basic Linux CLI, cloud computing concepts, an understanding of structured data formats, installing the tofu binary, and setting up AWS, GCP, or LocalStack credentials. This episode prepares everything so you can practice without obstacles.

Why does OpenTofu exist? This episode tells the story of HashiCorp's license change for Terraform from MPL v2 to the Business Source License in August 2023, the birth of the OpenTF manifesto, Linux Foundation support, and the commitment to stay 100 percent open source and compatible with Terraform 1.5.x.

In this episode you run the OpenTofu core workflow: init, plan, apply, and destroy. We also cover the OpenTofu Registry where providers and modules are downloaded, as well as a drop-in replacement migration procedure from Terraform without changing a single line of HCL.

Dive into the heart of OpenTofu HCL: provider declarations, writing resource blocks, and fetching data from existing infrastructure via data sources. After this episode, you can read and write your first correct, reviewable OpenTofu configuration.

Good configuration is never hardcoded. This episode covers input variables for parameterization, local values for DRY expressions, and output values for extracting information post-apply. This is the foundation for writing OpenTofu code that's reusable across teams and multi-environment setups.

The state file is the bridge between HCL code and real cloud resources. This episode covers the components of opentofu.tfstate, how to move it to remote backends like AWS S3, GCP GCS, and Azure Blob, and the state locking mechanism that keeps teams safe from concurrent apply conflicts.

State files store secret data such as passwords and API keys in plaintext in the remote backend. This episode covers OpenTofu's exclusive feature: client-side state encryption before it's sent to storage, complete with AWS KMS, GCP KMS, and PBKDF2 passphrase key providers.

Terraform forbids using for_each and count on provider configurations, forcing multi-region setups to be written manually one by one. This episode covers OpenTofu's exclusive feature: dynamic provider iteration that loads many provider instances at once for concise multi-region and multi-account architectures.

Explore OpenTofu's built-in functions for strings, collections, and filesystem operations, then master the count, for_each, depends_on, and lifecycle meta-arguments, along with for expressions and ternary conditionals for writing concise, dynamic, and expressive HCL.

How to import already-running infrastructure into OpenTofu using a declarative import block or tofu import, then refactor without destroy using the moved block and tofu state mv, rm, list, and show so state always stays in sync with reality.
