Cluster API v1.9 compared to v1.10
This document provides an overview over relevant changes between Cluster API v1.9 and v1.10 for maintainers of providers and consumers of our Go API.
Go version
- The Go version used by Cluster API is Go 1.23.x
Changes by Kind
Deprecation
Removals
API Changes
Other
- The following functions for
E2EConfiginsigs.k8s.io/cluster-api/test/framework/clusterctlgot renamed (#11743):E2EConfig.GetVariableis nowE2EConfig.MustGetVariableE2EConfig.GetInt64PtrVariableis nowE2EConfig.MustGetInt64PtrVariableE2EConfig.GetInt32PtrVariableis nowE2EConfig.MustGetInt32PtrVariable
- Using the package
sigs.k8s.io/cluster-api/controllers/clustercachein tests using envtest may require a change to properly shutdown a running clustercache. Otherwise teardown of envtest might time out and lead to failed tests. (xref #11757)
Suggested changes for providers
- If you are developing a control plane provider with support for machines, please consider adding
spec.machineTemplate.readinessGates(see contract) - core Cluster API added the new CRD migrator component. For more details, see: https://github.com/kubernetes-sigs/cluster-api/issues/11894
- CRD migration in clusterctl has been deprecated and will be removed in CAPI v1.13, so it’s recommended to adopt the CRD migrator in providers instead.
- Please see the examples in https://github.com/kubernetes-sigs/cluster-api/pull/11889, the following high-level steps are required:
- Add the
--skip-crd-migration-phasescommand-line flag that allows to skip CRD migration phases - Setup the
CRDMigratorcomponent with the manager. - Configure all CRDs owned by your provider, only set
UseCachefor the objects for which your provider already has an informer. - Add the following RBAC:
- resources:
customresourcedefinitions, verbs:get;list;watch - resources:
customresourcedefinitions;customresourcedefinitions/status, resourceNames:<crd-name>, verbs:update;patch- Note: The CRD migrator will add the
crd-migration.cluster.x-k8s.io/observed-generationannotation on the CRD object, please ensure that if these CRD objects are deployed with a tool like kapp / Argo / Flux the annotation is not continuously removed.
- Note: The CRD migrator will add the
- For all CRs that should be migrated by the
CRDMigrator: verbs:get;list;watch;patch;update - For all CRs with
UseStatusForStorageVersionMigration: trueverbs:update;patchon their/statusresource (e.g.ipaddressclaims/status)
- Add the