undefined labs - 20 hands-on challenges
Solve 20 real undefined challenges in an isolated container in your browser. No setup, no fake shells.
- Fix and Apply Your First Stack - beginner · Repair invalid HCL and provision an instance and bucket with real Terraform.
- Configure a Local State Backend - beginner · Author a backend block and migrate state to an explicit local path.
- Build Stable Resources with for_each - beginner · Replace fragile numeric addresses with meaningful map keys.
- Discover Existing Infrastructure - beginner · Read a shared instance through a provider data source.
- Resolve Variable Precedence - beginner · Diagnose an auto-loaded variable file overriding terraform.tfvars.
- Recover from Infrastructure Drift - intermediate · Detect an out-of-band resize and reconcile actual infrastructure with configuration.
- Refactor a Reusable Service Module - intermediate · Replace duplicated infrastructure with variables, outputs, and two local module calls.
- Model Resource Dependencies - intermediate · Use expression references and depends_on to build the real graph.
- Reuse Config Across Workspaces - intermediate · Isolate dev and prod state with CLI workspaces.
- Review and Apply a Saved Replacement Plan - intermediate · Replace a tainted resource by applying the exact reviewed plan artifact.
- Recover a Stale Remote State Lock - advanced · Inspect and safely remove a stale lock from a local HTTP state backend.
- Import an Existing Production Database - advanced · Adopt an unmanaged FakeCloud database without recreating or changing it.
- Rename Without Recreating - advanced · Preserve infrastructure during a Terraform address refactor.
- Consume Outputs Across State Boundaries - advanced · Connect independently managed roots through terraform_remote_state.
- Enforce Lifecycle Safety - advanced · Protect critical resources while handling replacement and accepted drift.
- Lock Terraform and Provider Versions - beginner · Constrain runtime compatibility and capture provider selection.
- Validate Module Inputs - beginner · Reject unsupported values early with a useful validation error.
- Protect Sensitive CLI Output - intermediate · Propagate sensitivity from an input to its output while keeping public metadata visible.
- Replace Actions with terraform_data - intermediate · Tie an imperative publish action to a meaningful infrastructure change.
- Issue a Certificate from the Right CA - advanced · Model domain identity, CA chains, expiry, renewal windows, and sensitive key output.