-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Goal of this issue is to audit all code in core Cluster API for Kubernetes version-specific handling and come up with an overview with which Kubernetes (and estimated Cluster API) version we can drop which code.
Tasks:
- Audit all code
Overview
Code removed with Cluster API v1.11
PRs:
Code:
- KCP: Remove cgroup driver handling in KCP (-v1.23)
- KCP: Webhook validation code to block update to (v1.19)
- KCP: Webhook validation code for registry migration (v1.22-v1.25)
- test/extension: Remove cgroup driver handling (-v1.23)
- test/framework: Remove handling for nodeRoleOldControlPlane
Code that can be removed with Cluster API v1.15
- Remove ssa.MigrateManagedFields introduced in ✨ KCP/MS: Refactor BootstrapConfig/InfraMachine managedFields for in-place #12890
Code required for workload clusters
Note: We are going to keep the code 2 Cluster API versions longer as we don't strictly enforce the Kubernetes version support range (https://main.cluster-api.sigs.k8s.io/reference/versions#core-provider-cluster-api-controller)
v1.28
- Remove https://github.com/kubernetes-sigs/cluster-api/blob/main/test/e2e/clusterctl_upgrade.go#L728-L735
- CRS: drop ensureKubernetesServiceCreated (CRS controller should wait for the 'kubernetes' service ready before reconciling CRS objects #7804 (comment)) (replacement feature GA + 2)
v1.29
- KCP: Remove
AllowClusterAdminPermissions
v1.30
- Remove handling of kubeadm v1beta3 types in CABPK / KCP
v1.35
- Remove Patch to remove InitConfiguration in KCP introduced in: ✨ KCP: implement trigger in-place update #12897
TBD
- Remove handling for
ControlPlaneKubeletLocalModefeature gate - Remove old versions in CAPD kind mapping
Code related to management clusters
v1.32
-
Start using CEL format library (e.g. qualifiedName for taint key & value) (https://github.com/kubernetes/kubernetes/blob/bd11e52bfc10b9b08edbc43cd0c83458f38634f2/staging/src/k8s.io/apiserver/pkg/cel/environment/base.go#L146)
-
When v1.32 (?) is our min supported mgmt cluster version we should replace some of our Pattern validation with CEL (e.g. RFC 1123 label/subdomain): ⚠️ Restructure classRef field in Cluster.spec.topology #12235 (comment) (helps to avoid mistakes in the regexp patterns) => Let's verify that additionally with a manual test
v1.34
- When v1.34 (?) is our min supported mgmt cluster version we should evalute if we can use
k8s-short-nameandk8s-long-name(Introduce OpenAPI format support for k8s-short-name and k8s-long-name kubernetes/kubernetes#132504, Add k8s-long-name and k8s-short-name format validation tags kubernetes/kubernetes#133894)
/kind cleanup