roadmap/roadmap_2024.md
Status: ✅ Complete (Changes available from release 4.3.0)
Objective: Update Kubebuilder's controller scaffolding to align with the latest changes in controller-runtime, focusing on compatibility and addressing recent updates and deprecations mainly related to webhooks.
Context: Kubebuilder's plugin system is designed for stability, yet it depends on controller-runtime, which is evolving rapidly with versions still under 1.0.0. Notable changes and deprecations, especially around webhooks, necessitate Kubebuilder's alignment with the latest practices and functionalities of controller-runtime. We need update the Kubebuilder scaffolding, samples, and documentation.
References:
Status: ✅ Complete ( Initial version merged https://github.com/kubernetes-sigs/kubebuilder/pull/4227 - further improvements and contributions are welcome)
Objective: We aim to introduce a new plugin for Kubebuilder that packages projects as Helm charts, facilitating easier distribution and integration of solutions within the Kubernetes ecosystem. For details on this proposal and how to contribute, see GitHub Pull Request #3632.
Motivation: The growth of the Kubernetes ecosystem underscores the need for flexible and accessible distribution methods. A Helm chart packaging plugin would simplify the distribution of the solutions and allow easy integrations with common applications used by administrators.
Status:
Objective: Shift Kubernetes (k8s) project infrastructure from GCP to shared infrastructures.
Furthermore, move from the registry k8s.gcr.io to registry.k8s.io.
Motivation: The initiative to move away from GCP aligns with the broader k8s project's goal of utilizing shared infrastructures. This transition is crucial for ensuring the availability of the artifacts in the long run and aligning compliance with other projects under the kubernetes-sig org. Issue #2647 provides more details on the move.
Context: Currently, Google Cloud is used only for:
A particular challenge has been the necessity to rebuild images for the kube-rbac-proxy, which is in the process of being donated to kubernetes-sig. This transition was expected to eliminate the need for continuous re-tagging and rebuilding of its images to ensure their availability to users. The configuration for building these images is outlined here.
The development of Kubebuilder Tools and EnvTest binaries, essential for controller tests, represents another area reliant on k8s binaries traditionally built within GCP environments. Our documentation on building these artifacts is available here.
We encourage the Kubebuilder community to participate in this discussion, offering feedback and contributing ideas to refine these proposals. Your involvement is crucial in shaping the future of secure and efficient project scaffolding in Kubebuilder.
Status: :white_check_mark: Complete
Objective: Evaluate potential modifications or the exclusion of kube-rbac-proxy from the default Kubebuilder scaffold in response to deprecations and evolving user requirements.
Context: kube-rbac-proxy , a key component for securing Kubebuilder-generated projects, faces significant deprecations that impact automatic certificate generation. For more insights into these challenges, see Issue #3524.
This situation necessitates a reevaluation of its inclusion and potentially prompts users to adopt alternatives like cert-manager by default. Additionally, the requirement to manually rebuild kube-rbac-proxy images—due to its external status from Kubernetes-SIG—places a considerable maintenance burden on Kubebuilder maintainers.
Motivations:
Status: :white_check_mark: Complete
build-installer makefile target. This improvement enables the straightforward deployment of solutions directly to Kubernetes clusters. Users can deploy their projects using commands like:kubectl apply -f https://raw.githubusercontent.com/<org>/my-project/<tag or branch>/dist/install.yaml
This enhancement streamlines the process of getting Kubebuilder projects running on clusters, providing a seamless deployment experience.
Status: : ✅ Complete - Release was done
Objective: To remove all deprecated plugins from Kubebuilder to improve project maintainability and enhance user experience. This initiative also includes updating the project documentation to provide clear and concise information, eliminating any confusion for users. More Info: GitHub Discussion #3622
Motivation: By focusing on removing deprecated plugins—specifically, versions or kinds that can no longer be supported—we aim to streamline the development process and ensure a higher quality user experience. Clear and updated documentation will further assist in making development workflows more efficient and less prone to errors.