Cluster API v1.12 compared to v1.13

This document provides an overview over relevant changes between Cluster API v1.12 and v1.13 for maintainers of providers and consumers of our Go API.

Any feedback or contributions to improve following documentation is welcome!

Go version

  • The minimal Go version required to build Cluster API is v1.24.x
  • The Go version used by Cluster API is v1.24.x

Dependencies

  • The Controller Runtime version used by Cluster API is v0.22.x
  • The version of the Kubernetes libraries used by Cluster API is v1.34.x

Implemented proposal

API Changes

Runtime hooks Changes

Cluster API Contract changes

  • A new, optional rule has been added to the control plane contract, defining what is required for implementing support for taints.

Deprecation

Removals

  • Remove deprecated --enable-crd-storage-version-migration flag for clusterctl upgrade and corresponding provider CRD storage version migration code
  • The deprecated --disable-grouping flag for clusterctl describe cluster has been removed.
  • The deprecated ClusterCache.GetClientCertificatePrivateKey method has been removed.
  • The deprecated --cluster-concurrency CABPK command-line flag has been removed
  • Remove deprecated util/topology.ShouldSkipImmutabilityChecks (use util/topology.IsDryRunRequest instead)
  • Removed deprecated util/version.ParseMajorMinorPatch (use semver.Parse instead)
  • Removed deprecated util/version.ParseMajorMinorPatchTolerant (use semver.ParseTolerant instead)

Suggested changes for providers

  • If you are developing a control plane provider with support for machines, please consider adding spec.machineTemplate.spec.taints (see contract)
  • Cluster API bumped the default values of --kube-api-qps & --kube-api-burst to 100/200 in CAPI-13317. You might want to consider doing the same.

Removals scheduled for future releases

As documented in Suggested changes for providers, it is highly recommended to start planning for future removals:

  • v1beta1 API version will be removed tentatively in August 2026
  • Starting from the CAPI release when v1beta1 removal will happen (tentative Aug 2026), the Cluster API project will remove the Cluster API condition type, the util/conditions/deprecated/v1beta1 package, the util/deprecated/v1beta1 package, the code handling old conditions in util/patch.Helper and everything related to the custom Cluster API custom condition type.
  • All the status.deprecated fields will be removed tentatively in August 2026.
  • Compatibility support for the v1beta1 version of the Cluster API contract will be removed tentatively in August 2026