diff --git a/docs/book/src/reference/versions.md b/docs/book/src/reference/versions.md index 591c499d7e24..249d9ab138fa 100644 --- a/docs/book/src/reference/versions.md +++ b/docs/book/src/reference/versions.md @@ -63,16 +63,17 @@ These diagrams show the relationships between components in a Cluster API releas #### Core Provider (`cluster-api-controller`) -| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload | -| ---------------- | -------------------------------- | ----------------------------- | -------------------------------- | ----------------------------- | -------------------------------- | ----------------------------- | -| Kubernetes v1.16 | ✓ | ✓ | | | | | -| Kubernetes v1.17 | ✓ | ✓ | | | | | -| Kubernetes v1.18 | ✓ | ✓ | | ✓ | | ✓ | -| Kubernetes v1.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.21 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.22 | | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.23* | | | ✓ | ✓ | ✓ | ✓ | +| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) | +| ---------------- | --------------------- | ---------------------- | -------------------- | ------------------------ | +| Kubernetes v1.16 | ✓ | | | | +| Kubernetes v1.17 | ✓ | | | | +| Kubernetes v1.18 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) | +| Kubernetes v1.19 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.20 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.21 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.22 | ✓ (only workload) | ✓ | ✓ | ✓ | +| Kubernetes v1.23* | | ✓ | ✓ | ✓ | +| Kubernetes v1.24 | | | | ✓ | \* There is an issue with CRDs in Kubernetes v1.23.{0-2}. ClusterClass with patches is affected by that (for more details please see [this issue](https://github.com/kubernetes-sigs/cluster-api/issues/5990)). Therefore we recommend to use Kubernetes v1.23.3+ with ClusterClass. Previous Kubernetes **minor** versions are not affected. @@ -81,31 +82,33 @@ The Core Provider also talks to API server of every Workload Cluster. Therefore, #### Kubeadm Bootstrap Provider (`kubeadm-bootstrap-controller`) -| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload | -| ---------------------------------- | -------------------------------- | ----------------------------- | ------------------------------- | ----------------------------- | ------------------------------- | ----------------------------- | -| Kubernetes v1.16 + kubeadm/v1beta2 | ✓ | ✓ | | | | | -| Kubernetes v1.17 + kubeadm/v1beta2 | ✓ | ✓ | | | | | -| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ | ✓ | | ✓ | | ✓ | -| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.20 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.21 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.22 + kubeadm/v1beta2 (v0.3) kubeadm/v1beta3 (v0.4+) | | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.23 + kubeadm/v1beta3 | | | ✓ | ✓ | ✓ | ✓ | +| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) | +| ---------------------------------- | -------------------------------- | -------------------- | ------------------- | ------------------------ | +| Kubernetes v1.16 + kubeadm/v1beta2 | ✓ | | | | +| Kubernetes v1.17 + kubeadm/v1beta2 | ✓ | | | | +| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) | +| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.20 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.21 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.22 + kubeadm/v1beta2 (v0.3) kubeadm/v1beta3 (v0.4+) | ✓ (only workload) | ✓ | ✓ | ✓ | +| Kubernetes v1.23 + kubeadm/v1beta3 | | ✓ | ✓ | ✓ | +| Kubernetes v1.24 + kubeadm/v1beta3 | | | | ✓ | The Kubeadm Bootstrap Provider generates kubeadm configuration using the API version recommended for the target Kubernetes version. #### Kubeadm Control Plane Provider (`kubeadm-control-plane-controller`) -| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload | -| -------------------------- | ------------------------------- |-------------------------------|---------------------------------|-------------------------------| ------------------------------- | ----------------------------- | -| Kubernetes v1.16 + etcd/v3 | ✓ | ✓ | | | | | -| Kubernetes v1.17 + etcd/v3 | ✓ | ✓ | | | | | -| Kubernetes v1.18 + etcd/v3 | ✓ | ✓ | | ✓ | | ✓ | -| Kubernetes v1.19 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.20 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.21 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.22 + etcd/v3 | | ✓* | ✓ | ✓ | ✓ | ✓ | -| Kubernetes v1.23 + etcd/v3 | | | ✓* | ✓* | ✓ | ✓ | +| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) | +| -------------------------- | -------------------- |----------------------| ------------------- | ------------------------ | +| Kubernetes v1.16 + etcd/v3 | ✓ | | | | +| Kubernetes v1.17 + etcd/v3 | ✓ | | | | +| Kubernetes v1.18 + etcd/v3 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) | +| Kubernetes v1.19 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.20 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.21 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | +| Kubernetes v1.22 + etcd/v3 | ✓* (only workload) | ✓ | ✓ | ✓ | +| Kubernetes v1.23 + etcd/v3 | | ✓* | ✓* | ✓ | +| Kubernetes v1.24 + etcd/v3 | | | | ✓ | The Kubeadm Control Plane Provider talks to the API server and etcd members of every Workload Cluster whose control plane it owns. It uses the etcd v3 API. @@ -121,6 +124,16 @@ The Kubeadm Control Plane requires the Kubeadm Bootstrap Provider. | v1.1 (v1beta1) | v1.8.6 | | v1.2 (v1beta1) | v1.9.2 | +#### Kubernetes version specific notes + +**1.24**: + +* Kubeadm Bootstrap Provider: + * `kubeadm` now sets both the `node-role.kubernetes.io/control-plane` and `node-role.kubernetes.io/master` taints on control plane nodes. + * `kubeadm` now only sets the `node-role.kubernetes.io/control-plane` label on control plane nodes (`node-role.kubernetes.io/master` is not set anymore). +* Kubeadm Bootstrap Provider and Kubeadm Control Plane Provider + * `criSocket` without a scheme prefix has been deprecated in the kubelet since a while. `kubeadm` now shows a warning if no scheme is present and eventually the support for `criSocket`'s without prefix will be dropped. Please adjust the `criSocket` accordingly (e.g. `unix:///var/run/containerd/containerd.sock`) if you are configuring the `criSocket` in CABPK or KCP resources. + #### clusterctl It is strongly recommended to always use the latest version of [clusterctl](../clusterctl/overview.md), in order to