Open
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 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.26
- CRS: drop ensureKubernetesServiceCreated (CRS controller should wait for the 'kubernetes' service ready before reconciling CRS objects #7804 (comment))
v1.28
- Remove https://github.com/kubernetes-sigs/cluster-api/blob/main/test/e2e/clusterctl_upgrade.go#L728-L735
v1.29
- KCP: Remove
AllowClusterAdminPermissions
v1.30
- Remove handling of kubeadm v1beta3 types in CABPK / KCP
TBD
- Remove handling for
ControlPlaneKubeletLocalMode
feature gate - Remove old versions in CAPD kind mapping
Code required for management clusters
v1.34
- When v1.33 or v1.34 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)
/kind cleanup