Skip to content
byok8s

byok8s

Build your own kubectl in Go, one stage at a time — graded against a real Kubernetes cluster, not a fake client.

byok8s is a local course runner. You write one Go program and grow it across 30 stages until it does what kubectl does — find the cluster, ask the server what it serves, resolve any resource through discovery and the RESTMapper, print tables, select, watch, apply with server-side apply, describe, and stream logs, exec and port-forward.

Every stage is graded against a real kind cluster. Nothing inspects your source: the verdict is your program’s exit code and stdout, so any correct implementation passes.

30 stages

From “which server, as whom?” to port-forward — each stage adds one visible thing, and running a stage re-verifies every stage before it.

A real cluster

Graded against kind, in an isolated namespace per stage. create deployment really does produce pods; logs really does stream from a container.

A note per stage

A stage says whether your program behaves; it never says why. Every stage’s note covers the core concept, the Go APIs it needs, a hint ladder, and further reading — open any row in the catalog.

Verified references

Every stage ships a reference snapshot that passed stages 1..N cumulatively in CI — browse the per-stage diffs in the catalog.

Terminal window
git clone https://github.com/madhank93/byo-k8s-x && cd byo-k8s-x
mise install # go, kind, kubectl
byok8s up # create the local kind cluster
byok8s run 1 # verify stage 1

See Getting started for the full setup.