Skip to content

Commit 27c9ddc

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

File tree

2 files changed

+165
-0
lines changed

2 files changed

+165
-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! This space is dedicated to housing the strategic roadmaps for the
4+
Kubebuilder project, organized by year. Each document within this repository
5+
outlines the key initiatives, objectives, and goals for Kubebuilder, reflecting our
6+
commitment to enhancing the development experience within the Kubernetes ecosystem.
7+
8+
## Navigation
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+
## Important about Integrations with 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) and contributing, visit:
28+
[Creating External Plugins](https://kubebuilder.io/plugins/external-plugins).
29+
30+
This strategy empowers our users and contributors to innovate,
31+
keeping Kubebuilder streamlined and focused on essential Kubernetes development functionalities.
32+
33+
**Therefore, our primary objective remains to offer a CLI tool that assists users in developing
34+
solutions for deployment and distribution on Kubernetes clusters using Golang.
35+
We aim to simplify the complexities involved and speed up the development process,
36+
thereby lowering the learning curve.**
37+
38+
## Contributing
39+
40+
Your input and contributions are what make Kubebuilder a continually
41+
evolving and improving project. We encourage the community to participate in discussions,
42+
provide feedback on the roadmaps, and contribute to the development efforts.
43+
44+
If you have suggestions for future objectives or want to get involved
45+
in current initiatives, please refer to our [contributing guidelines](./../CONTRIBUTING.md)
46+
or reach out to the project maintainers. Please, feel free either
47+
to raise new issues and/or Pull Requests against this repository with your
48+
suggestions.
49+
50+
## Stay Updated
51+
52+
For the latest updates, discussions, and contributions to the Kubebuilder project,
53+
please join our community channels and forums. Your involvement is crucial for the
54+
sustained growth and success of Kubebuilder.
55+
56+
Thank you for being a part of the Kubebuilder journey.
57+
Together, we are building the future of Kubernetes development. :tada:

roadmap/roadmap_2024.md

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

0 commit comments

Comments
 (0)