Skip to content

4.22 backport: add IBMCloudServiceTransitGateway and IBMCloudServicePowerVS to IBMCloudServiceName - #2961

Closed
taliandre49 wants to merge 2 commits into
openshift:release-4.22from
taliandre49:staging-support-release-4.22
Closed

4.22 backport: add IBMCloudServiceTransitGateway and IBMCloudServicePowerVS to IBMCloudServiceName#2961
taliandre49 wants to merge 2 commits into
openshift:release-4.22from
taliandre49:staging-support-release-4.22

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

… support Staging Overrides in Openshift installer

Signed-off-by: Natalia Jordan <natalia.jordan@ibm.com>
Signed-off-by: Natalia Jordan <natalia.jordan@ibm.com>
@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

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 6f575c8d-d78b-4bd5-8816-d477cf3072a9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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 commented Jul 29, 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.

@openshift-ci openshift-ci Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Jul 29, 2026
@openshift-ci
openshift-ci Bot requested review from JoelSpeed and yuqi-zhang July 29, 2026 15:09
@openshift-ci

openshift-ci Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign joelspeed for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@qodo-for-rh-openshift

Copy link
Copy Markdown

PR Summary by Qodo

Backport 4.22: add TransitGateway and PowerVS to IBMCloudServiceName enum

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Adds TransitGateway and PowerVS to the IBMCloudServiceName enum's kubebuilder validation
 marker and Go constants.
• Enables overriding IBM Cloud Transit Gateway and Power Virtual Server endpoints via
 serviceEndpoints in install-config, matching CAPI-supported service IDs.
• Raises serviceEndpoints max items from 13 to 15 to accommodate the two new services.
• Regenerates CRD manifests, OpenAPI spec/docs, swagger docs, and test fixtures to reflect the new
 enum values.
Diagram

graph TD
    A["install-config"] --> B["IBMCloudServiceName enum"] --> C["GetRegionAndEndpointsFlag()"] --> D["CAPI service-endpoint flag"]
    B --> E[("Generated CRDs / OpenAPI")]
    D --> F["cluster-api-provider-ibmcloud"]

    subgraph Legend
      direction LR
      _mod([Module]) ~~~ _db[(Generated Artifact)] ~~~ _ext{{External Service}}
    end
Loading
High-Level Assessment

Adding new enum values and constants is the correct, minimal-risk approach for extending a validated string enum in the openshift/api CRD schema; the regenerated CRD/OpenAPI/swagger artifacts are a mechanical byproduct of controller-gen and require no alternative design.

Files changed (50) +529 / -186

Enhancement (2) +10 / -6
types.goAdd TransitGateway and PowerVS constants to IBMCloudServiceName +5/-1

Add TransitGateway and PowerVS constants to IBMCloudServiceName

• Extends the kubebuilder Enum marker on IBMCloudServiceName with TransitGateway and PowerVS, and adds the corresponding IBMCloudServiceTransitGateway and IBMCloudServicePowerVS Go constants.

config/v1/types.go

types_infrastructure.goUpdate doc comments and PowerVS enum, raise max service endpoints +5/-5

Update doc comments and PowerVS enum, raise max service endpoints

• Updates IBMCloudServiceEndpoint doc comment to list the new values, raises the serviceEndpoints MaxItems and FeatureGateAwareMaxItems from 13 to 15, and adds TransitGateway to the PowerVSServiceEndpoint name enum.

config/v1/types_infrastructure.go

Tests (2) +214 / -75
AAA_ungated.yamlUpdate test fixtures for new enum values and featureGates list +213/-74

Update test fixtures for new enum values and featureGates list

• Updates expected unsupported-value error messages to include TransitGateway/PowerVS, normalizes quoting style of expectedError/expectedStatusError strings, and updates the featureGates list.

config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml

DyanmicServiceEndpointIBMCloud.yamlUpdate expected validation error to include new IBM Cloud services +1/-1

Update expected validation error to include new IBM Cloud services

