-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Open
Labels
kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.triage/acceptedIndicates an issue or PR is ready to be actively worked on.Indicates an issue or PR is ready to be actively worked on.
Description
As of today we are not surfacing aggregated informations about current Machine version in CAPI, except for control plane objects that abides to this control plane contract rule (optional).
We should start surfacing those info, taking into account that at any given moment there could be Machine at different version in a cluster. e.g.
versions:
- version: v1.35
replicas: 10
- version: v1.36
replicas: 5 - Add status.versions to MS
- Use version from the status of the controlled machines (status.nodeInfo.KubeletVersion)
- Add status.versions to MD
- To be consistent with existing replica counters, the list of versions must be computed from the list of MS:
- collect MS versions without duplicates
- for each version, sum MS.Status.Replicas
- Note: check if we can use this info where it makes sense, eg. IsMachineDeploymentUpgrading (today we are mostly using spec.version from MD)
- To be consistent with existing replica counters, the list of versions must be computed from the list of MS:
- Define how status.versions should behave for control plane providers
- Document new status.versions field as a preferred way to surface versions (note. replicas must be optional to support control plane providers without a notion of replicas)
- Deprecate status.version field (without s); document that the field will still be supported as a fallback of the preferred option
- Check usage of contract.ControlPlane().StatusVersion(), change the code to use status.versions as a primary source of truth, fall back on status.version (without s)
- note: today for computing status.version (without s) we check spec.version, the new approach seems more correct
- Add status.versions to KCP
- Deprecate status.version
- Add status.versions (compute by looking at status.nodeInfo.KubeletVersion from existing machines
- Add status.versions to Cluster
- Add status.controlplane.versions and status.workers.versions
- status.controlplane.versions must be computed from the info surfaced by the control plane provider (note: this should not fall back on status.version field (without s))
- status.workers.versions must be computed from the info surfaced by MD, MP, standalone MS, standalone M
- Add status.versions to MP (~same as MD)
- compute from MP machines like we do for existing replica counters
- Note: we are not going to implement support for MP without MP machines (same as existing replica counters).
/Kind feature
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.triage/acceptedIndicates an issue or PR is ready to be actively worked on.Indicates an issue or PR is ready to be actively worked on.