Local toolchain & LocalStack¶
Get from a fresh laptop to a lab-ready environment. Labs use
mock_provider or
LocalStack — an AWS emulator on your machine. You need
no cloud account and incur no cloud bill.
One command: task setup¶
From the repository root:
task setup
That runs setup/bootstrap.sh (detects tools, prints versions, guides installs)
and pnpm install for the decks. It is safe to rerun and never installs without
confirmation. Missing tools return non-zero with install guidance and which labs
are affected.
No Task? The bootstrap script alone is enough for the CLI tools:
bash setup/bootstrap.sh
corepack enable && corepack prepare pnpm@11.9.0 --activate
pnpm install --frozen-lockfile
Prerequisites by workshop day¶
| Scope | Tools |
|---|---|
| Decks and Day 1 | OpenTofu ≥1.8, Node.js ≥20, pnpm, Task, Docker |
| Day 2 static analysis | TFLint |
| Day 2 security and policy | Trivy, Checkov, Conftest |
| Day 3 scale labs | Terramate |
| Optional Terratest (S18) | Docker (container lane) — or host Go ≥1.22 |
gum, awslocal, and the AWS CLI improve the local experience but are optional.
Go is not installed by default. Terratest is container-first — see the
README
and ADR 0011.
LocalStack for labs¶
Start the emulator before any lab marked for LocalStack:
task lab:up # Docker Compose → http://localhost:4566
# Docker-free alternative (kind / existing kube context):
task lab:up:k8s
Health check: http://localhost:4566/_localstack/health
Stop and wipe volumes (clean slate — PERSISTENCE=0):
task lab:down
# or: task lab:down:k8s
Full troubleshooting (image pin 4.9.2, panic reset, k8s path): setup/localstack.md on GitHub.
Next steps¶
| Goal | Link |
|---|---|
| First lab | Lab 00: setup |
| All labs by day | Labs index |
| Serve the 3-day deck | Run the slides locally (task dev:3day) |
| Facilitate | Facilitator runbook |