• Updates the expected unsupported-value error message for an invalid IBMCloud service endpoint name to include TransitGateway and PowerVS.

config/v1/tests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml

Documentation (3) +6 / -6
zz_generated.swagger_doc_generated.goUpdate generated swagger docs for IBMCloud service endpoint fields +2/-2

Update generated swagger docs for IBMCloud service endpoint fields

• Regenerates swagger doc strings for IBMCloudPlatformSpec.serviceEndpoints and IBMCloudServiceEndpoint.name to reflect the new max items and enum values.

config/v1/zz_generated.swagger_doc_generated.go

zz_generated.openapi.goUpdate generated OpenAPI descriptions for IBMCloud service names +2/-2

Update generated OpenAPI descriptions for IBMCloud service names

• Regenerates OpenAPI description strings to include TransitGateway and PowerVS as valid IBM Cloud service names.

openapi/generated_openapi/zz_generated.openapi.go

openapi.jsonUpdate OpenAPI JSON spec for IBMCloud service names and max items +2/-2

Update OpenAPI JSON spec for IBMCloud service names and max items

• Regenerates the OpenAPI JSON spec description text for serviceEndpoints max items and valid service name values.

openapi/openapi.json

Other (43) +299 / -99
0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yamlRegenerate CRD manifest with new IBMCloudServiceName enum values +11/-5

Regenerate CRD manifest with new IBMCloudServiceName enum values

• Auto-generated CRD manifest updated to include TransitGateway and PowerVS in enum lists and updated description text.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml

0000_10_config-operator_01_infrastructures-Default.crd.yamlRegenerate CRD manifest with new IBMCloudServiceName enum values +5/-1

Regenerate CRD manifest with new IBMCloudServiceName enum values

• Auto-generated CRD manifest updated to include TransitGateway and PowerVS in enum lists and updated description text.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml

0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yamlRegenerate CRD manifest with new IBMCloudServiceName enum values +11/-5

Regenerate CRD manifest with new IBMCloudServiceName enum values

• Auto-generated CRD manifest updated to include TransitGateway and PowerVS in enum lists and updated description text.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml

0000_10_config-operator_01_infrastructures-OKD.crd.yamlRegenerate CRD manifest with new IBMCloudServiceName enum values +5/-1

Regenerate CRD manifest with new IBMCloudServiceName enum values

• Auto-generated CRD manifest updated to include TransitGateway and PowerVS in enum lists and updated description text.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml

0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yamlRegenerate CRD manifest with new IBMCloudServiceName enum values +11/-5

Regenerate CRD manifest with new IBMCloudServiceName enum values

• Auto-generated CRD manifest updated to include TransitGateway and PowerVS in enum lists and updated description text.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml

AAA_ungated.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml

AWSClusterHostedDNSInstall.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml

AWSDualStackInstall.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml

AzureClusterHostedDNSInstall.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureClusterHostedDNSInstall.yaml

AzureDualStackInstall.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml

DualReplica.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml

DyanmicServiceEndpointIBMCloud.yamlRegenerate feature-gated CRD manifest with maxItems bump +11/-5

Regenerate feature-gated CRD manifest with maxItems bump

• Auto-generated feature-gated CRD manifest updated with new enum values and MaxItems raised from 13 to 15 for serviceEndpoints.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml

NutanixMultiSubnets.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml

OnPremDNSRecords.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml

VSphereHostVMGroupZonal.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml

VSphereMultiNetworks.yamlRegenerate feature-gated CRD manifest +5/-1

Regenerate feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values.

config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiNetworks.yaml

0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yamlRegenerate ControllerConfig CRD manifest with new enum values +11/-5

Regenerate ControllerConfig CRD manifest with new enum values

• Auto-generated CRD manifest for ControllerConfig updated to include TransitGateway and PowerVS in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml

