Cluster API v1.3 compared to v1.4
This document provides an overview over relevant changes between Cluster API v1.3 and v1.4 for maintainers of providers and consumers of our Go API.
Minimum Go version
- The Go version used by Cluster API is still Go 1.19.x
Dependencies
Note: Only the most relevant dependencies are listed, k8s.io/
and ginkgo
/gomega
dependencies in Cluster API are kept in sync with the versions used by sigs.k8s.io/controller-runtime
.
- sigs.k8s.io/controller-runtime: v0.13.x => v0.14.x
- sigs.k8s.io/controller-tools: v0.10.x => v0.11.x
Changes by Kind
Deprecation
Removals
clusterctl backup
has been removed.clusterctl restore
has been removed.api/v1beta1.MachineHealthCheckSuccededCondition
condition type has been removed.controller/external/util.CloneTemplate
andcontrollers/external/util.CloneTemplateInput
has been removed.- The option
--list-images
fromclusterctl init
subcommand has been removed. exp/runtime/server.NewServer
has been removed.--disable-no-echo
option fromclusterctl describe cluster
subcommand has been removedapi/v1beta1.ClusterTopologyManagedFieldsAnnotation
field has been removed.api/v1beta1.PopulateDefaultsMachineDeployment
func has been removed.
API Changes
Backup(options BackupOptions) error
in the Client interface has been removed.Restore(options RestoreOptions) error
in the Client interface has been removed.cmd/clusterctl/client.RolloutOptions
has been removed,RolloutRestartOptions
,RolloutPauseOptions
,RolloutResumeOptions
, andRolloutUndoOptions
have been added instead.- Annotation constant
DisableMachineCreate
has been updated toDisableMachineCreateAnnotation
- Below Label constant have been updated
ClusterLabelName
toClusterNameLabel
ClusterTopologyMachineDeploymentLabelName
toClusterTopologyMachineDeploymentNameLabel
ProviderLabelName
toProviderNameLabel
MachineControlPlaneLabelName
toMachineControlPlaneLabel
MachineSetLabelName
toMachineSetNameLabel
MachineDeploymentLabelName
toMachineDeploymentNameLabel
- Below Condition and Reason constants have been updated
ExternalRemediationTemplateAvailable
toExternalRemediationTemplateAvailableCondition
ExternalRemediationTemplateNotFound
toExternalRemediationTemplateNotFoundReason
ExternalRemediationRequestAvailable
toExternalRemediationRequestAvailableCondition
ExternalRemediationRequestCreationFailed
toExternalRemediationRequestCreationFailedReason
Other
clusterctl upgrade apply
no longer requires a namespace when updating providers. It is now optional and in a future release it will be deprecated. The new syntax is[namespace/]provider:version
.WatchDeploymentLogs
is changed toWatchDeploymentLogsByName
, it works same as before. Another functionWatchDeploymentLogsByLabelSelector
is added to stream logs of deployment by label selector.- Cluster API controllers are now using an explicit security context by default.
- It is recommended to drop usages of
logs.AddFlags(fs, logs.SkipLoggingConfigurationFlags())
. It was previously used to configure deprecated logging flags, but with the bump to component-basev0.26.0
this function is not configuring any flags anymore. Please note that the following logging flags have been removed: (incomponent-base
, but this affects all CAPI controllers):--add-dir-header
,--alsologtostderr
,--log-backtrace-at
,--log-dir
,--log-file
,--log-file-max-size
,--logtostderr
,--one-output
,--skip-headers
,--skip-log-headers
and--stderrthreshold
. For more information, please see: https://github.com/kubernetes/enhancements/issues/2845
Suggested changes for providers
- Providers should add an explicit security context to their controllers deployment, see #7831 for reference.