Skip to content

Commit 74abf91

Browse files
📖 More documentation on v1.11 migration (#12236)
* More documentation on v1.11 migration # Conflicts: # docs/book/src/developer/providers/migrations/v1.10-to-v1.11.md * Fix go version * Address comments * Document change in builtin variables from 12235 * More comments * Document 12245 * More comments * More comments
1 parent 9c1392d commit 74abf91

File tree

2 files changed

+419
-157
lines changed

2 files changed

+419
-157
lines changed

docs/book/src/developer/providers/contracts/control-plane.md

Lines changed: 3 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -333,61 +333,9 @@ documentation][scale].
333333
In order to ease the transition for providers, the v1beta2 version of the Cluster API contract _temporarily_
334334
preserves compatibility with the deprecated v1beta1 contract; compatibility will be removed tentatively in August 2026.
335335
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.
391339

392340
</aside>
393341

0 commit comments

Comments
 (0)