diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 857f9b27929..b9134496df3 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -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". @@ -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 + State TopologyTransitionState `json:"state,omitempty"` + + // Message is human readable information about the reason for the current status. + Message string `json:"message,omitempty"` +} + +// TopologyTransitionState tracks the last observed state of a topology transition +// requested via spec.controlPlaneTopology. +type TopologyTransitionState string + +const ( + // TopologyTransitionStatusUnsupportedTransition indicates that the requested + // topology transition is not supported. + TopologyTransitionStatusUnsupportedTransition TopologyTransitionState = "UnsupportedTransition" + + // TopologyTransitionStatusPreflightCheckFailed indicates that a preflight + // check for the requested topology transition failed. + TopologyTransitionStatusPreflightCheckFailed TopologyTransitionState = "PreflightCheckFailed" + + // TopologyTransitionStatusInProgress indicates that a topology transition is + // currently in progress. + TopologyTransitionStatusInProgress TopologyTransitionState = "TopologyTransitionInProgress" + + // TopologyTransitionStatusComplete indicates that a topology transition has + // completed successfully. + TopologyTransitionStatusComplete TopologyTransitionState = "TopologyTransitionComplete" + + // TopologyTransitionStatusAsExpected indicates that no topology transition is in progress + TopologyTransitionStatusAsExpected TopologyTransitionState = "AsExpected" +) + // CPUPartitioningMode defines the mode for CPU partitioning type CPUPartitioningMode string diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml index 7a35e5fc0f7..29f3fc7f250 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml index bbeff9ec02e..8ee554b7e8a 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index 0207127aa67..4a4f36fac63 100644 --- a/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -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 diff --git a/config/v1/zz_generated.deepcopy.go b/config/v1/zz_generated.deepcopy.go index 5df50e2f60d..50ac249e843 100644 --- a/config/v1/zz_generated.deepcopy.go +++ b/config/v1/zz_generated.deepcopy.go @@ -3820,6 +3820,11 @@ func (in *InfrastructureStatus) DeepCopyInto(out *InfrastructureStatus) { *out = new(PlatformStatus) (*in).DeepCopyInto(*out) } + if in.TopologyTransitionStatus != nil { + in, out := &in.TopologyTransitionStatus, &out.TopologyTransitionStatus + *out = new(TopologyTransitionStatus) + **out = **in + } return } @@ -6853,6 +6858,22 @@ func (in *TokenUserValidationRule) DeepCopy() *TokenUserValidationRule { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopologyTransitionStatus) DeepCopyInto(out *TopologyTransitionStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyTransitionStatus. +func (in *TopologyTransitionStatus) DeepCopy() *TopologyTransitionStatus { + if in == nil { + return nil + } + out := new(TopologyTransitionStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Update) DeepCopyInto(out *Update) { *out = *in diff --git a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml index 446505413cb..c0ff27b4e05 100644 --- a/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml +++ b/config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml @@ -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 diff --git a/config/v1/zz_generated.model_name.go b/config/v1/zz_generated.model_name.go index 043c03ef5ef..8eea3840ef6 100644 --- a/config/v1/zz_generated.model_name.go +++ b/config/v1/zz_generated.model_name.go @@ -1455,6 +1455,11 @@ func (in TokenUserValidationRule) OpenAPIModelName() string { return "com.github.openshift.api.config.v1.TokenUserValidationRule" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in TopologyTransitionStatus) OpenAPIModelName() string { + return "com.github.openshift.api.config.v1.TopologyTransitionStatus" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in Update) OpenAPIModelName() string { return "com.github.openshift.api.config.v1.Update" diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index aa7c2ee8821..de2a67cc7fd 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1882,16 +1882,17 @@ func (InfrastructureSpec) SwaggerDoc() map[string]string { } var map_InfrastructureStatus = map[string]string{ - "": "InfrastructureStatus describes the infrastructure the cluster is leveraging.", - "infrastructureName": "infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.", - "platform": "platform is the underlying infrastructure provider for the cluster.\n\nDeprecated: Use platformStatus.type instead.", - "platformStatus": "platformStatus holds status information specific to the underlying infrastructure provider.", - "etcdDiscoveryDomain": "etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.", - "apiServerURL": "apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.", - "apiServerInternalURI": "apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.", - "controlPlaneTopology": "controlPlaneTopology expresses the expectations for operands that normally run on control nodes. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation The 'External' mode indicates that the control plane is hosted externally to the cluster and that its components are not visible within the cluster. The 'HighlyAvailableArbiter' mode indicates that the control plane will consist of 2 control-plane nodes that run conventional services and 1 smaller sized arbiter node that runs a bare minimum of services to maintain quorum.", - "infrastructureTopology": "infrastructureTopology expresses the expectations for infrastructure services that do not run on control plane nodes, usually indicated by a node selector for a `role` value other than `master`. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation NOTE: External topology mode is not applicable for this field.", - "cpuPartitioning": "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\". The default value of \"None\" indicates that no nodes will be setup with CPU partitioning. The \"AllNodes\" value indicates that all nodes have been setup with CPU partitioning, and can then be further configured via the PerformanceProfile API.", + "": "InfrastructureStatus describes the infrastructure the cluster is leveraging.", + "infrastructureName": "infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.", + "platform": "platform is the underlying infrastructure provider for the cluster.\n\nDeprecated: Use platformStatus.type instead.", + "platformStatus": "platformStatus holds status information specific to the underlying infrastructure provider.", + "etcdDiscoveryDomain": "etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.", + "apiServerURL": "apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.", + "apiServerInternalURI": "apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.", + "controlPlaneTopology": "controlPlaneTopology expresses the expectations for operands that normally run on control nodes. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation The 'External' mode indicates that the control plane is hosted externally to the cluster and that its components are not visible within the cluster. The 'HighlyAvailableArbiter' mode indicates that the control plane will consist of 2 control-plane nodes that run conventional services and 1 smaller sized arbiter node that runs a bare minimum of services to maintain quorum.", + "infrastructureTopology": "infrastructureTopology expresses the expectations for infrastructure services that do not run on control plane nodes, usually indicated by a node selector for a `role` value other than `master`. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation NOTE: External topology mode is not applicable for this field.", + "topologyTransitionStatus": "TopologyTransitionStatus reports the current status of the topology transition. When omitted, no topology transition status is reported.", + "cpuPartitioning": "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\". The default value of \"None\" indicates that no nodes will be setup with CPU partitioning. The \"AllNodes\" value indicates that all nodes have been setup with CPU partitioning, and can then be further configured via the PerformanceProfile API.", } func (InfrastructureStatus) SwaggerDoc() map[string]string { @@ -2140,6 +2141,15 @@ func (PowerVSServiceEndpoint) SwaggerDoc() map[string]string { return map_PowerVSServiceEndpoint } +var map_TopologyTransitionStatus = map[string]string{ + "topologyTransitionStatusFlag": "Status is one of UnsupportedTransition, PreflightCheckFailed, TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.", + "message": "Message is human readable information with a brief statement of the reason for the current status.", +} + +func (TopologyTransitionStatus) SwaggerDoc() map[string]string { + return map_TopologyTransitionStatus +} + var map_VSphereFailureDomainHostGroup = map[string]string{ "": "VSphereFailureDomainHostGroup holds the vmGroup and the hostGroup names in vCenter corresponds to a vm-host group of type Virtual Machine and Host respectively. Is also contains the vmHostRule which is an affinity vm-host rule in vCenter.", "vmGroup": "vmGroup is the name of the vm-host group of type virtual machine within vCenter for this failure domain. vmGroup is limited to 80 characters. This field is required when the VSphereFailureDomain ZoneType is HostGroup", diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml index 273851bb919..22f3660c60c 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml index 8e1534879d6..53bb3bf5137 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index fb3e18ca85e..fc882718fcb 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -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 diff --git a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml index 3d7117d83f3..94b496f2435 100644 --- a/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml +++ b/machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml @@ -2738,6 +2738,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 diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index b3557d1e5b5..61f47dd76aa 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -492,6 +492,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA configv1.TokenIssuer{}.OpenAPIModelName(): schema_openshift_api_config_v1_TokenIssuer(ref), configv1.TokenRequiredClaim{}.OpenAPIModelName(): schema_openshift_api_config_v1_TokenRequiredClaim(ref), configv1.TokenUserValidationRule{}.OpenAPIModelName(): schema_openshift_api_config_v1_TokenUserValidationRule(ref), + configv1.TopologyTransitionStatus{}.OpenAPIModelName(): schema_openshift_api_config_v1_TopologyTransitionStatus(ref), configv1.Update{}.OpenAPIModelName(): schema_openshift_api_config_v1_Update(ref), configv1.UpdateHistory{}.OpenAPIModelName(): schema_openshift_api_config_v1_UpdateHistory(ref), configv1.UsernameClaimMapping{}.OpenAPIModelName(): schema_openshift_api_config_v1_UsernameClaimMapping(ref), @@ -16421,6 +16422,12 @@ func schema_openshift_api_config_v1_InfrastructureStatus(ref common.ReferenceCal Format: "", }, }, + "topologyTransitionStatus": { + SchemaProps: spec.SchemaProps{ + Description: "TopologyTransitionStatus reports the current status of the topology transition. When omitted, no topology transition status is reported.", + Ref: ref(configv1.TopologyTransitionStatus{}.OpenAPIModelName()), + }, + }, "cpuPartitioning": { SchemaProps: spec.SchemaProps{ Description: "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\". The default value of \"None\" indicates that no nodes will be setup with CPU partitioning. The \"AllNodes\" value indicates that all nodes have been setup with CPU partitioning, and can then be further configured via the PerformanceProfile API.", @@ -16433,7 +16440,7 @@ func schema_openshift_api_config_v1_InfrastructureStatus(ref common.ReferenceCal }, }, Dependencies: []string{ - configv1.PlatformStatus{}.OpenAPIModelName()}, + configv1.PlatformStatus{}.OpenAPIModelName(), configv1.TopologyTransitionStatus{}.OpenAPIModelName()}, } } @@ -22258,6 +22265,32 @@ func schema_openshift_api_config_v1_TokenUserValidationRule(ref common.Reference } } +func schema_openshift_api_config_v1_TopologyTransitionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "topologyTransitionStatusFlag": { + SchemaProps: spec.SchemaProps{ + Description: "Status is one of UnsupportedTransition, PreflightCheckFailed, TopologyTransitionInProgress, TopologyTransitionComplete, or AsExpected.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is human readable information with a brief statement of the reason for the current status.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + func schema_openshift_api_config_v1_Update(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/openapi/openapi.json b/openapi/openapi.json index b865fda0089..62ded2a0b36 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -8612,6 +8612,10 @@ "platformStatus": { "description": "platformStatus holds status information specific to the underlying infrastructure provider.", "$ref": "#/definitions/com.github.openshift.api.config.v1.PlatformStatus" + }, + "topologyTransitionStatus": { + "description": "TopologyTransitionStatus reports the current status of the topology transition. When omitted, no topology transition status is reported.", + "$ref": "#/definitions/com.github.openshift.api.config.v1.TopologyTransitionStatus" } } }, @@ -12029,6 +12033,19 @@ } } }, + "com.github.openshift.api.config.v1.TopologyTransitionStatus": { + "type": "object", + "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.", + "type": "string" + } + } + }, "com.github.openshift.api.config.v1.Update": { "description": "Update represents an administrator update request.", "type": "object", diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml index 7a35e5fc0f7..29f3fc7f250 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml index bbeff9ec02e..8ee554b7e8a 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index 0207127aa67..4a4f36fac63 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -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 diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml index 273851bb919..22f3660c60c 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml index 8e1534879d6..53bb3bf5137 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -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 diff --git a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index fb3e18ca85e..fc882718fcb 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -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