0000_80_machine-config_01_controllerconfigs-Default.crd.yamlRegenerate ControllerConfig CRD manifest with new enum values +5/-1

Regenerate ControllerConfig CRD manifest with new enum values

• Auto-generated CRD manifest for ControllerConfig updated to include TransitGateway and PowerVS in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml

0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yamlRegenerate ControllerConfig CRD manifest with new enum values +11/-5

Regenerate ControllerConfig CRD manifest with new enum values

• Auto-generated CRD manifest for ControllerConfig updated to include TransitGateway and PowerVS in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml

0000_80_machine-config_01_controllerconfigs-OKD.crd.yamlRegenerate ControllerConfig CRD manifest with new enum values +5/-1

Regenerate ControllerConfig CRD manifest with new enum values

• Auto-generated CRD manifest for ControllerConfig updated to include TransitGateway and PowerVS in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml

0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yamlRegenerate ControllerConfig CRD manifest with new enum values +11/-5

Regenerate ControllerConfig CRD manifest with new enum values

• Auto-generated CRD manifest for ControllerConfig updated to include TransitGateway and PowerVS in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml

AAA_ungated.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml

AWSClusterHostedDNSInstall.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml

AWSDualStackInstall.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml

AWSEuropeanSovereignCloudInstall.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml

AzureClusterHostedDNSInstall.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureClusterHostedDNSInstall.yaml

AzureDualStackInstall.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml

DualReplica.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml

DyanmicServiceEndpointIBMCloud.yamlRegenerate ControllerConfig feature-gated CRD manifest with maxItems bump +11/-5

Regenerate ControllerConfig feature-gated CRD manifest with maxItems bump

• Auto-generated feature-gated CRD manifest updated with new enum values and MaxItems raised from 13 to 15.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml

NutanixMultiSubnets.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml

OnPremDNSRecords.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml

VSphereHostVMGroupZonal.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml

VSphereMultiNetworks.yamlRegenerate ControllerConfig feature-gated CRD manifest +5/-1

Regenerate ControllerConfig feature-gated CRD manifest

• Auto-generated feature-gated CRD manifest updated with new enum values in embedded Infrastructure schema.

machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiNetworks.yaml

0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yamlRegenerate payload CRD manifest with new enum values +11/-5

Regenerate payload CRD manifest with new enum values

• Auto-generated payload CRD manifest updated to include TransitGateway and PowerVS in enum lists.

payload-manifests/crds/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml

0000_10_config-operator_01_infrastructures-Default.crd.yamlRegenerate payload CRD manifest with new enum values +5/-1

Regenerate payload CRD manifest with new enum values

• Auto-generated payload CRD manifest updated to include TransitGateway and PowerVS in enum lists.

payload-manifests/crds/0000_10_config-operator_01_infrastructures-Default.crd.yaml

0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yamlRegenerate payload CRD manifest with new enum values +11/-5

Regenerate payload CRD manifest with new enum values

• Auto-generated payload CRD manifest updated to include TransitGateway and PowerVS in enum lists.

payload-manifests/crds/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml

0000_10_config-operator_01_infrastructures-OKD.crd.yamlRegenerate payload CRD manifest with new enum values +5/-1

Regenerate payload CRD manifest with new enum values

• Auto-generated payload CRD manifest updated to include TransitGateway and PowerVS in enum lists.

payload-manifests/crds/0000_10_config-operator_01_infrastructures-OKD.crd.yaml

0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yamlRegenerate payload CRD manifest with new enum values +11/-5

Regenerate payload CRD manifest with new enum values

• Auto-generated payload CRD manifest updated to include TransitGateway and PowerVS in enum lists.

payload-manifests/crds/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml

0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yamlRegenerate payload ControllerConfig CRD manifest with new enum values +11/-5

Regenerate payload ControllerConfig CRD manifest with new enum values

• Auto-generated payload CRD manifest for ControllerConfig updated with new enum values in embedded Infrastructure schema.

payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml

