Skip to content

config/v1: add IBMCloudServiceTransitGateway and IBMCloudServicePowerVS to IBMCloudServiceName - #2959

Open
taliandre49 wants to merge 2 commits into
openshift:masterfrom
taliandre49:Staging_support
Open

config/v1: add IBMCloudServiceTransitGateway and IBMCloudServicePowerVS to IBMCloudServiceName#2959
taliandre49 wants to merge 2 commits into
openshift:masterfrom
taliandre49:Staging_support

Conversation

@taliandre49

Copy link
Copy Markdown

Add TransitGateway and PowerVS to the IBMCloudServiceName enum so that users can override the IBM Cloud Transit Gateway and Power Virtual Server service endpoints via serviceEndpoints in the install-config (needed for Staging OpenShift install).

Both services are already supported by the IBM Cloud CAPI provider (sigs.k8s.io/cluster-api-provider-ibmcloud) which accepts transitgateway and powervs as valid service IDs in its --service-endpoint flag. The installer translates IBMCloudServiceName values to CAPI's internal service IDs in GetRegionAndEndpointsFlag(). Until these constants exist in openshift/api, the installer is forced to match against raw string literals with a workaround comment — this PR removes that need.

Changes:
Add ;TransitGateway;PowerVS to the +kubebuilder:validation:Enum marker on IBMCloudServiceName
Add IBMCloudServiceTransitGateway and IBMCloudServicePowerVS constants

@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

openshift-ci Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Hello @taliandre49! 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.

@coderabbitai

coderabbitai Bot commented Jul 27, 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

Adds TransitGateway and PowerVS as IBM Cloud service names, expands PowerVS endpoint validation, increases IBM Cloud endpoint limits, and updates generated infrastructure and controller configuration CRD schemas and validation test expectations.

Suggested reviewers: joelspeed, everettraven

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding new IBM Cloud service name constants for TransitGateway and PowerVS.
Description check ✅ Passed The description matches the changeset, describing the new enum values, constants, and installer use case.
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 No Ginkgo test titles were added or changed; the edited YAML test-case names are static and the diff only updates expected error values.
Test Structure And Quality ✅ Passed Only schema and YAML validation fixtures changed; no Ginkgo test code, setup/cleanup, or Eventually patterns were touched.
Microshift Test Compatibility ✅ Passed PR only changes API types, generated CRDs/OpenAPI, and YAML fixtures; no new Ginkgo e2e tests or MicroShift-unsafe APIs were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the PR only changes schema/constants and YAML fixtures, so no SNO-specific multi-node assumptions to review.
Topology-Aware Scheduling Compatibility ✅ Passed PR only expands IBM Cloud enum/CRD validation and tests; no deployments, controllers, replica logic, or scheduling constraints were added.
Ote Binary Stdout Contract ✅ Passed The commit only changes API/schema and generated CRD/test fixtures; the touched Go files contain no stdout writes or process-level setup code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the diff only updates schema enums and YAML validation fixtures, with no IPv4 or external-network assumptions.
No-Weak-Crypto ✅ Passed Changes only add IBMCloud/PowerVS service-endpoint enums and CRD schema updates; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The PR only changes enums, CRDs, and test fixtures; no privileged, hostPID/network/IPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings were added.
No-Sensitive-Data-In-Logs ✅ Passed No new or changed logging code; diff only updates enum/schema docs and validation test expectations, with no sensitive values emitted in logs.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci openshift-ci Bot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jul 27, 2026
@openshift-ci
openshift-ci Bot requested review from JoelSpeed and everettraven July 27, 2026 21:24
@qodo-for-rh-openshift

Copy link
Copy Markdown

PR Summary by Qodo

config/v1: add TransitGateway and PowerVS to IBMCloudServiceName

✨ Enhancement ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

AI Description

• Extend IBMCloudServiceName enum to include TransitGateway and PowerVS.
• Allow install-config serviceEndpoints overrides for IBM Cloud Transit Gateway and PowerVS.
• Remove the need for downstream raw string matching when mapping to CAPI service IDs.
Diagram

