Skip to content

Getting started

  • Docker (or a Docker-compatible runtime) — kind runs the cluster in a container.
  • mise — pins the whole toolchain (Go, kind, kubectl, golangci-lint), so you don’t need any of it installed globally.
Terminal window
brew install mise # macOS; see mise docs for other platforms
Terminal window
git clone https://github.com/madhank93/kubeclientlings
cd kubeclientlings
mise install # provisions Go, kind, kubectl, golangci-lint
mise run up # creates the kind-kubeclientlings cluster
mise run watch # launches the interactive TUI

No Docker locally? The iximiuz Labs playground provisions a Linux machine with the kind cluster and CLI ready — nothing to install.

  1. The TUI highlights the next unfinished exercise and shows its file path.
  2. Open that file and fix the code — each exercise is broken on purpose.
  3. Remove the // I AM NOT DONE marker when you think it’s done.
  4. Save — the exercise re-runs. It only advances when it compiles, the linter is clean, and the checks against the kind cluster pass.

Useful commands:

Terminal window
mise run list # all exercises + progress
./bin/kubeclientlings run <exercise> # run one exercise
./bin/kubeclientlings hint <exercise> # show its hint
./bin/kubeclientlings reset <exercise> # restore the original broken file
mise run doctor # check tooling + cluster health
mise run down # delete the kind cluster

Every exercise has a hint in the TUI (or kubeclientlings hint <name>), and the catalog shows each exercise’s code and hint with a link to the worked solution on GitHub.