Skip to content

CORS-4417: Add UniverseDomain field to GCPPlatformStatus#2933

Open
barbacbd wants to merge 1 commit into
openshift:masterfrom
barbacbd:CORS-4417
Open

CORS-4417: Add UniverseDomain field to GCPPlatformStatus#2933
barbacbd wants to merge 1 commit into
openshift:masterfrom
barbacbd:CORS-4417

Conversation

@barbacbd

Copy link
Copy Markdown
Contributor

No description provided.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 14, 2026

Copy link
Copy Markdown

@barbacbd: This pull request references CORS-4417 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Hello @barbacbd! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@barbacbd

Copy link
Copy Markdown
Contributor Author

Documented in Enhancement openshift/enhancements#1977

@openshift-ci openshift-ci Bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jul 14, 2026
@openshift-ci
openshift-ci Bot requested review from JoelSpeed and everettraven July 14, 2026 15:39
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Added an optional, feature-gated universeDomain field to GCPPlatformStatus, propagated its DNS validation to Infrastructure and ControllerConfig CRDs, and added tests for public, sovereign-cloud, and invalid domain values.

Suggested reviewers: everettraven, joelspeed, patrickdillon

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive No description was provided, so there is no meaningful summary to assess against the changeset. Add a short description of the change and its intended impact on GCPPlatformStatus and related CRDs.
✅ Passed checks (14 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding UniverseDomain to GCPPlatformStatus.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed Only changed test titles are static YAML scenario names; no Ginkgo It/Describe/Context/When titles contain dynamic data.
Test Structure And Quality ✅ Passed No Ginkgo test code was added; the only Go test change is a path constant, and the new YAML API tests follow existing manifest patterns.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the changes are a table-driven Go unit test and a declarative YAML CRD test manifest, not MicroShift-targeted specs.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the new YAML is a declarative CRD schema test and has no multi-node or HA node-scheduling assumptions.
Topology-Aware Scheduling Compatibility ✅ Passed Changes only add GCP universeDomain API/CRD/test schema and feature-gated docs; no deployments, controllers, affinities, nodeSelectors, PDBs, or replica logic were introduced.
Ote Binary Stdout Contract ✅ Passed No process-level stdout/logging was added: the changed Go files have no main/init/TestMain/BeforeSuite hooks or Print/log/klog calls.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the change is a config validation manifest and CRD/schema updates, with no IPv4-only or public-internet assumptions in changed tests.
No-Weak-Crypto ✅ Passed The PR only adds a validated GCP universeDomain string and tests; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB or secret-comparison code appears in changed files.
Container-Privileges ✅ Passed Scanned all touched Go/YAML files; no privileged:true, hostPID/hostNetwork/hostIPC, SYS_ADMIN, allowPrivilegeEscalation:true, or runAsUser:0 entries were added. Changes are schema/test-only.
No-Sensitive-Data-In-Logs ✅ Passed No new logging code appears in the touched files, and searches found no added passwords/tokens/PII/session IDs/internal hostnames or similar sensitive data.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@barbacbd
barbacbd force-pushed the CORS-4417 branch 2 times, most recently from a55f248 to 8d5237b Compare July 14, 2026 18:35
Comment thread config/v1/types_infrastructure.go Outdated

// universeDomain is the GCP universe domain detected from credentials.
// Populated by the installer for informational/observability purposes.
// Components should NOT read this field - they should detect universe domain

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.

Perhaps we should reword this slightly. The intent is that components with GCP credentials should read universe domain from them—the creds are the source of truth and reading from them is more ergononic.

We provide this field for components that may not have creds (MCO looks like it will need the field) as well as general informational purposes.

@theobarberbany

Copy link
Copy Markdown
Contributor

/test api-review

@theobarberbany

Copy link
Copy Markdown
Contributor

/test evals-api-review

@openshift-api-review-bot openshift-api-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

API review complete — no issues found.

The new UniverseDomain field on GCPPlatformStatus is well-documented:

  • Field purpose and source are clearly described.
  • Optional behavior is documented: "When omitted, standard public GCP (googleapis.com) is assumed."
  • Both MinLength=1 and MaxLength=253 constraints are documented in the comment ("must be between 1 and 253 characters in length"). The combination of +optional/omitempty with MinLength=1 is correct — the field may be absent, but if set must be non-empty.
  • No undocumented cross-field relationships or CEL expressions.
  • zz_generated.swagger_doc_generated.go is properly updated to match the field comment.

@openshift-api-review-bot

Copy link
Copy Markdown

API Review

Issues were found and posted as inline comments on this PR.


Run locally: claude -p "/api-review" from a clone of this PR.
Iterate locally before pushing — it's faster and doesn't use CI budget.

Job artifacts | Report a problem

@tthvo

tthvo commented Jul 20, 2026

Copy link
Copy Markdown
Member

/test verify-hypershift-integration

Comment thread config/v1/types_infrastructure.go Outdated
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +optional
UniverseDomain string `json:"universeDomain,omitempty"`

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.

Could we add any validation here to check that this is a valid domain? Is this just the domain and not a URL?

I wonder if this has to be compliant with the RFC DNS1123 subdomain validation?

Example

@openshift-ci openshift-ci Bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jul 22, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml (1)

2238-2246: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add universeDomain to this GCP status schema.

spec.infra.status.platformStatus.gcp lacks the new field entirely, so this TechPreview ControllerConfig CRD rejects or prunes the status value despite the API contract. Add the same description, maxLength, and DNS-subdomain validation used by the Infrastructure CRDs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml`
around lines 2238 - 2246, Add the universeDomain property to the GCP status
schema near projectID in the ControllerConfig CRD, using the same description,
maxLength, and DNS-subdomain validation as the Infrastructure CRDs. Ensure it is
defined under spec.infra.status.platformStatus.gcp so status values are
preserved and accepted.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml`:
- Around line 2238-2246: Add the universeDomain property to the GCP status
schema near projectID in the ControllerConfig CRD, using the same description,
maxLength, and DNS-subdomain validation as the Infrastructure CRDs. Ensure it is
defined under spec.infra.status.platformStatus.gcp so status values are
preserved and accepted.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 2659d554-bc8e-45ea-99c9-0186f11fa7a3

📥 Commits

Reviewing files that changed from the base of the PR and between 8d5237b and 9f0ba02.

⛔ Files ignored due to path filters (18)
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openapi/openapi.json is excluded by !openapi/**
📒 Files selected for processing (13)
  • config/v1/tests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml
  • config/v1/types_infrastructure.go
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-Hypershift-TechPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • config/v1/types_infrastructure.go

@JoelSpeed

Copy link
Copy Markdown
Contributor

Apart from the verify issue, LGTM

@JoelSpeed

Copy link
Copy Markdown
Contributor

/lgtm
/override-sticky ci/prow/verify-hypershift-integration

@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/verify-hypershift-integration

These overrides will persist across retests on the current HEAD SHA. Pushing a new commit will clear them. Use /override-cancel to remove them.

Details

In response to this:

/lgtm
/override-sticky ci/prow/verify-hypershift-integration

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 23, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-ovn
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-techpreview
/test e2e-aws-serial-1of2
/test e2e-aws-serial-2of2
/test e2e-aws-serial-techpreview-1of2
/test e2e-aws-serial-techpreview-2of2
/test e2e-azure
/test e2e-gcp
/test e2e-upgrade
/test e2e-upgrade-out-of-change
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-techpreview
/test minor-e2e-upgrade-minor

@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: JoelSpeed

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 23, 2026
@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@barbacbd: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-serial-techpreview-1of2 72dacf7 link true /test e2e-aws-serial-techpreview-1of2
ci/prow/e2e-aws-ovn 72dacf7 link true /test e2e-aws-ovn
ci/prow/e2e-vsphere-ovn 72dacf7 link true /test e2e-vsphere-ovn
ci/prow/e2e-azure 72dacf7 link true /test e2e-azure
ci/prow/e2e-vsphere-ovn-techpreview 72dacf7 link true /test e2e-vsphere-ovn-techpreview
ci/prow/e2e-aws-serial-techpreview-2of2 72dacf7 link true /test e2e-aws-serial-techpreview-2of2
ci/prow/e2e-aws-ovn-techpreview 72dacf7 link true /test e2e-aws-ovn-techpreview
ci/prow/e2e-gcp 72dacf7 link true /test e2e-gcp

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants