Bosun
A Kubernetes operator and internal platform in miniature, in Go — one object becomes a whole environment.
LEVEL 1THE PROBLEM
Every time a system has to stand up somewhere new — a fresh environment, a different cluster, a customer's platform team on a call with you — the knowledge lives in a runbook and in somebody's head. A handful of Deployments and Services, a Postgres, a broker, secrets, and the ordering between them, retyped by hand and wrong in a different way each time. That is the deployment half of my day job as a support problem: the software is fine, the environment is the thing that breaks. An operator is the standard answer — teach the cluster one noun, then let a controller keep reality matching it. Bosun is my attempt at that noun and that controller: opinionated CRDs and a golden path that turn "I want this environment" into something a cluster reconciles, so standing a stack up stops being a conversation and becomes a manifest. It was built in the open, milestone by milestone, and it is finished — so this page describes what shipped, including the things it deliberately never does.
LEVEL 2THE BUILD
Three CRDs and three reconcilers in one Go module. ManagedApp is the unit — image, replicas and port, because a field the operator would only store is a promise it does not keep. Its controller server-side applies the Deployment, the Service and four observability objects it owns under its own field manager, claiming only the Service port list exclusively, writes Ready and Progressing conditions back against the observed generation, and holds a finalizer that tears the children down in order. PaymentStack is the golden path: apps, a CloudNativePG database and Redpanda topics, composed as unstructured objects — for the database and the topics the repo vendors CRD YAML for envtest and imports no Go SDK. PreviewEnvironment is that same stack on a deadline. The loop is level-triggered with no periodic resync anywhere.

BOSS FIGHTTHE RESULT
Feature-complete: every milestone from M0 to M7c landed. One command takes a machine with no cluster to a PaymentStack reporting Ready on a real CloudNativePG database and a real Redpanda broker, with Prometheus scraping both apps and Grafana serving the dashboards it generated — 4m28s measured against a 900-second ceiling, zero manual steps. That is the number that matters: an environment someone else can reproduce without me on the call. An eleven-scenario chaos suite, the manager race-built and SIGKILLed mid-reconcile, puts deleted children back in one to two seconds. The gaps are written down as tests, not hidden: four owned kinds are watched by nothing, so one deleted out of band stays deleted until its parent reconciles. There is no Degraded condition, no HPA or PodDisruptionBudget, no CLI and no container image — the manager runs out-of-cluster under a developer kubeconfig. Local kind clusters only, no production traffic, not a supported operator.
HIGH SCORES
- 4m30sZERO TO ENVIRONMENTFRESH KIND CLUSTER · 900S GATE
- 1–2 sCHILD RECONVERGEDELETED CHILD · 120S BUDGET
- 151TEST FUNCTIONS75 ENVTEST · 71 UNIT · 5 CHAOS
- 11CHAOS SCENARIOSOWN CLUSTER · RACE DETECTOR
- 3CRDS+ 3 CONTROLLERS · 1 MANAGER
- 76ADRSNUMBERED · README EXCLUDED