From 52cbf16c7c391193813e7cb14e5d3c76c4b766bc Mon Sep 17 00:00:00 2001 From: barbacbd Date: Tue, 14 Jul 2026 14:31:56 -0400 Subject: [PATCH] CORS-4417: Add UniverseDomain field to GCPPlatformStatus --- config/v1/types_infrastructure.go | 15 +++++++++++++++ config/v1/zz_generated.swagger_doc_generated.go | 1 + openapi/generated_openapi/zz_generated.openapi.go | 7 +++++++ openapi/openapi.json | 4 ++++ 4 files changed, 27 insertions(+) diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 5d9f10374eb..b2c28f67b9c 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -822,6 +822,21 @@ type GCPPlatformStatus struct { // +optional // +openshift:enable:FeatureGate=GCPCustomAPIEndpointsInstall // ServiceEndpoints []GCPServiceEndpoint `json:"serviceEndpoints,omitempty"` + + // universeDomain is the GCP universe domain for the cluster, detected from + // the installer credentials. Components with their own GCP credentials should + // read the universe domain from those credentials, as they are the authoritative + // source. This field is provided for components that do not have GCP credentials + // and for general observability. + // + // When omitted, standard public GCP (googleapis.com) is assumed. + // + // universeDomain must be between 1 and 253 characters in length. + // + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength=253 + // +optional + UniverseDomain string `json:"universeDomain,omitempty"` } // GCPResourceLabel is a label to apply to GCP resources created for the cluster. diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index 631f11a1b29..92cab1d655e 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1787,6 +1787,7 @@ var map_GCPPlatformStatus = map[string]string{ "resourceLabels": "resourceLabels is a list of additional labels to apply to GCP resources created for the cluster. See https://cloud.google.com/compute/docs/labeling-resources for information on labeling GCP resources. GCP supports a maximum of 64 labels per resource. OpenShift reserves 32 labels for internal use, allowing 32 labels for user configuration.", "resourceTags": "resourceTags is a list of additional tags to apply to GCP resources created for the cluster. See https://cloud.google.com/resource-manager/docs/tags/tags-overview for information on tagging GCP resources. GCP supports a maximum of 50 tags per resource.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "universeDomain": "universeDomain is the GCP universe domain for the cluster, detected from the installer credentials. Components with their own GCP credentials should read the universe domain from those credentials, as they are the authoritative source. This field is provided for components that do not have GCP credentials and for general observability.\n\nWhen omitted, standard public GCP (googleapis.com) is assumed.\n\nuniverseDomain must be between 1 and 253 characters in length.", } func (GCPPlatformStatus) SwaggerDoc() map[string]string { diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index 636966aeec1..055a7b9249c 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -14079,6 +14079,13 @@ func schema_openshift_api_config_v1_GCPPlatformStatus(ref common.ReferenceCallba Ref: ref(configv1.CloudLoadBalancerConfig{}.OpenAPIModelName()), }, }, + "universeDomain": { + SchemaProps: spec.SchemaProps{ + Description: "universeDomain is the GCP universe domain for the cluster, detected from the installer credentials. Components with their own GCP credentials should read the universe domain from those credentials, as they are the authoritative source. This field is provided for components that do not have GCP credentials and for general observability.\n\nWhen omitted, standard public GCP (googleapis.com) is assumed.\n\nuniverseDomain must be between 1 and 253 characters in length.", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"projectID", "region"}, }, diff --git a/openapi/openapi.json b/openapi/openapi.json index 468c116a34e..2f4b8d20218 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -7208,6 +7208,10 @@ "key" ], "x-kubernetes-list-type": "map" + }, + "universeDomain": { + "description": "universeDomain is the GCP universe domain for the cluster, detected from the installer credentials. Components with their own GCP credentials should read the universe domain from those credentials, as they are the authoritative source. This field is provided for components that do not have GCP credentials and for general observability.\n\nWhen omitted, standard public GCP (googleapis.com) is assumed.\n\nuniverseDomain must be between 1 and 253 characters in length.", + "type": "string" } } },