Don't use go get / go install, instead you MUST download a tar binary release or create your own release using
the release program.  To build your own release see CONTRIBUTING.md
Kubebuilder is a framework for building Kubernetes APIs using custom resource definitions (CRDs).
Note: kubebuilder does not exist as an example to copy-paste, but instead provides powerful libraries and tools to simplify building and publishing Kubernetes APIs from scratch.
See the Getting Started documentation.
GitBook: book.kubebuilder.com GitHub Repo: kubernetes-sigs/kubebuilder Slack channel: #kubeuilder Google Group: [email protected] Planned Work: Sprint Dashboard
Building Kubernetes tools and APIs involves making a lot of decisions and writing a lot of boilerplate.
In order to facilitate easily building Kubernetes APIs and tools using the canonical approach, this framework provides a collection of Kubernetes development tools to minimize toil.
Kubebuilder attempts to facilitate the following developer workflow for building APIs
- Create a new project directory
 - Create one or more resource APIs as CRDs and then add fields to the resources
 - Implement reconcile loops in controllers and watch additional resources
 - Test by running against a cluster (self-installs CRDs and starts controllers automatically)
 - Update bootstrapped integration tests to test new fields and business logic
 - Build and publish a container from the provided Dockerfile
 
Building APIs using CRDs, Controllers and Admission Webhooks.
Provide clean library abstractions with clear and well exampled godocs.
- Prefer using go interfaces and libraries over relying on code generation
 - Prefer using code generation over 1 time init of stubs
 - Prefer 1 time init of stubs over forked and modified boilerplate
 - Never fork and modify boilerplate
 
- Provide higher level libraries on top of low level client libraries
- Protect developers from breaking changes in low level libraries
 - Start minimal and provide progressive discovery of functionality
 - Provide sane defaults and allow users to override when they exist
 
 - Provide code generators to maintain common boilerplate that can't be addressed by interfaces
- Driven off of 
//+comments 
 - Driven off of 
 - Provide bootstrapping commands to initialize new packages
 
- 
If you have what looks like a bug, or you would like to make a feature request, please use the Github issue tracking system. Before you file an issue, please search existing issues to see if your issue is already covered.
 - 
For realtime discussion, you can join the #kubebuilder slack channel. Slack requires registration, but the Kubernetes team is open invitation to anyone to register here. Feel free to come and ask any questions.
 
