Skip to content
Closed
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions config/v1/types_infrastructure.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,12 @@ type InfrastructureStatus struct {
// +optional
InfrastructureTopology TopologyMode `json:"infrastructureTopology,omitempty"`

// TopologyTransitionStatus reports the current status of the topology transition.
// When omitted, no topology transition status is reported.
// +openshift:enable:FeatureGate=MutableTopology
// +optional
TopologyTransitionStatus *TopologyTransitionStatus `json:"topologyTransitionStatus,omitempty"`

// cpuPartitioning expresses if CPU partitioning is a currently enabled feature in the cluster.
// CPU Partitioning means that this cluster can support partitioning workloads to specific CPU Sets.
// Valid values are "None" and "AllNodes". When omitted, the default value is "None".
Expand Down Expand Up @@ -177,6 +183,41 @@ const (
ExternalTopologyMode TopologyMode = "External"
)

type TopologyTransitionStatus struct {
// Status is one of UnsupportedTransition, PreflightCheckFailed,
// TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
// +kubebuilder:validation:Enum=UnsupportedTransition;PreflightCheckFailed;TopologyTransitionInProgress;TopologyTransitionComplete;AsExpected
Status TopologyTransitionStatusFlag `json:"topologyTransitionStatusFlag,omitempty"`

@jeff-roche jeff-roche Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] I don't love TopologyTransitionStatusFlag, what about TopologyTransitionState? Status would likely become State in that case


// Message is human readable information about the reason for the current status.
Message string `json:"message,omitempty"`
}

// TopologyTransitionStatusFlag tracks the last observed state of a topology transition
// requested via spec.controlPlaneTopology.
type TopologyTransitionStatusFlag string

const (
// TopologyTransitionStatusUnsupportedTransition indicates that the requested
// topology transition is not supported.
TopologyTransitionStatusUnsupportedTransition TopologyTransitionStatusFlag = "UnsupportedTransition"

// TopologyTransitionStatusPreflightCheckFailed indicates that a preflight
// check for the requested topology transition failed.
TopologyTransitionStatusPreflightCheckFailed TopologyTransitionStatusFlag = "PreflightCheckFailed"

// TopologyTransitionStatusInProgress indicates that a topology transition is
// currently in progress.
TopologyTransitionStatusInProgress TopologyTransitionStatusFlag = "TopologyTransitionInProgress"

// TopologyTransitionStatusComplete indicates that a topology transition has
// completed successfully.
TopologyTransitionStatusComplete TopologyTransitionStatusFlag = "TopologyTransitionComplete"

// TopologyTransitionStatusAsExpected indicates that no topology transition is in progress
TopologyTransitionStatusAsExpected TopologyTransitionStatusFlag = "AsExpected"
)

// CPUPartitioningMode defines the mode for CPU partitioning
type CPUPartitioningMode string

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2843,6 +2843,27 @@ spec:
rule: '!has(self.dnsRecordsType) || self.dnsRecordsType == ''Internal''
|| (has(self.loadBalancer) && self.loadBalancer.type == ''UserManaged'')'
type: object
topologyTransitionStatus:
description: |-
TopologyTransitionStatus reports the current status of the topology transition.
When omitted, no topology transition status is reported.
properties:
message:
description: Message is human readable information with a brief
statement of the reason for the current status.
type: string
topologyTransitionStatusFlag:
description: |-
Status is one of UnsupportedTransition, PreflightCheckFailed,
TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
enum:
- UnsupportedTransition
- PreflightCheckFailed
- TopologyTransitionInProgress
- TopologyTransitionComplete
- AsExpected
type: string
type: object
type: object
required:
- spec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2843,6 +2843,27 @@ spec:
rule: '!has(self.dnsRecordsType) || self.dnsRecordsType == ''Internal''
|| (has(self.loadBalancer) && self.loadBalancer.type == ''UserManaged'')'
type: object
topologyTransitionStatus:
description: |-
TopologyTransitionStatus reports the current status of the topology transition.
When omitted, no topology transition status is reported.
properties:
message:
description: Message is human readable information with a brief
statement of the reason for the current status.
type: string
topologyTransitionStatusFlag:
description: |-
Status is one of UnsupportedTransition, PreflightCheckFailed,
TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
enum:
- UnsupportedTransition
- PreflightCheckFailed
- TopologyTransitionInProgress
- TopologyTransitionComplete
- AsExpected
type: string
type: object
type: object
required:
- spec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2843,6 +2843,27 @@ spec:
rule: '!has(self.dnsRecordsType) || self.dnsRecordsType == ''Internal''
|| (has(self.loadBalancer) && self.loadBalancer.type == ''UserManaged'')'
type: object
topologyTransitionStatus:
description: |-
TopologyTransitionStatus reports the current status of the topology transition.
When omitted, no topology transition status is reported.
properties:
message:
description: Message is human readable information with a brief
statement of the reason for the current status.
type: string
topologyTransitionStatusFlag:
description: |-
Status is one of UnsupportedTransition, PreflightCheckFailed,
TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
enum:
- UnsupportedTransition
- PreflightCheckFailed
- TopologyTransitionInProgress
- TopologyTransitionComplete
- AsExpected
type: string
type: object
type: object
required:
- spec
Expand Down
21 changes: 21 additions & 0 deletions config/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2431,6 +2431,27 @@ spec:
type: string
type: object
type: object
topologyTransitionStatus:
description: |-
TopologyTransitionStatus reports the current status of the topology transition.
When omitted, no topology transition status is reported.
properties:
message:
description: Message is human readable information with a brief
statement of the reason for the current status.
type: string
topologyTransitionStatusFlag:
description: |-
Status is one of UnsupportedTransition, PreflightCheckFailed,
TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
enum:
- UnsupportedTransition
- PreflightCheckFailed
- TopologyTransitionInProgress
- TopologyTransitionComplete
- AsExpected
type: string
type: object
type: object
required:
- spec
Expand Down
5 changes: 5 additions & 0 deletions config/v1/zz_generated.model_name.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 20 additions & 10 deletions config/v1/zz_generated.swagger_doc_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3165,6 +3165,27 @@ spec:
== ''Internal'' || (has(self.loadBalancer) && self.loadBalancer.type
== ''UserManaged'')'
type: object
topologyTransitionStatus:
description: |-
TopologyTransitionStatus reports the current status of the topology transition.
When omitted, no topology transition status is reported.
properties:
message:
description: Message is human readable information with
a brief statement of the reason for the current status.
type: string
topologyTransitionStatusFlag:
description: |-
Status is one of UnsupportedTransition, PreflightCheckFailed,
TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.
enum:
- UnsupportedTransition
- PreflightCheckFailed
- TopologyTransitionInProgress
- TopologyTransitionComplete
- AsExpected
type: string
type: object
type: object
required:
- spec
Expand Down
Loading