Getting Started
Prerequisites
Section titled “Prerequisites”A Docker runtime plus a few CLIs. On macOS these come from the dotfiles Brewfile:
- Docker runtime — OrbStack or Docker Desktop (must be running)
- kind, kubectl, yq
- Go ≥ 1.25 (only for the TUI)
Reproducible toolchain
Section titled “Reproducible toolchain”The repo pins tool versions with mise.toml (and go.sum locks the Go deps):
mise install # fetch the pinned go / kubectl / kind / yqmise run setup # install + go build + go testgit clone https://github.com/madhank93/kubelingscd kubelingsRun the TUI
Section titled “Run the TUI”just tui # build + launch (or: go run ./cmd/kubelings)Press ↵ play on a lesson: it spins up a local kind cluster (if needed),
builds the scenario, and drops you into a shell wired to the cluster — with the
task and helper commands (task, hint, verify, solution, k=kubectl).
Full walkthrough: The TUI.
Or use the CLI
Section titled “Or use the CLI”No TUI needed:
scripts/run-challenge-local.sh up # 3-node kind clusterscripts/run-challenge-local.sh rolling-update initscripts/run-challenge-local.sh rolling-update verifyscripts/run-challenge-local.sh down # destroy the clusterSee CLI.
Cluster lifecycle
Section titled “Cluster lifecycle”The kind cluster is created on demand (u / play) and persists across
lessons and TUI restarts — quitting does not destroy it. It is removed only
when you run down (or press d in the TUI). This keeps switching between
scenarios fast.