@@ -120,10 +120,10 @@ proposal because most of the changes described below are a consequence of the wo
120
120
- ` spec.topology.controlPlane.machineHealthCheck `
121
121
- ` spec.topology.workers.machineDeployments[].machineHealthCheck `
122
122
- All fields of type Duration in ` spec.topology.{controlPlane,workers.machineDeployments[],workers.machinePools[] ` have
123
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
124
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
125
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
126
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
123
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
124
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
125
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
126
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
127
127
- All fields of type Duration in ` spec.topology.{controlPlane.machineHealthCheck,workers.machineDeployments[].machineHealthCheck ` have
128
128
been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
129
129
- ` nodeStartupTimeout ` => ` nodeStartupTimeoutSeconds `
@@ -155,10 +155,10 @@ proposal because most of the changes described below are a consequence of the wo
155
155
- ` apiVersion ` has been replaced with ` apiGroup ` . As before, the version will be read from the corresponding CRD.
156
156
- The ` spec.progressDeadlineSeconds ` field (deprecated since CAPI v1.9) has been removed
157
157
- All fields of type Duration in ` spec.template.spec ` have
158
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
159
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
160
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
161
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
158
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
159
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
160
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
161
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
162
162
- Replica counters are now consistent with replica counters from other resources
163
163
- ` status.replicas ` was made a pointer and omitempty was added
164
164
- ` status.readyReplicas ` has now a new semantic based on machine's ` Ready ` condition
@@ -180,10 +180,10 @@ proposal because most of the changes described below are a consequence of the wo
180
180
- The following fields have been removed: ` namespace ` , ` uid ` , ` resourceVersion ` , ` fieldPath `
181
181
- ` apiVersion ` has been replaced with ` apiGroup ` . As before, the version will be read from the corresponding CRD.
182
182
- All fields of type Duration in ` spec.template.spec ` have
183
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
184
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
185
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
186
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
183
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
184
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
185
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
186
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
187
187
- Replica counters fields are now consistent with replica counters from other resources
188
188
- ` status.replicas ` was made a pointer and omitempty was added
189
189
- ` status.readyReplicas ` has now a new semantic based on machine's ` Ready ` condition
@@ -201,10 +201,10 @@ proposal because most of the changes described below are a consequence of the wo
201
201
- The following fields have been removed: ` namespace ` , ` uid ` , ` resourceVersion ` , ` fieldPath `
202
202
- ` apiVersion ` has been replaced with ` apiGroup ` . As before, the version will be read from the corresponding CRD.
203
203
- All fields of type Duration in ` spec.template.spec ` have
204
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
205
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
206
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
207
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
204
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
205
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
206
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
207
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
208
208
- ` status.replicas ` was made a pointer and omitempty was added
209
209
- Support for terminal errors has been dropped.
210
210
- ` status.failureReason ` and ` status.failureMessage ` will continue to exist temporarily under ` status.deprecated.v1beta1 ` .
@@ -218,10 +218,10 @@ proposal because most of the changes described below are a consequence of the wo
218
218
- The following fields have been removed: ` namespace ` , ` uid ` , ` resourceVersion ` , ` fieldPath `
219
219
- ` apiVersion ` has been replaced with ` apiGroup ` . As before, the version will be read from the corresponding CRD.
220
220
- All fields of type Duration in ` spec ` have
221
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
222
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
223
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
224
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
221
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
222
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
223
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
224
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
225
225
- Information about the initial provisioning process is now surfacing under the new ` status.initialization ` field.
226
226
- ` status.infrastructureReady ` has been replaced by ` status.initialization.infrastructureProvisioned `
227
227
- ` status.bootstrapReady ` has been replaced by ` status.initialization.bootstrapDataSecretCreated `
@@ -243,6 +243,7 @@ proposal because most of the changes described below are a consequence of the wo
243
243
- The ` spec.unhealthyConditions ` field has been renamed to ` spec.unhealthyNodeConditions `
244
244
- The ` spec.remediationTemplate ` field has been migrated from type ` corev1.ObjectReference ` to ` MachineHealthCheckRemediationTemplateReference ` :
245
245
- The following fields have been removed from ` remediationTemplate ` : ` namespace ` , ` uid ` , ` resourceVersion ` , ` fieldPath `
246
+
246
247
### ClusterClass
247
248
248
249
- See changes that apply to [ all CRDs] ( #all-crds )
@@ -256,10 +257,10 @@ proposal because most of the changes described below are a consequence of the wo
256
257
- These fields are deprecated and will be removed when support for v1beta1 will be dropped.
257
258
- Please use ` XMetadata ` in ` JSONSchemaProps ` instead.
258
259
- All fields of type Duration in ` spec.{controlPlane,workers.machineDeployments[],workers.machinePools[] ` have
259
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
260
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
261
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
262
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
260
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
261
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
262
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
263
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
263
264
- All fields of type Duration in ` spec.controlPlane.machineHealthCheck ` and ` spec.workers.machineDeployments[].machineHealthCheck ` have
264
265
been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
265
266
- ` nodeStartupTimeout ` => ` nodeStartupTimeoutSeconds `
@@ -336,10 +337,11 @@ KubeadmConfigTemplate `spec.template.spec` has been aligned to changes in the [K
336
337
337
338
- KubeadmControlPlane (and the entire KCP provider) now implements the v1beta2 Cluster API contract.
338
339
- See changes that apply to [ all CRDs] ( #all-crds )
339
- - The ` spec.machineTemplate.infrastructureRef ` field is now using ` ContractVersionedObjectReference ` type instead
340
+ - The ` spec.machineTemplate.infrastructureRef ` field was moved to ` spec.machineTemplate.spec.infrastructureRef ` and is now using ` ContractVersionedObjectReference ` type instead
340
341
of ` corev1.ObjectReference ` .
341
342
- The following fields have been removed: ` namespace ` , ` uid ` , ` resourceVersion ` , ` fieldPath `
342
343
- ` apiVersion ` has been replaced with ` apiGroup ` . As before, the version will be read from the corresponding CRD.
344
+ - The ` spec.machineTemplate.readinessGates ` field was moved to ` spec.machineTemplate.spec.readinessGates ` .
343
345
- ExtraArg field types have been changed from ` map[string]sting ` to ` []Arg ` , thus aligning with kubeadm v1beta4 API;
344
346
however, using multiple args with the same name will be enabled only when v1beta1 is removed, tentatively in August 2026
345
347
- ` spec.kubeadmConfigSpec.clusterConfiguration.apiServer.extraArgs ` type has been changed to ` []Arg `
@@ -381,10 +383,10 @@ KubeadmConfigTemplate `spec.template.spec` has been aligned to changes in the [K
381
383
been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
382
384
- ` .ttl ` => ` .ttlSeconds `
383
385
- All fields of type Duration in ` spec.machineTemplate ` have
384
- been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
385
- - ` nodeDrainTimeout ` => ` nodeDrainTimeoutSeconds `
386
- - ` nodeVolumeDetachTimeout ` => ` nodeVolumeDetachTimeoutSeconds `
387
- - ` nodeDeletionTimeout ` => ` nodeDeletionTimeoutSeconds `
386
+ been renamed by adding the ` Seconds ` suffix, moved into the ` deletion ` section and their type was changed to int32, thus aligning to K8s guidelines.
387
+ - ` nodeDrainTimeout ` => ` deletion. nodeDrainTimeoutSeconds`
388
+ - ` nodeVolumeDetachTimeout ` => ` deletion. nodeVolumeDetachTimeoutSeconds`
389
+ - ` nodeDeletionTimeout ` => ` deletion. nodeDeletionTimeoutSeconds`
388
390
- All fields of type Duration in ` spec.remediationStrategy ` have
389
391
been renamed by adding the ` Seconds ` suffix and their type was changed to int32, thus aligning to K8s guidelines.
390
392
- ` retryPeriod ` => ` retryPeriodSeconds `
@@ -497,6 +499,7 @@ for providers still implementing the v1beta1 contract.
497
499
- Type of the ` status.version ` field was changed from ` *string ` to ` string ` .
498
500
- [ ControlPlane: machines] ( ../contracts/control-plane.md#controlplane-machines )
499
501
- Type of the ` status.externalManagedControlPlane ` field was changed from ` bool ` to ` *bool ` .
502
+ - Fields in ` spec.machineTemplate ` were restructured.
500
503
- [ ControlPlane: conditions] ( ../contracts/control-plane.md#controlplane-conditions )
501
504
- The fact that Providers are not required to implement conditions remains valid
502
505
- In case a provider implements conditions, Cluster API doesn't require anymore usage of a specific condition type,
0 commit comments