Syllabus — OpenTofu Practitioner Workshop¶
A hands-on, vendor-neutral OpenTofu workshop. Roughly 50% presentation, 50%
practice. Labs run against LocalStack or mock_provider — no cloud account.
This page is the public section map. Facilitators should also read the facilitator runbook. Architectural decisions live in docs/decisions/ on GitHub.
Spine: Author → Test → Scale¶
| Phase | Days (canonical cut) | What learners build |
|---|---|---|
| Author | Day 1 | HCL, plan/apply, state + encryption, variables, validation, modules, naming/labels |
| Test | Day 2 | Testing pyramid, fmt/lint, scanners, tofu test, mocks, CI honesty |
| Scale | Day 3 | Terramate stacks, codegen, orchestration, change detection, capstone |
Superset vs canonical 3-day cut¶
The section library (S00–S28) is a content superset — larger than three
days on purpose. Delivery boils down via hide: toggles and the Day 1 fit plan
in the README.
- Tier:
core(always in the cut) ·recommended(keep if time) ·optional(cut first). - Canonical cut: slides-3day.md — serve with
task dev:3day. - Day 1 overflows a raw full-section budget; apply the README fit plan before facilitating.
- Day 2–3 full-section minute totals are not published in-repo yet — pace from lab durations and presenter notes (see the runbook). Do not invent day totals.
Section map (S00–S28)¶
| ID | Section | Tier | Day | Status | 3-day cut |
|---|---|---|---|---|---|
| S00 | Welcome & setup | core | 1 | authored | Compress (fit plan) |
| S01 | Infrastructure as Code | core | 1 | authored | Compress |
| S02 | HCL & building blocks | core | 1 | authored | Compress |
| S03 | The core workflow | core | 1 | authored | Compress |
| S04 | State | core | 1 | authored | Compress |
| S05 | State encryption | core | 1 | authored | Compress |
| S06 | Variables, validation & types | core | 1 | authored | Compress |
| S15 | Validation, preconditions & checks | core | 1 | authored | Compress (keep blocking + check) |
| S07 | Modules | core | 1 | authored | Compress |
| S08 | Naming & labelling module | core | 1 | authored | Keep |
| S09 | Best practices | recommended | 1 | authored | Skip (fit plan) |
| S10 | OpenTofu differentiators | recommended | 1 | authored | Skip (fit plan) |
| S11 | The TACO landscape | optional | 1 | authored | Skip (hide) |
| S12 | Why test IaC + testing pyramid | core | 2 | authored | Keep |
| S13 | Static analysis & formatting | core | 2 | authored | Keep |
| S14 | Security & policy scanners | core | 2 | authored | Keep |
| S16 | Native testing — tofu test |
core | 2 | authored | Keep |
| S17 | Mocking providers | core | 2 | authored | Keep |
| S18 | Integration, e2e & cost | optional | 2 | authored | Skip (hide) |
| S19 | Testing in CI/CD | recommended | 2 | authored | Keep |
| S20 | Why Terramate | core | 3 | authored | Keep |
| S21 | Stacks | core | 3 | authored | Keep |
| S22 | Code generation | core | 3 | authored | Keep |
| S23 | Orchestration & ordering | core | 3 | authored | Keep |
| S24 | Change detection & filtering | recommended | 3 | authored | Keep / skip if short |
| S25 | Terramate in CI + Cloud | optional | 3 | authored | Skip (hide) unless time |
| S26 | Capstone & wrap-up | core | 3 | authored | Keep |
| S27 | Terragrunt vs Terramate | optional | 3 | authored | Skip (hide) — appendix |
| S28 | Ecosystem tooling | optional | 3 | authored | Skip (hide) — appendix |
Section timings (planning estimates)¶
Slides and lab minutes are unrehearsed planning estimates from
scripts/deck-manifest.mjs. Day 1 fit-plan compression lives in the README and
slides-3day.md markers — not in this table.
| ID | Section | Slides | Lab |
|---|---|---|---|
| S00 | Welcome & setup | 40 | 20 |
| S01 | Infrastructure as Code | 40 | 20 |
| S02 | HCL & building blocks | 50 | 20 |
| S03 | The core workflow | 60 | 20 |
| S04 | State | 50 | 20 |
| S05 | State encryption | 60 | 25 |
| S06 | Variables, validation & types | 50 | 25 |
| S15 | Validation, preconditions & checks | 50 | 30 |
| S07 | Modules | 60 | 35 |
| S08 | Naming & labelling module | 65 | 30 |
| S09 | Best practices | 50 | 30 |
| S10 | OpenTofu differentiators | 45 | 25 |
| S11 | The TACO landscape | 35 | 20 |
| S12 | Why test IaC + testing pyramid | 20 | 20 |
| S13 | Static analysis & formatting | 30 | 30 |
| S14 | Security & policy scanners | 35 | 35 |
| S16 | Native testing — tofu test |
35 | 35 |
| S17 | Mocking providers | 30 | 30 |
| S18 | Integration, e2e & cost | 30 | 30 |
| S19 | Testing in CI/CD | 30 | 30 |
| S20 | Why Terramate | 25 | 25 |
| S21 | Stacks | 30 | 30 |
| S22 | Code generation | 30 | 30 |
| S23 | Orchestration & ordering | 30 | 30 |
| S24 | Change detection & filtering | 25 | 25 |
| S25 | Terramate in CI + Cloud | 25 | 25 |
| S26 | Capstone & wrap-up | 60 | 60 |
| S27 | Terragrunt vs Terramate | 20 | 20 |
| S28 | Ecosystem tooling | 20 | 20 |
Canonical visible Day 1 order after fit-plan skips:
S00 → S01 → S02 → S03 → S04 → S05 → S06 → S15 → S07 → S08.
Day 2: S12 → S13 → S14 → S16 → S17 → S19.
Day 3: S20 → S21 → S22 → S23 → S24 → S26 (+ optional S25; S27 and S28 are
hidden appendices — Terragrunt comparison and ecosystem tooling, superset only).
Related¶
- Labs by day
- Live decks & PDFs
- Associate alignment (design check, not exam prep)