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.
- The Go version used by Cluster API is Go 1.23.x
- 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)
- 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: #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 #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