graph TD
A["install-config.yaml"] --> B["config/v1 types"] --> C["Installer mapping"] --> D["CAPI IBMCloud provider"] --> E{{"IBM Cloud services"}}
subgraph Legend
direction LR
_f["Config/Schema"] ~~~ _c["Component"] ~~~ _e{{"External"}}
end
Loading
High-Level Assessment

Adding first-class enum constants and expanding the kubebuilder Enum validation is the correct approach: it keeps the API/schema authoritative, avoids downstream string literals, and aligns installer-to-CAPI mappings with supported provider service IDs.

Files changed (1) +5 / -1

Enhancement (1) +5 / -1
types.goAdd TransitGateway and PowerVS to IBMCloudServiceName enum +5/-1

Add TransitGateway and PowerVS to IBMCloudServiceName enum

• Extends the kubebuilder validation Enum for IBMCloudServiceName to allow TransitGateway and PowerVS. Adds corresponding typed constants (IBMCloudServiceTransitGateway, IBMCloudServicePowerVS) for consistent use by consumers like the installer.

config/v1/types.go

@qodo-for-rh-openshift

qodo-for-rh-openshift Bot commented Jul 27, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 29 rules
✅ Skills: api-review

Grey Divider


Action required

1. CRDs not regenerated ✓ Resolved 🐞 Bug ☼ Reliability
Description
IBMCloudServiceName was expanded, but the checked-in CRD manifests/payload CRDs still contain the
old enum values for ibmcloud.serviceEndpoints[].name, so verification/codegen will produce diffs and
the shipped schemas won’t accept the new values.
Code

config/v1/types.go[406]

+// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;ResourceController;ResourceManager;VPC;TransitGateway;PowerVS
Relevance

⭐⭐⭐ High

Repo typically regenerates/commits CRD+payload outputs after API changes; similar requests in PR
#2576, #2680.

PR-#2576
PR-#2680

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The PR updates the enum marker to include the two new values, but both the generated CRD manifest
and the payload CRD still list only the old enum set, and the repo’s verify target runs codegen in
--verify mode and checks for a clean git diff.

config/v1/types.go[404-440]
config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml[1830-1891]
payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml[1861-1890]
Makefile[58-63]
Makefile[97-101]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The kubebuilder Enum marker for `IBMCloudServiceName` now includes `TransitGateway` and `PowerVS`, but generated CRD artifacts in-repo still enumerate only the previous values (ending at `VPC`). This leaves the repo in a state where `make verify`/codegen verification will re-generate changes and fail, and consumers of the committed CRDs will still reject the new values.

### Issue Context
This repo’s `verify-codegen` target runs codegen in `--verify` mode and fails on uncommitted diffs, so generated artifacts must be updated whenever API markers change.

### Fix Focus Areas
- config/v1/types.go[404-406]
- config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml[1855-1890]
- payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml[1864-1890]
- Makefile[58-63]
- Makefile[97-101]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. MaxItems too low ✓ Resolved 🐞 Bug ≡ Correctness
Description
IBMCloudPlatformSpec/Status still limit serviceEndpoints to 13 entries, so it becomes impossible to
override endpoints for all supported IBMCloudServiceName values now that the enum has 15 services
(including TransitGateway and PowerVS).
Code

config/v1/types.go[406]

+// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;ResourceController;ResourceManager;VPC;TransitGateway;PowerVS
Relevance

⭐⭐⭐ High

