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
E2EConfig
insigs.k8s.io/cluster-api/test/framework/clusterctl
got renamed (#11743):E2EConfig.GetVariable
is nowE2EConfig.MustGetVariable
E2EConfig.GetInt64PtrVariable
is nowE2EConfig.MustGetInt64PtrVariable
E2EConfig.GetInt32PtrVariable
is nowE2EConfig.MustGetInt32PtrVariable
- Using the package
sigs.k8s.io/cluster-api/controllers/clustercache
in 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-phases
command-line flag that allows to skip CRD migration phases - Setup the
CRDMigrator
component with the manager. - Configure all CRDs owned by your provider, only set
UseCache
for 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-generation
annotation 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: true
verbs:update;patch
on their/status
resource (e.g.ipaddressclaims/status
)
- Add the