0000_80_machine-config_01_controllerconfigs-Default.crd.yamlRegenerate payload ControllerConfig CRD manifest with new enum values +5/-1

Regenerate payload ControllerConfig CRD manifest with new enum values

• Auto-generated payload CRD manifest for ControllerConfig updated with new enum values in embedded Infrastructure schema.

payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml

0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yamlRegenerate payload ControllerConfig CRD manifest with new enum values +11/-5

Regenerate payload ControllerConfig CRD manifest with new enum values

• Auto-generated payload CRD manifest for ControllerConfig updated with new enum values in embedded Infrastructure schema.

payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml

0000_80_machine-config_01_controllerconfigs-OKD.crd.yamlRegenerate payload ControllerConfig CRD manifest with new enum values +5/-1

Regenerate payload ControllerConfig CRD manifest with new enum values

• Auto-generated payload CRD manifest for ControllerConfig updated with new enum values in embedded Infrastructure schema.

payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml

0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yamlRegenerate payload ControllerConfig CRD manifest with new enum values +11/-5

Regenerate payload ControllerConfig CRD manifest with new enum values

• Auto-generated payload CRD manifest for ControllerConfig updated with new enum values in embedded Infrastructure schema.

payload-manifests/crds/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml

@qodo-for-rh-openshift

Copy link
Copy Markdown

Code Review by Qodo

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

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

Grey Divider


Action required

1. PowerVSServiceEndpoint.Name enum undocumented 📜 Skill insight ✧ Quality
Description
The updated +kubebuilder:validation:Enum=... on PowerVSServiceEndpoint.Name lacks field-level
documentation that lists and explains each allowed enum value. This makes the API harder to use
correctly and violates the requirement that enum values be documented with their meanings.
Code

config/v1/types_infrastructure.go[R1917-1919]

	// +required
-	// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;Power;ResourceController;ResourceManager;VPC
+	// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;Power;ResourceController;ResourceManager;VPC;TransitGateway
	Name string `json:"name"`
Relevance

●● Moderate

