@@ -333,61 +333,9 @@ documentation][scale].
333
333
In order to ease the transition for providers, the v1beta2 version of the Cluster API contract _temporarily_
334
334
preserves compatibility with the deprecated v1beta1 contract; compatibility will be removed tentatively in August 2026.
335
335
336
- With regards to replicas:
337
-
338
- Cluster API will continue to temporarily support ControlPlane resource using the ` status.ready` field to
339
- report initialization completed.
340
-
341
- After compatibility with the deprecated v1beta1 contract will be removed, `status.ready` fields in
342
- the ControlPlane resource will be ignored.
343
-
344
- </aside>
345
-
346
- <aside class="note warning">
347
-
348
- <h1>Heads up! this will change with the v1beta2 contract</h1>
349
-
350
- When the v1beta2 contract will be released (tentative Apr 2025), Cluster API is going to standardize replica
351
- counters across all the API resources.
352
-
353
- In order to ensure a nice and consistent user experience across the entire Cluster, also ControlPlane providers
354
- are expected to align to this effort and implement the following replica counter fields / field semantic.
355
-
356
- ` ` ` go
357
- type FooControlPlaneStatus struct {
358
- // selector is the label selector in string format to avoid introspection
359
- // by clients, and is used to provide the CRD-based integration for the
360
- // scale subresource and additional integrations for things like kubectl
361
- // describe. The string will be in the same format as the query-param syntax.
362
- // More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
363
- // +optional
364
- Selector string ` json:"selector,omitempty"`
365
-
366
- // replicas is the total number of machines targeted by this control plane
367
- // (their labels match the selector).
368
- // +optional
369
- Replicas *int32 `json:"replicas,omitempty"`
370
-
371
- // readyReplicas is the number of ready replicas for this ControlPlane. A machine is considered ready when Machine's Ready condition is true.
372
- // +optional
373
- ReadyReplicas *int32 `json:"readyReplicas,omitempty"`
374
-
375
- // availableReplicas is the number of available replicas for this ControlPlane. A machine is considered available when Machine's Available condition is true.
376
- // +optional
377
- AvailableReplicas *int32 `json:"availableReplicas,omitempty"`
378
-
379
- // upToDateReplicas is the number of up-to-date replicas targeted by this ControlPlane. A machine is considered available when Machine's UpToDate condition is true.
380
- // +optional
381
- UpToDateReplicas *int32 `json:"upToDateReplicas,omitempty"`
382
-
383
- // See other rules for more details about mandatory/optional fields in ControlPlane status.
384
- // Other fields SHOULD be added based on the needs of your provider.
385
- }
386
- ```
387
-
388
- Other fields will be ignored.
389
-
390
- See [ Improving status in CAPI resources] for more context.
336
+ With regards to v1beta1 replica counters, the Cluster controller with temporarily continue to read
337
+ ` status.readyReplicas`, `status.updatedReplicas` and `status.unavailableReplicas`, even if the semantic of the
338
+ field might be different from what expected.
391
339
392
340
</aside>
393
341
0 commit comments