kubebuilder icon indicating copy to clipboard operation
kubebuilder copied to clipboard

Kubebuilder 4.x - Remove the deprecations

Open camilamacedo86 opened this issue 2 years ago • 2 comments
trafficstars

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

camilamacedo86 avatar Sep 07 '23 16:09 camilamacedo86

We agreed with the plan and dates in the Kubebuilder meeting

camilamacedo86 avatar Sep 07 '23 18:09 camilamacedo86

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/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was 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

k8s-triage-robot avatar Feb 12 '24 08:02 k8s-triage-robot