Team often improves enum GoDoc (PR #2460), but no clear precedent requiring documenting every enum
value meaning.

PR-#2460

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1508 requires that any field with a +kubebuilder:validation:Enum marker have a
documentation comment that lists every enum value and explains each. In PowerVSServiceEndpoint,
the Name field’s enum marker is present (and modified to include TransitGateway), but the nearby
comments only give a few example services and do not document all allowed enum values or their
meanings.

config/v1/types_infrastructure.go[1911-1919]
Skill: api-review

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

## Issue description
`PowerVSServiceEndpoint.Name` has a `+kubebuilder:validation:Enum=...` marker (updated in this PR) but the field’s doc comment does not list every allowed enum value and explain what each means.

## Issue Context
Compliance requires that enum-constrained API fields be documented at the field comment level (not only via the marker) with an explanation for each value.

## Fix Focus Areas
- config/v1/types_infrastructure.go[1911-1919]

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



Remediation recommended

2. Wrong feature gates filtered 🐞 Bug ☼ Reliability
Description
The Infrastructure ungated test suite now disables "AWSClusterHostedDNS" (and
"VSphereMultiVCenterDay2") instead of disabling the schema’s actual gate
"AWSClusterHostedDNSInstall", so CRD-variant selection can skip the wrong manifests and fail to
exclude the gated AWS schema variants. This can reduce or distort CI schema coverage and cause
redundant test runs against unexpected CRD variants.
Code

config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml[R5-6]

+  - -AWSClusterHostedDNS
+  - -VSphereMultiVCenterDay2
Relevance

●●● Strong

Same gate-name change flagged in PR #2775 discussion; team previously used
AWSClusterHostedDNSInstall per PR #2423.

PR-#2775
PR-#2423

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The ungated Infrastructure suite disables AWSClusterHostedDNS, but the Infrastructure API type
uses AWSClusterHostedDNSInstall as the feature gate for the relevant schema field; the test
harness filters CRD manifests based on these suite featureGate requirements (with - meaning
required-disabled), so the suite will be matched against the wrong CRD variants.

config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml[1-7]
config/v1/types_infrastructure.go[553-566]
tests/types.go[10-16]
tests/crd_filter.go[87-116]

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

### Issue description
`config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml` was changed to disable `AWSClusterHostedDNS` and `VSphereMultiVCenterDay2`, but the Infrastructure CRD’s AWS hosted-DNS schema is gated by `AWSClusterHostedDNSInstall`. The test harness uses `featureGates` (including `-<gate>` for required-disabled gates) to decide which generated CRD manifests each suite runs against; using the wrong gate means the ungated suite can be applied to the wrong CRD variants and/or skip variants it should still test.

### Issue Context
- The AWS hosted DNS-related field `CloudLoadBalancerConfig` is gated by `AWSClusterHostedDNSInstall` in the Infrastructure types.
- The test suite `featureGates` list drives CRD selection, and `-` prefixes mean “must be disabled”.

### Fix Focus Areas
- config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml[4-7]

ⓘ 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 on lines 1917 to 1919
// +required
// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;Power;ResourceController;ResourceManager;VPC
// +kubebuilder:validation:Enum=CIS;COS;COSConfig;DNSServices;GlobalCatalog;GlobalSearch;GlobalTagging;HyperProtect;IAM;KeyProtect;Power;ResourceController;ResourceManager;VPC;TransitGateway
Name string `json:"name"`

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. powervsserviceendpoint.name enum undocumented 📜 Skill insight ✧ Quality

The updated +kubebuilder:validation:Enum=... on PowerVSServiceEndpoint.Name lacks field-level
documentation that lists and explains each allowed enum value. This makes the API harder to use
correctly and violates the requirement that enum values be documented with their meanings.
Agent Prompt
## Issue description
`PowerVSServiceEndpoint.Name` has a `+kubebuilder:validation:Enum=...` marker (updated in this PR) but the field’s doc comment does not list every allowed enum value and explain what each means.

## Issue Context
Compliance requires that enum-constrained API fields be documented at the field comment level (not only via the marker) with an explanation for each value.

## Fix Focus Areas
- config/v1/types_infrastructure.go[1911-1919]

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

Comment on lines +5 to +6
- -AWSClusterHostedDNS
- -VSphereMultiVCenterDay2

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

2. Wrong feature gates filtered 🐞 Bug ☼ Reliability

The Infrastructure ungated test suite now disables "AWSClusterHostedDNS" (and
"VSphereMultiVCenterDay2") instead of disabling the schema’s actual gate
"AWSClusterHostedDNSInstall", so CRD-variant selection can skip the wrong manifests and fail to
exclude the gated AWS schema variants. This can reduce or distort CI schema coverage and cause
redundant test runs against unexpected CRD variants.
Agent Prompt
### Issue description
`config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml` was changed to disable `AWSClusterHostedDNS` and `VSphereMultiVCenterDay2`, but the Infrastructure CRD’s AWS hosted-DNS schema is gated by `AWSClusterHostedDNSInstall`. The test harness uses `featureGates` (including `-<gate>` for required-disabled gates) to decide which generated CRD manifests each suite runs against; using the wrong gate means the ungated suite can be applied to the wrong CRD variants and/or skip variants it should still test.

### Issue Context
- The AWS hosted DNS-related field `CloudLoadBalancerConfig` is gated by `AWSClusterHostedDNSInstall` in the Infrastructure types.
- The test suite `featureGates` list drives CRD selection, and `-` prefixes mean “must be disabled”.

### Fix Focus Areas
- config/v1/tests/infrastructures.config.openshift.io/AAA_ungated.yaml[4-7]

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

@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/verify-hypershift-integration 4fd437a link true /test verify-hypershift-integration
ci/prow/integration 4fd437a link true /test integration

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

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.

1 participant