Team frequently adjusts kubebuilder MaxItems when enums/scale change (e.g., raised limits in PR
#2204, #2784).

PR-#2204
PR-#2784

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The enum marker adds two new services, while the IBMCloud serviceEndpoints slices remain capped at
13 in both spec and status, creating a mismatch between the number of supported services and the
maximum number of overrides allowed.

config/v1/types.go[404-440]
config/v1/types_infrastructure.go[1830-1844]
config/v1/types_infrastructure.go[1865-1876]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`IBMCloudServiceName` now has 15 valid services, but the `serviceEndpoints` list is still capped at 13 entries. This prevents users from specifying overrides for every supported service, which is a regression relative to the prior 1:1 relationship (13 services, max 13 overrides).

### Issue Context
The cap exists in both spec (`+kubebuilder:validation:MaxItems=13`) and status (`FeatureGateAwareMaxItems ... maxItems=13`). If the intent is “one override per supported service”, these should be bumped to at least 15.

### Fix Focus Areas
- config/v1/types.go[404-440]
- config/v1/types_infrastructure.go[1830-1844]
- config/v1/types_infrastructure.go[1865-1876]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Docs omit new services ✓ Resolved 🐞 Bug ⚙ Maintainability
Description
The user-facing API docs for IBMCloudServiceEndpoint.name still list supported values only up to
VPC, so generated descriptions (Swagger/OpenAPI/CRDs) will continue to omit TransitGateway and
PowerVS even after regeneration.
Code

config/v1/types.go[R436-439]

+	// IBMCloudServiceTransitGateway is the name for IBM Cloud Transit Gateway.
+	IBMCloudServiceTransitGateway IBMCloudServiceName = "TransitGateway"
+	// IBMCloudServicePowerVS is the name for IBM Cloud Power Virtual Server.
+	IBMCloudServicePowerVS IBMCloudServiceName = "PowerVS"
Relevance

⭐⭐⭐ High

They regularly update user-facing GoDoc so generated OpenAPI/CRDs match (comment/doc fixes merged in
PR #2660, #2680).

PR-#2660
PR-#2680

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The PR adds the new enum values, but the IBMCloudServiceEndpoint.Name comment that enumerates
allowed values was not updated and still ends at VPC.

config/v1/types.go[404-440]
config/v1/types_infrastructure.go[1801-1812]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The comment on `IBMCloudServiceEndpoint.Name` hard-codes the list of possible values and is now stale after adding `TransitGateway` and `PowerVS` to `IBMCloudServiceName`. This produces misleading, user-facing API documentation.

### Issue Context
This comment text is surfaced in generated CRDs and OpenAPI/Swagger docs, so it should be kept consistent with the enum.

### Fix Focus Areas
- config/v1/types.go[436-439]
- config/v1/types_infrastructure.go[1801-1812]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

Comment thread config/v1/types.go
Comment thread config/v1/types.go
Comment thread config/v1/types.go
@openshift-ci openshift-ci Bot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Jul 28, 2026
… support Staging Overrides in Openshift installer

Signed-off-by: Natalia Jordan <natalia.jordan@ibm.com>
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 28, 2026
@taliandre49

Copy link
Copy Markdown
Author

status: updating CRDs and limit on service Endpoints

@openshift-ci openshift-ci Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jul 28, 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.

Actionable comments posted: 1

Caution

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

⚠️ Outside diff range comments (5)
payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml (1)

587-622: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Missing PowerVS enum sync for this feature-set variant.

Unlike its sibling CRD variants (Default, Hypershift-CustomNoUpgrade, Hypershift-DevPreviewNoUpgrade, SelfManagedHA-CustomNoUpgrade), this file's spec.platformSpec.powervs.serviceEndpoints[].name (around line 621) and status.platformStatus.powervs.serviceEndpoints[].name (around line 2621) enums still stop at VPC and were not updated to add TransitGateway/PowerVS, even though the ibmcloud sections in this same file were correctly synced. Since PowerVSServiceEndpoint.Name's enum in types_infrastructure.go is not feature-gated, all generated CRD variants should include the new values — this looks like a missed regeneration step for this specific feature-set.

Recommend re-running the CRD generation (make update / equivalent) for this manifest so the powervs enum matches its siblings.

Also applies to: 2560-2622

🤖 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_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml`
around lines 587 - 622, Regenerate this CRD manifest so both
spec.platformSpec.powervs.serviceEndpoints[].name and
status.platformStatus.powervs.serviceEndpoints[].name include the TransitGateway
and PowerVS enum values, matching the other feature-set variants and the
PowerVSServiceEndpoint.Name definition. Use the repository’s standard CRD
generation command, such as make update, rather than editing only one occurrence
manually.
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml (2)

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

Stale doc: "maximum of 13" description text vs maxItems: 15.

The endpoint description text still says "A maximum of 13 service endpoints overrides are supported." while maxItems was raised to 15. See consolidated comment for cross-file details.

Also applies to: 599-599

🤖 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-Hypershift-CustomNoUpgrade.crd.yaml`
at line 548, Update the endpoint override description text in both referenced
CRD entries to state that a maximum of 15 service endpoint overrides are
supported, matching the existing maxItems: 15 constraint.

548-599: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Stale "maximum of 13" doc text after maxItems was raised to 15. All four generated CRD variants still describe the IBM Cloud serviceEndpoints limit as 13 in the field's prose description while the enforced maxItems was bumped to 15. Root cause is the Go doc-comment in config/v1/types_infrastructure.go (not included in this batch) that generates this text; it needs to be updated and the CRDs regenerated so all variants match.

  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml#L548-L599: update "A maximum of 13 service endpoints overrides are supported." to say 15 (and confirm the mirrored status-section description, if any, matches).
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml#L533-L584: same text update needed.
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml#L548-L599: same text update needed.
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml#L557-L599: verify and update the same text if present.
🤖 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-Hypershift-CustomNoUpgrade.crd.yaml`
around lines 548 - 599, Update the serviceEndpoints documentation source in
config/v1/types_infrastructure.go from 13 to 15, then regenerate all CRD
variants so their prose descriptions match maxItems: 15, including any mirrored
status descriptions. Apply the generated update in
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml:548-599,
Hypershift-DevPreviewNoUpgrade.crd.yaml:533-584,
SelfManagedHA-CustomNoUpgrade.crd.yaml:548-599, and
SelfManagedHA-DevPreviewNoUpgrade.crd.yaml:557-599.
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml (1)

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

Stale doc: "maximum of 13" description text vs maxItems: 15.

Same mismatch as in the sibling CRD manifests — see consolidated comment.

Also applies to: 584-584

🤖 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-Hypershift-DevPreviewNoUpgrade.crd.yaml`
at line 533, Update the service endpoint overrides description in the affected
CRD manifest entries to state the supported maximum of 15, matching the existing
maxItems: 15 constraint. Apply the same correction to both referenced
occurrences and leave the schema constraint unchanged.
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml (1)

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

Stale doc: "maximum of 13" description text vs maxItems: 15.

Same mismatch as in the sibling CRD manifests — see consolidated comment.

Also applies to: 599-599

🤖 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-SelfManagedHA-CustomNoUpgrade.crd.yaml`
at line 548, Update the service endpoints overrides description in this CRD and
the referenced sibling occurrence to state the supported maximum of 15, matching
the existing maxItems: 15 constraint.
🧹 Nitpick comments (1)
config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml (1)

92-92: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Cover acceptance, not only rejection messages.

The new enum names are added only to negative expected-error strings. Add valid fixtures to prove they are accepted:

  • config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml#L92-L92: add valid IBMCloud spec cases for TransitGateway and PowerVS.
  • config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml#L1372-L1372: add valid IBMCloud status coverage.
  • config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml#L1480-L1480: add valid PowerVS spec coverage.
  • config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml#L1639-L1639: add valid PowerVS status coverage.
🤖 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
`@config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml`
at line 92, The enum additions are covered only by rejection tests; add valid
fixtures proving acceptance. In
config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
at lines 92-92, add valid IBMCloud spec cases for TransitGateway and PowerVS; in
config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml at lines
1372-1372, 1480-1480, and 1639-1639, add valid IBMCloud status, PowerVS spec,
and PowerVS status coverage respectively.
🤖 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.

Inline comments:
In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml`:
- Line 557: Update the description text for both IBM serviceEndpoints schema
definitions, including the definition containing the listed service values, to
state that a maximum of 15 service endpoint overrides are supported instead of
13. Leave the schema limit and all other wording unchanged.

---

Outside diff comments:
In
`@payload-manifests/crds/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml`:
- Around line 587-622: Regenerate this CRD manifest so both
spec.platformSpec.powervs.serviceEndpoints[].name and
status.platformStatus.powervs.serviceEndpoints[].name include the TransitGateway
and PowerVS enum values, matching the other feature-set variants and the
PowerVSServiceEndpoint.Name definition. Use the repository’s standard CRD
generation command, such as make update, rather than editing only one occurrence
manually.

In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml`:
- Line 548: Update the endpoint override description text in both referenced CRD
entries to state that a maximum of 15 service endpoint overrides are supported,
matching the existing maxItems: 15 constraint.
- Around line 548-599: Update the serviceEndpoints documentation source in
config/v1/types_infrastructure.go from 13 to 15, then regenerate all CRD
variants so their prose descriptions match maxItems: 15, including any mirrored
status descriptions. Apply the generated update in
payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml:548-599,
Hypershift-DevPreviewNoUpgrade.crd.yaml:533-584,
SelfManagedHA-CustomNoUpgrade.crd.yaml:548-599, and
SelfManagedHA-DevPreviewNoUpgrade.crd.yaml:557-599.

In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml`:
- Line 533: Update the service endpoint overrides description in the affected
CRD manifest entries to state the supported maximum of 15, matching the existing
maxItems: 15 constraint. Apply the same correction to both referenced
occurrences and leave the schema constraint unchanged.

In
`@payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml`:
- Line 548: Update the service endpoints overrides description in this CRD and
the referenced sibling occurrence to state the supported maximum of 15, matching
the existing maxItems: 15 constraint.

---

Nitpick comments:
In
`@config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml`:
- Line 92: The enum additions are covered only by rejection tests; add valid
fixtures proving acceptance. In
config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
at lines 92-92, add valid IBMCloud spec cases for TransitGateway and PowerVS; in
config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml at lines
1372-1372, 1480-1480, and 1639-1639, add valid IBMCloud status, PowerVS spec,
and PowerVS status coverage respectively.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 734b33ec-245e-4555-a95b-68dea829b466

📥 Commits

Reviewing files that changed from the base of the PR and between d2bcb11 and 00ad02d.

⛔ Files ignored due to path filters (41)
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • 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-OKD.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/infrastructures.config.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • 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-OKD.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/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
📒 Files selected for processing (17)
  • config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml
  • config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml
  • config/v1/types_infrastructure.go
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml
  • 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-OKD.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-Default.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-OKD.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 (5)
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml
  • payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml

@taliandre49

Copy link
Copy Markdown
Author

/retest verify-hypershift-integration

@taliandre49

Copy link
Copy Markdown
Author

/test verify-hypershift-integration

@qodo-for-rh-openshift

qodo-for-rh-openshift Bot commented Jul 28, 2026

Copy link
Copy Markdown

PR-Agent: could not find a component named verify-hypershift-integration in a supported language in this PR.

@taliandre49

Copy link
Copy Markdown
Author

verify-hypershift-integration appears to be failing due to an upstream HyperShift dependency resolution issue (k8s.io/api/scheduling/v1alpha1 missing from k8s.io/api@v0.36.3), not from changes in this PR. The failure occurs during HyperShift dependency build/verification before this PR's code is exercised. Triggering /retest.

Comment thread config/v1/types_infrastructure.go Outdated
Signed-off-by: Natalia Jordan <natalia.jordan@ibm.com>

@everettraven everettraven left a comment

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.

/lgtm

@everettraven

Copy link
Copy Markdown
Contributor

hypershift failure is a known issue.

/override ci/prow/verify-hypershift-integration

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 29, 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 29, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: everettraven

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 29, 2026
@openshift-ci

openshift-ci Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

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

Details

In response to this:

hypershift failure is a known issue.

/override 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 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

@taliandre49: 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-gcp 63d78e1 link true /test e2e-gcp
ci/prow/e2e-aws-ovn-hypershift-conformance 63d78e1 link true /test e2e-aws-ovn-hypershift-conformance

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. lgtm Indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants