1. Introduction
  2. Architecture
  3. Quick Start
  4. Getting Started
  5. 1. Tutorial: Building CronJob
    1. 1.1. What's in a basic project?
    2. 1.2. Every journey needs a start, every program a main
    3. 1.3. Groups and Versions and Kinds, oh my!
    4. 1.4. Adding a new API
    5. 1.5. Designing an API
      1. 1.5.1. A Brief Aside: What's the rest of this stuff?
    6. 1.6. What's in a controller?
    7. 1.7. Implementing a controller
      1. 1.7.1. You said something about main?
    8. 1.8. Implementing defaulting/validating webhooks
    9. 1.9. Running and deploying the controller
      1. 1.9.1. Deploying cert-manager
      2. 1.9.2. Deploying webhooks
    10. 1.10. Writing tests
    11. 1.11. Epilogue
  6. 2. Tutorial: Multi-Version API
    1. 2.1. Changing things up
    2. 2.2. Hubs, spokes, and other wheel metaphors
    3. 2.3. Implementing conversion
      1. 2.3.1. and setting up the webhooks
    4. 2.4. Deployment and Testing
  7. 3. Migrations
    1. 3.1. Legacy (before <= v3.0.0)
      1. 3.1.1. Kubebuilder v1 vs v2
        1. 3.1.1.1. Migration Guide
      2. 3.1.2. Kubebuilder v2 vs v3
        1. 3.1.2.1. Migration Guide
        2. 3.1.2.2. Migration by updating the files
    2. 3.2. From v3.0.0 with plugins
      1. 3.2.1. go/v3 vs go/v4
        1. 3.2.1.1. Migration Guide
        2. 3.2.1.2. Migration by updating the files
    3. 3.3. Single Group to Multi-Group
  8. 4. Project Upgrade Assistant
  9. 5. Reference
    1. 5.1. Generating CRDs
    2. 5.2. Using Finalizers
    3. 5.3. Good Practices
    4. 5.4. Raising Events
    5. 5.5. Watching Resources
      1. 5.5.1. Resources Managed by the Operator
      2. 5.5.2. Externally Managed Resources
    6. 5.6. Kind cluster
    7. 5.7. What's a webhook?
      1. 5.7.1. Admission webhook
      2. 5.7.2. Webhooks for Core Types
    8. 5.8. Markers for Config/Code Generation
      1. 5.8.1. CRD Generation
      2. 5.8.2. CRD Validation
      3. 5.8.3. CRD Processing
      4. 5.8.4. Webhook
      5. 5.8.5. Object/DeepCopy
      6. 5.8.6. RBAC
    9. 5.9. controller-gen CLI
    10. 5.10. completion
    11. 5.11. Artifacts
    12. 5.12. Platform Support
    13. 5.13. Sub-Module Layouts
    14. 5.14. Using an external Type / API
    15. 5.15. Configuring EnvTest
    16. 5.16. Metrics
      1. 5.16.1. Reference
    17. 5.17. Makefile Helpers
    18. 5.18. Project config
  10. 6. Plugins
    1. 6.1. Available Plugins
      1. 6.1.1. To scaffold a project
        1. 6.1.1.1. go/v4 (Default init scaffold)
      2. 6.1.2. To add optional features
        1. 6.1.2.1. grafana/v1-alpha
        2. 6.1.2.2. deploy-image/v1-alpha
      3. 6.1.3. To be extended for others tools
        1. 6.1.3.1. kustomize/v2 (Default init scaffold with go/v4)
    2. 6.2. Extending the CLI
    3. 6.3. Creating your own plugins
    4. 6.4. Testing your own plugins
    5. 6.5. Plugins Versioning
    6. 6.6. Creating external plugins
  11. FAQ
  12. Appendix: The TODO Landing Page
v3-book v2-book v1-book

The Kubebuilder Book

Kubebuilder v2 vs v3