-
Notifications
You must be signed in to change notification settings - Fork 230
Suggested Updates to Main Advantages and Limitations for Kubebuilder in the CNCF Operator White Paper #773
Description
Hello CNCF Operator White Paper Team,
I've been looking at the white paper (https://tag-app-delivery.cncf.io/whitepapers/operator/#kubebuilder) and wanted to propose a few updates to improve clarity around Kubebuilder's advantages and limitations.
Main Advantages
- I noticed that Community-driven is not listed as one of the main advantages of Kubebuilder. Given Kubebuilder’s open-source nature and active community support and development within the Kubernetes ecosystem, highlighting this as an advantage would give readers a complete understanding of why it’s so widely adopted. Could we please add that as an advantage?
Main Limitations
Under "Main Limitations," the white paper currently lists:
- Could we please remove:
Complexity: While Kubebuilder simplifies much of the development process, building Kubernetes controllers and APIs can still be a complex task, especially for large-scale or distributed applications.
Kubebuilder is well-suited to creating scalable, complex projects and is widely adopted for managing large-scale or distributed applications. It provides flexibility and the ability to implement a wide range of APIs and controllers, which empowers developers to design solutions without the limitations commonly imposed by other frameworks.
Examples of Large-Scale or Distributed Applications Built with Kubebuilder
Here are a few examples of large-scale or distributed solutions built using Kubebuilder, which showcase its scalability and adaptability:
- MongoDB Operator - MongoDB Operator Repository
- Datadog Operator - Datadog Operator Repository
- Percona Server for MySQL Operator - Percona Operator Repository
- Open Policy Agent (OPA) Gatekeeper – Manages admission policies, enabling dynamic policy enforcement in large distributed environments. (GitHub Link)
- ElasticSearch Operator – Automates the deployment, management, and scaling of ElasticSearch clusters within Kubernetes. (GitHub Link)
- Reconsidering the Learning Curve
We’ve been actively working on providing solutions to accelerate the development of Operators and to reduce the learning curve. For example, the Deploy Image plugin simplifies scaffolding by generating the controller, tests, and other essential components, enabling faster development. (Plugin Documentation)
Recent releases include default scaffolding for e2e tests, GitHub Actions for CI/CD, and DevContainers for cloud development environments, making it easier for developers to get started. Here are a few examples of Kubebuilder’s supportive features, follow a couple of examples
- Controller Example: The scaffolded code includes helpful comments and links to documentation, guiding users on implementation. Example code: busybox_controller.go
- Webhook Test Example: Webhook tests are scaffolded with examples. Examples: https://github.com/kubernetes-sigs/kubebuilder/blob/master/testdata/project-v4-with-plugins/internal/webhook/v1/wordpress_webhook_test.go and https://github.com/kubernetes-sigs/kubebuilder/blob/master/testdata/project-v4-with-plugins/internal/webhook/v1alpha1/memcached_webhook_test.go
TODOmarkers to guide customization.
These improvements help reduce the learning curve and enable developers to skill up more quickly.
Feedback Request
We would be grateful if the CNCF team could try out Kubebuilder’s latest release and provide us with your UX feedback and suggestions. Your input would be invaluable in helping us make the project even more accessible and effective for its users and the community.
Thank you for considering these updates!