-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
📖 Add Roadmaps to bring visibility and allow better collaboration
- Loading branch information
1 parent
cc338d7
commit 6d23663
Showing
2 changed files
with
163 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Kubebuilder Roadmaps | ||
|
||
**Welcome to the Kubebuilder Roadmaps directory!** | ||
|
||
This space is dedicated to housing the strategic roadmaps for the | ||
Kubebuilder project, organized by year. Each document within this repository | ||
outlines the key initiatives, objectives, and goals for Kubebuilder, reflecting our | ||
commitment to enhancing the development experience within the Kubernetes ecosystem. | ||
|
||
Below, you will find links to the roadmap document for each year. These documents provide insights into the | ||
specific objectives set for the project during that time, the motivation behind each goal, and the progress | ||
made towards achieving them: | ||
|
||
- [Roadmap 2024](roadmap_2024.md) | ||
|
||
## :question: (IMPORTANT) What about new plugins to provide integrations within other Projects? | ||
|
||
As Kubebuilder evolves, we prioritize a focused project scope and minimal reliance on third-party dependencies, | ||
concentrating on features that bring the most value to our community. | ||
|
||
While recognizing the need for flexibility, we opt not to directly support third-party project integrations. | ||
Instead, we've enhanced Kubebuilder as a library, enabling any project to create compatible plugins. | ||
This approach delegates maintenance to those with the deepest understanding of their projects, fostering higher | ||
quality and community contributions. | ||
|
||
We're here to support you in developing your own Kubebuilder plugins. | ||
For guidance on [Creating Your own plugins](https://kubebuilder.io/plugins/creating-plugins). | ||
|
||
This strategy empowers our users and contributors to innovate, | ||
keeping Kubebuilder streamlined and focused on essential Kubernetes development functionalities. | ||
|
||
**Therefore, our primary objective remains to offer a CLI tool that assists users in developing | ||
solutions for deployment and distribution on Kubernetes clusters using Golang. | ||
We aim to simplify the complexities involved and speed up the development process, | ||
thereby lowering the learning curve.** | ||
|
||
## :steam_locomotive: Contributing | ||
|
||
Your input and contributions are what make Kubebuilder a continually | ||
evolving and improving project. We encourage the community to participate in discussions, | ||
provide feedback on the roadmaps, and contribute to the development efforts. | ||
|
||
If you have suggestions for future objectives or want to get involved | ||
in current initiatives, please refer to our [contributing guidelines](./../CONTRIBUTING.md) | ||
or reach out to the project maintainers. Please, feel free either | ||
to raise new issues and/or Pull Requests against this repository with your | ||
suggestions. | ||
|
||
## :loudspeaker: Stay Tuned | ||
|
||
For the latest updates, discussions, and contributions to the Kubebuilder project, | ||
please join our community channels and forums. Your involvement is crucial for the | ||
sustained growth and success of Kubebuilder. | ||
|
||
**:tada: Thank you for being a part of the Kubebuilder journey.** | ||
|
||
Together, we are building the future of Kubernetes development. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# Kubebuilder Project Roadmap 2024 | ||
|
||
### **(Major Release for Kubebuilder CLI 4.x)** Removing Deprecated Plugins for Enhanced Maintainability and User Experience | ||
|
||
**Status:** :construction: Work in Progress | ||
|
||
**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. | ||
|
||
**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. | ||
|
||
**More Info:** [GitHub Discussion #3622](https://github.com/kubernetes-sigs/kubebuilder/discussions/3622) | ||
|
||
### Providing Helpers for Project Distribution | ||
|
||
#### Distribution via Kustomize | ||
|
||
**Status:** :white_check_mark: Complete | ||
|
||
As of release ([v3.14.0](https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v3.14.0)), | ||
Kubebuilder includes enhanced support for project distribution. | ||
Users can now scaffold projects with a `build-installer` makefile target. | ||
This improvement enables the straightforward deployment of solutions directly to Kubernetes clusters. | ||
Users can deploy their projects using commands like: | ||
|
||
```shell | ||
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. | ||
|
||
#### (New Optional Plugin) Helm Chart Packaging | ||
|
||
**Status:** :raised_hands: Proposal in Progress; Seeking Contributions | ||
|
||
**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. | ||
|
||
**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 easily integrations with common applications used by administrators. | ||
|
||
**More Info:** For details on this proposal and how to contribute, | ||
see [GitHub Pull Request #3632](https://github.com/kubernetes-sigs/kubebuilder/pull/3632). | ||
|
||
### Proposal Pending: Seeking Contributions for kube-rbac-proxy's Role in Default Scaffold | ||
|
||
**Status:** :raised_hands: Open for Discussion/Proposal Pending; Contributions Welcome | ||
|
||
**Objective:** Evaluate potential modifications or the exclusion of [kube-rbac-proxy](https://github.com/brancz/kube-rbac-proxy) | ||
from the default Kubebuilder scaffold in response to deprecations and evolving user requirements. | ||
|
||
**Context:** [kube-rbac-proxy](https://github.com/brancz/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](https://github.com/kubernetes-sigs/kubebuilder/issues/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](https://github.com/kubernetes-sigs/kubebuilder/blob/master/RELEASE.md#to-build-the-kube-rbac-proxy-images) | ||
to its external status from Kubernetes-SIG—places a considerable maintenance | ||
burden on Kubebuilder maintainers. | ||
|
||
**Motivations:** | ||
- Address kube-rbac-proxy breaking changes/deprecations. | ||
- For further information: [Issue #3524 - kube-rbac-proxy warn about deprecation and future breaking changes](https://github.com/kubernetes-sigs/kubebuilder/issues/3524) | ||
- Feedback from the community has highlighted a preference for cert-manager's default integration, aiming security with Prometheus and metrics. | ||
- More info: [GitHub Issue #3524 - Improve scaffolding of ServiceMonitor](https://github.com/kubernetes-sigs/kubebuilder/issues/3657) | ||
- Desire for kube-rbac-proxy to be optional, citing its prescriptive nature. | ||
- See: [Issue #3482 - The kube-rbac-proxy is too opinionated to be opt-out.](https://github.com/kubernetes-sigs/kubebuilder/issues/3482) | ||
- Reduce the maintainability effort to generate the images used by Kubebuilder projects and dependency within third-party solutions. | ||
- Related issues: | ||
- [Issue #1885 - use a NetworkPolicy instead of kube-rbac-proxy](https://github.com/kubernetes-sigs/kubebuilder/issues/1885) | ||
- [Issue #3230 - Migrate away from google.com gcp project kubebuilder](https://github.com/kubernetes-sigs/kubebuilder/issues/3230) | ||
|
||
**Proposed Solutions:** | ||
|
||
- **Making kube-rbac-proxy Optional:** Offering users the option to include kube-rbac-proxy caters to diverse project | ||
requirements and simplifies the transition towards its potential externalization or removal, | ||
reducing future maintenance efforts. | ||
|
||
- **Leveraging NetworkPolicies:** This alternative focuses on minimizing external dependencies by | ||
utilizing Kubernetes-native solutions like NetworkPolicies, in line with our maintenance reduction goals. | ||
|
||
- **Default Enablement of cert-manager:** While not directly addressing the maintenance concerns related to | ||
kube-rbac-proxy, defaulting to cert-manager responds to community feedback and navigates the upcoming deprecations. | ||
This strategy also acknowledges cert-manager's existing role as a prerequisite for webhooks. | ||
|
||
**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.** | ||
|
||
### :rocket: Overarching Goal for 2024: Reducing the Maintenance Burden | ||
|
||
**Objective:** Across all initiatives, our primary goal for 2024 is to significantly reduce the maintenance burden on | ||
Kubebuilder maintainers. This involves streamlining dependencies, improving documentation, and making strategic | ||
decisions on plugin inclusion. | ||
|
||
**Motivation:** By focusing on reducing the project's maintenance demands, we aim to foster a more sustainable | ||
development environment that can rapidly adapt to the Kubernetes ecosystem's changes without overwhelming our contributors. | ||
|
||
This roadmap reflects our commitment to making Kubebuilder more maintainable, | ||
user-friendly, and adaptable to future Kubernetes developments. We welcome the | ||
community's feedback and contributions as we embark on these initiatives to enhance | ||
the Kubebuilder project in 2024. |