What is Kubebuilder

Kubebuilder is an SDK for rapidly building and publishing Kubernetes APIs in Go.It builds on top of the canonical techniques used to build the core Kubernetes APIsto provide simple abstractions that reduce boilerplate and toil.

Similar to web development frameworks such as Ruby on Rails and SpringBoot,Kubebuilder increases velocity and reduces the complexity managed bydevelopers.

Included in Kubebuilder:

  • Initializing projects with a base structure including
    • Go package dependencies at canonical versions.
    • main program entry point
    • Makefile for formatting, generating, testing and building go
    • Dockerfile for building container images
  • Scaffolding APIs with
    • Resource (Model) definition
    • Controller implementation
    • Integration tests for Resource and Controller
    • CRD definition
  • Simple abstractions for implementing APIs
    • Controllers
    • Resource Schema Validation
    • Validating Webhooks
  • Artifacts for publishing APIs for installation into clusters
    • Namespace
    • CRDs
    • RBAC Roles and RoleBindings
    • Controller StatefulSet + Service
  • API reference documentation with examples

Kubebuilder is developed on top of the controller-runtime and controller-tools libraries.