Skip to content

Commit 5b7b73c

Browse files
📖 Add Roadmaps to bring visibility and allow better collaboration
1 parent cc338d7 commit 5b7b73c

File tree

2 files changed

+163
-0
lines changed

2 files changed

+163
-0
lines changed

roadmap/README.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Kubebuilder Roadmaps
2+
3+
**Welcome to the Kubebuilder Roadmaps directory!**
4+
5+
This space is dedicated to housing the strategic roadmaps for the
6+
Kubebuilder project, organized by year. Each document within this repository
7+
outlines the key initiatives, objectives, and goals for Kubebuilder, reflecting our
8+
commitment to enhancing the development experience within the Kubernetes ecosystem.
9+
10+
Below, you will find links to the roadmap document for each year. These documents provide insights into the
11+
specific objectives set for the project during that time, the motivation behind each goal, and the progress
12+
made towards achieving them:
13+
14+
- [Roadmap 2024](roadmap_2024.md)
15+
16+
## :point_right: New plugins/RFEs to provide integrations within other Projects
17+
18+
As Kubebuilder evolves, we prioritize a focused project scope and minimal reliance on third-party dependencies,
19+
concentrating on features that bring the most value to our community.
20+
21+
While recognizing the need for flexibility, we opt not to directly support third-party project integrations.
22+
Instead, we've enhanced Kubebuilder as a library, enabling any project to create compatible plugins.
23+
This approach delegates maintenance to those with the deepest understanding of their projects, fostering higher
24+
quality and community contributions.
25+
26+
We're here to support you in developing your own Kubebuilder plugins.
27+
For guidance on [Creating Your own plugins](https://kubebuilder.io/plugins/creating-plugins).
28+
29+
This strategy empowers our users and contributors to innovate,
30+
keeping Kubebuilder streamlined and focused on essential Kubernetes development functionalities.
31+
32+
**Therefore, our primary objective remains to offer a CLI tool that assists users in developing
33+
solutions for deployment and distribution on Kubernetes clusters using Golang.
34+
We aim to simplify the complexities involved and speed up the development process,
35+
thereby lowering the learning curve.**
36+
37+
## :steam_locomotive: Contributing
38+
39+
Your input and contributions are what make Kubebuilder a continually
40+
evolving and improving project. We encourage the community to participate in discussions,
41+
provide feedback on the roadmaps, and contribute to the development efforts.
42+
43+
If you have suggestions for future objectives or want to get involved
44+
in current initiatives, please refer to our [contributing guidelines](./../CONTRIBUTING.md)
45+
or reach out to the project maintainers. Please, feel free either
46+
to raise new issues and/or Pull Requests against this repository with your
47+
suggestions.
48+
49+
## :loudspeaker: Stay Tuned
50+
51+
For the latest updates, discussions, and contributions to the Kubebuilder project,
52+
please join our community channels and forums. Your involvement is crucial for the
53+
sustained growth and success of Kubebuilder.
54+
55+
**:tada: Thank you for being a part of the Kubebuilder journey.**
56+
57+
Together, we are building the future of Kubernetes development.

roadmap/roadmap_2024.md

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Kubebuilder Project Roadmap 2024
2+
3+
### **(Major Release for Kubebuilder CLI 4.x)** Removing Deprecated Plugins for Enhanced Maintainability and User Experience
4+
5+
**Status:** :construction: Work in Progress
6+
7+
**Objective:** To remove all deprecated plugins from Kubebuilder to improve project maintainability and
8+
enhance user experience. This initiative also includes updating the project documentation to provide clear
9+
and concise information, eliminating any confusion for users.
10+
11+
**Motivation:** By focusing on removing deprecated plugins—specifically, versions or kinds that can no
12+
longer be supported—we aim to streamline the development process and ensure a higher quality user experience.
13+
Clear and updated documentation will further assist in making development workflows more efficient and less prone to errors.
14+
15+
**More Info:** [GitHub Discussion #3622](https://github.com/kubernetes-sigs/kubebuilder/discussions/3622)
16+
17+
### Providing Helpers for Project Distribution
18+
19+
#### Distribution via Kustomize
20+
21+
**Status:** :white_check_mark: Complete
22+
23+
As of release ([v3.14.0](https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v3.14.0)),
24+
Kubebuilder includes enhanced support for project distribution.
25+
Users can now scaffold projects with a `build-installer` makefile target.
26+
This improvement enables the straightforward deployment of solutions directly to Kubernetes clusters.
27+
Users can deploy their projects using commands like:
28+
29+
```shell
30+
kubectl apply -f https://raw.githubusercontent.com/<org>/my-project/<tag or branch>/dist/install.yaml
31+
```
32+
33+
This enhancement streamlines the process of getting Kubebuilder projects running on clusters, providing a seamless deployment experience.
34+
35+
#### (New Optional Plugin) Helm Chart Packaging
36+
37+
**Status:** :raised_hands: Proposal in Progress; Seeking Contributions
38+
39+
**Objective:** We aim to introduce a new plugin for Kubebuilder that packages projects as Helm charts,
40+
facilitating easier distribution and integration of solutions within the Kubernetes ecosystem.
41+
42+
**Motivation:** The growth of the Kubernetes ecosystem underscores the need for flexible and
43+
accessible distribution methods. A Helm chart packaging plugin would simplify the distribution of the solutions
44+
and allow easily integrations with common applications used by administrators.
45+
46+
**More Info:** For details on this proposal and how to contribute,
47+
see [GitHub Pull Request #3632](https://github.com/kubernetes-sigs/kubebuilder/pull/3632).
48+
49+
### Proposal Pending: Seeking Contributions for kube-rbac-proxy's Role in Default Scaffold
50+
51+
**Status:** :raised_hands: Open for Discussion/Proposal Pending; Contributions Welcome
52+
53+
**Objective:** Evaluate potential modifications or the exclusion of [kube-rbac-proxy](https://github.com/brancz/kube-rbac-proxy)
54+
from the default Kubebuilder scaffold in response to deprecations and evolving user requirements.
55+
56+
**Context:** [kube-rbac-proxy](https://github.com/brancz/kube-rbac-proxy) , a key component for securing Kubebuilder-generated projects,
57+
faces significant deprecations that impact automatic certificate generation.
58+
For more insights into these challenges, see [Issue #3524](https://github.com/kubernetes-sigs/kubebuilder/issues/3524).
59+
60+
This situation necessitates a reevaluation of its inclusion and potentially prompts users to
61+
adopt alternatives like cert-manager by default. Additionally, the requirement to manually rebuild
62+
[kube-rbac-proxy images—due](https://github.com/kubernetes-sigs/kubebuilder/blob/master/RELEASE.md#to-build-the-kube-rbac-proxy-images)
63+
to its external status from Kubernetes-SIG—places a considerable maintenance
64+
burden on Kubebuilder maintainers.
65+
66+
**Motivations:**
67+
- Address kube-rbac-proxy breaking changes/deprecations.
68+
- For further information: [Issue #3524 - kube-rbac-proxy warn about deprecation and future breaking changes](https://github.com/kubernetes-sigs/kubebuilder/issues/3524)
69+
- Feedback from the community has highlighted a preference for cert-manager's default integration, aiming security with Prometheus and metrics.
70+
- More info: [GitHub Issue #3524 - Improve scaffolding of ServiceMonitor](https://github.com/kubernetes-sigs/kubebuilder/issues/3657)
71+
- Desire for kube-rbac-proxy to be optional, citing its prescriptive nature.
72+
- See: [Issue #3482 - The kube-rbac-proxy is too opinionated to be opt-out.](https://github.com/kubernetes-sigs/kubebuilder/issues/3482)
73+
- Reduce the maintainability effort to generate the images used by Kubebuilder projects and dependency within third-party solutions.
74+
- Related issues:
75+
- [Issue #1885 - use a NetworkPolicy instead of kube-rbac-proxy](https://github.com/kubernetes-sigs/kubebuilder/issues/1885)
76+
- [Issue #3230 - Migrate away from google.com gcp project kubebuilder](https://github.com/kubernetes-sigs/kubebuilder/issues/3230)
77+
78+
**Proposed Solutions:**
79+
80+
- **Making kube-rbac-proxy Optional:** Offering users the option to include kube-rbac-proxy caters to diverse project
81+
requirements and simplifies the transition towards its potential externalization or removal,
82+
reducing future maintenance efforts.
83+
84+
- **Leveraging NetworkPolicies:** This alternative focuses on minimizing external dependencies by
85+
utilizing Kubernetes-native solutions like NetworkPolicies, in line with our maintenance reduction goals.
86+
87+
- **Default Enablement of cert-manager:** While not directly addressing the maintenance concerns related to
88+
kube-rbac-proxy, defaulting to cert-manager responds to community feedback and navigates the upcoming deprecations.
89+
This strategy also acknowledges cert-manager's existing role as a prerequisite for webhooks.
90+
91+
**We encourage the Kubebuilder community to participate in this discussion, offering feedback and contributing ideas
92+
to refine these proposals. Your involvement is crucial in shaping the future of secure and efficient project scaffolding in Kubebuilder.**
93+
94+
### :rocket: Overarching Goal for 2024: Reducing the Maintenance Burden with Major Release and Removal of Deprecated features/plugins
95+
96+
**Objective:** Across all initiatives, our primary goal for 2024 is to significantly reduce the maintenance burden on
97+
Kubebuilder maintainers. This involves streamlining dependencies, improving documentation, and making strategic
98+
decisions on plugin inclusion.
99+
100+
**Motivation:** By focusing on reducing the project's maintenance demands, we aim to foster a more sustainable
101+
development environment that can rapidly adapt to the Kubernetes ecosystem's changes without overwhelming our contributors.
102+
103+
This roadmap reflects our commitment to making Kubebuilder more maintainable,
104+
user-friendly, and adaptable to future Kubernetes developments. We welcome the
105+
community's feedback and contributions as we embark on these initiatives to enhance
106+
the Kubebuilder project in 2024.

0 commit comments

Comments
 (0)