kubebuilder
kubebuilder copied to clipboard
Kubebuilder 4.x - Remove the deprecations
What do you want to happen?
Why Release a Major Version?
Kubebuilder's legacy plugins and code from deprecated implementations clutter the codebase. This not only hampers maintainability but also confuses users who might mistakenly use outdated solutions or get lost in the documentation deciphering deprecated features. A major version release will streamline the experience and code health.
To remove deprecated code, we'll introduce breaking changes, warranting a major bump. Note that we'll retain legacy documentation history to assist users as it was done in the past for V1 (branch book-v1) and V2 (branch book-v2).
What is deprecated and should be removed with 4X?
Plugins Deprecated
- [] Go/v2 - It is no longer the default layout since Apr 28, 2021 - More info: https://github.com/kubernetes-sigs/kubebuilder/discussions/2842
- [] Go/v3 - Legacy layout deprecated since Mar 6, 2023 when we make go/v4 default one: More info: https://github.com/kubernetes-sigs/kubebuilder/discussions/3217 - It is no longer the default scaffold since the release v3.10.0
- [] ComponentConfig - Deprecated and can no longer be maintained since release v3.11.0. Note that Kubebuilder is no longer able to ensure that it is functioning as intended since controller-runtime release 0.15.0. For further information see: https://github.com/kubernetes-sigs/kubebuilder/discussions/3469
- [] Declarative/v1: Deprecated in v3.12.0. More info: https://github.com/kubernetes-sigs/kubebuilder/discussions/3598 (TDB we might be able to have the plugin extenalized so this one might stay for 4x. )
- [] Kustomize/v1: The kustomize plugin is used to provide the scaffolds under config/
Code internals which should be removed
- [] Project Config V2 - This is a legacy layout for the PROJECT which was used only for go/v2 and does not track all data.
- [] Flags to work with deps and crd and webhook versions to allow users migrate from v1beta1 to v1
- [] Conditions in the source code to allow support multiple layouts of go/v3 and go/v4 plugin
- [] Legacy tests for go/v2
- [] Sample under testdata for go/v3
- [] Hack docs implementation for Component Config
Documentation
- [] All content regards what was deprecated should be removed for v4x.
Proposed plan (TBD):
- Release support for k8s 1.29 - 3x (latest 3x release)
- Then, we will be working on 4x
Extra Labels
No response
We agreed with the plan and dates in the Kubebuilder meeting
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale