// the find
kubernetes-sigs/kubebuilder
Kubebuilder - SDK for building Kubernetes APIs using CRDs
Kubebuilder is the kubernetes-sigs scaffolding tool and library for building Kubernetes operators and CRD-based APIs in Go, built on top of controller-runtime and controller-tools. It's for teams writing custom controllers/operators who want the canonical, Rails-like project layout instead of assembling client-go, controller-runtime, and webhook plumbing by hand.
It's built directly on controller-runtime and controller-tools — the same libraries the real Kubernetes controllers use — so you're not learning a parallel abstraction that diverges from upstream. The plugin architecture is genuinely useful beyond Go: Operator-SDK builds its Ansible and Helm operator support on top of it rather than forking it. Engineering hygiene is solid for a CLI tool this size — OpenSSF Scorecard, CodeQL, apidiff checks on releases, and cross-platform test workflows all run in CI, not just a README badge.
Scaffolding means the generated boilerplate becomes code you own; upgrading to a newer kubebuilder version means re-scaffolding and manually diffing/merging rather than bumping a dependency version, which gets painful on older projects. Compatibility is pinned hard to specific client-go/k8s.io versions per release — the docs are explicit that mixing versions outside what was tested is unsupported, so a k8s API upgrade can force a kubebuilder upgrade too. The `// +kubebuilder:` marker-comment system driving RBAC and CRD generation is effectively a DSL embedded in Go comments with no compile-time checking — easy to typo a marker and get a working build with wrong RBAC. Windows isn't officially supported and the maintainers say contributions toward it aren't planned, which is a real constraint if your team isn't on macOS/Linux.