Skip to content

[release-4.22] OCPBUGS-83712: Use upgrades.Skippable for Gateway API upgrade test skip logic#31030

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:release-4.22from
openshift-cherrypick-robot:cherry-pick-31000-to-release-4.22
Apr 21, 2026
Merged

[release-4.22] OCPBUGS-83712: Use upgrades.Skippable for Gateway API upgrade test skip logic#31030
openshift-merge-bot[bot] merged 1 commit intoopenshift:release-4.22from
openshift-cherrypick-robot:cherry-pick-31000-to-release-4.22

Conversation

@openshift-cherrypick-robot
Copy link
Copy Markdown

This is an automated cherry-pick of #31000

/assign gcs278

…ip logic

The Gateway API upgrade test was calling g.Skip() from Setup(), which
runs inside a goroutine managed by the disruption framework. Since
g.Skip() panics and Ginkgo can only recover panics inside leaf nodes,
this caused unrecoverable panics on IPv6/dual-stack, OKD, and
unsupported platform clusters.

Implement the upgrades.Skippable interface with a Skip() method that
the disruption framework calls before Setup, avoiding the goroutine
panic. Refactor checkPlatformSupportAndGetCapabilities into
shouldSkipGatewayAPITests (safe outside Ginkgo nodes) and
getPlatformCapabilities (returns LB/DNS support).

https://redhat.atlassian.net/browse/OCPBUGS-83267

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 17, 2026

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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39039be7-0653-460c-9eb8-08b6b254d4e1

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot requested review from gcs278 and jcmoraisjr April 17, 2026 13:14
@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Apr 17, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@gcs278: This pull request references Jira Issue OCPBUGS-83267, which is invalid:

  • expected the bug to target either version "4.22." or "openshift-4.22.", but it targets "5.0.0" instead
  • expected the bug to be in one of the following states: NEW, ASSIGNED, POST, but it is MODIFIED instead
  • release note text must be set and not match the template OR release note type must be set to "Release Note Not Required". For more information you can reference the OpenShift Bug Process.
  • expected Jira Issue OCPBUGS-83267 to depend on a bug targeting a version in 5.0.0 and in one of the following states: MODIFIED, ON_QA, VERIFIED, but no dependents were found

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

/jira refresh

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.

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

there's a bug with cherry-pick where it still links to the parent so i must retitle:
/retitle [release-4.22] OCPBUGS-83712: Use upgrades.Skippable for Gateway API upgrade test skip logic

@openshift-ci openshift-ci Bot changed the title [release-4.22] OCPBUGS-83267: Use upgrades.Skippable for Gateway API upgrade test skip logic [release-4.22] OCPBUGS-83712: Use upgrades.Skippable for Gateway API upgrade test skip logic Apr 17, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-cherrypick-robot: This pull request references Jira Issue OCPBUGS-83712, which is invalid:

  • release note text must be set and not match the template OR release note type must be set to "Release Note Not Required". For more information you can reference the OpenShift Bug Process.

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

This is an automated cherry-pick of #31000

/assign gcs278

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.

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Apr 17, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@gcs278: This pull request references Jira Issue OCPBUGS-83712, which is valid. The bug has been moved to the POST state.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-83267 is in the state MODIFIED, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-83267 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents

Requesting review from QA contact:
/cc @melvinjoseph86

Details

In response to this:

/jira refresh

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 requested a review from melvinjoseph86 April 17, 2026 13:23
@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

No e2e CI jobs are running, either it's a glitch or a bug.
/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 17, 2026
@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

/pipeline required

@deepsm007
Copy link
Copy Markdown
Contributor

/test help

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

Kicking off the e2e jobs manually:
/test e2e-aws-csi
/test e2e-aws-jenkins
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-image-registry
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-builds
/test e2e-gcp-ovn-image-ecosystem
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

/test help

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

@CodeRabbit out of these optional jobs, which ones should I test based on the logic changed in this PR?

e2e-agnostic-ovn-cmd
e2e-aws-disruptive
e2e-aws-etcd-certrotation
e2e-aws-etcd-recovery
e2e-aws-ovn
e2e-aws-ovn-cgroupsv2
e2e-aws-ovn-edge-zones
e2e-aws-ovn-etcd-scaling
e2e-aws-ovn-kube-apiserver-rollout
e2e-aws-ovn-kubevirt
e2e-aws-ovn-serial-fast
e2e-aws-ovn-serial-ipsec
e2e-aws-ovn-serial-publicnet-1of2
e2e-aws-ovn-serial-publicnet-2of2
e2e-aws-ovn-single-node
e2e-aws-ovn-single-node-serial
e2e-aws-ovn-single-node-techpreview
e2e-aws-ovn-single-node-techpreview-serial
e2e-aws-ovn-single-node-upgrade
e2e-aws-ovn-upgrade
e2e-aws-ovn-upgrade-rollback
e2e-aws-ovn-upi
e2e-aws-proxy
e2e-azure
e2e-azure-ovn-etcd-scaling
e2e-azure-ovn-upgrade
e2e-baremetalds-kubevirt
e2e-external-aws
e2e-external-aws-ccm
e2e-external-vsphere-ccm
e2e-gcp-disruptive
e2e-gcp-fips-serial-1of2
e2e-gcp-fips-serial-2of2
e2e-gcp-ovn-etcd-scaling
e2e-gcp-ovn-kube-apiserver-rollout
e2e-gcp-ovn-rt-upgrade
e2e-gcp-ovn-techpreview
e2e-gcp-ovn-techpreview-serial-1of2
e2e-gcp-ovn-techpreview-serial-2of2
e2e-gcp-ovn-usernamespace
e2e-hypershift-conformance
e2e-metal-ipi-ovn
e2e-metal-ipi-ovn-bgp-virt-dualstack
e2e-metal-ipi-ovn-bgp-virt-dualstack-techpreview
e2e-metal-ipi-ovn-dualstack
e2e-metal-ipi-ovn-dualstack-bgp
e2e-metal-ipi-ovn-dualstack-bgp-local-gw
e2e-metal-ipi-ovn-dualstack-local-gateway
e2e-metal-ipi-ovn-kube-apiserver-rollout
e2e-metal-ipi-serial-1of2
e2e-metal-ipi-serial-2of2
e2e-metal-ipi-serial-ovn-ipv6-1of2
e2e-metal-ipi-serial-ovn-ipv6-2of2
e2e-metal-ipi-virtualmedia
e2e-metal-ovn-single-node-live-iso
e2e-metal-ovn-single-node-with-worker-live-iso
e2e-metal-ovn-two-node-arbiter
e2e-metal-ovn-two-node-fencing
e2e-metal-ovn-two-node-fencing-recovery
e2e-openstack-dualstack-v6primary
e2e-openstack-ovn
e2e-openstack-serial
e2e-vsphere-ovn-etcd-scaling

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 17, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

Let me look at the actual changes in this PR to give you a targeted recommendation.


🏁 Script executed:

#!/bin/bash
# Get the PR diff to understand what changed
gh pr view 31030 --repo openshift/origin --json files,body,title
gh pr diff 31030 --repo openshift/origin 2>/dev/null | head -200

Length of output: 10594


@gcs278: Based on the diff, the changes are scoped to two things:

  1. Upgrade test skip logic — the new Skip() method on GatewayAPIUpgradeTest (implementing upgrades.Skippable) is invoked by the upgrade disruption framework.
  2. Gateway API controller test skip refactorshouldSkipGatewayAPITests / isNoOLMFeatureGateEnabled returning (bool, error), exercised by any Gateway API test run, especially behind the GatewayAPIWithoutOLM tech-preview feature gate.

Here are the most relevant optional jobs:


🔴 High priority — directly exercises the changed upgrade-test Skip() path

Job Why
e2e-aws-ovn-upgrade AWS/OVN upgrade; most common upgrade path, exercises Skip() logic
e2e-aws-ovn-upgrade-rollback Exercises Skip() on both upgrade and rollback flows
e2e-aws-ovn-single-node-upgrade Single-node variant; different topology may hit different skip conditions
e2e-azure-ovn-upgrade Different cloud platform; validates shouldSkipGatewayAPITests platform-branch logic
e2e-gcp-ovn-rt-upgrade GCP real-time upgrade path

🟡 Medium priority — exercises the GatewayAPIWithoutOLM tech-preview feature gate path in gatewayapicontroller.go

Job Why
e2e-gcp-ovn-techpreview Enables tech-preview feature gates including GatewayAPIWithoutOLM
e2e-gcp-ovn-techpreview-serial-1of2 Serial variant of tech-preview on GCP
e2e-gcp-ovn-techpreview-serial-2of2 Serial variant of tech-preview on GCP
e2e-aws-ovn-single-node-techpreview Single-node + tech-preview on AWS
e2e-aws-ovn-single-node-techpreview-serial Serial variant of single-node tech-preview

⬇️ Low/skip — not relevant to this change

Everything else (etcd scaling, kube-apiserver-rollout, metal IPI, openstack, vsphere, cgroupsv2, FIPS, proxy, kubevirt, etc.) does not exercise upgrade skip logic or the Gateway API feature gate path, so they're unlikely to catch regressions from this change.

TL;DR: Run the 5 upgrade jobs for the primary fix, and the 5 techpreview jobs for the gatewayapicontroller.go refactor. The e2e-gcp-ovn-upgrade you already triggered from the required set covers the baseline upgrade path on GCP.

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

Taking Rabbit's suggestion:
/test e2e-aws-ovn-upgrade
/test e2e-aws-ovn-upgrade-rollback
/test e2e-aws-ovn-single-node-upgrade
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn-rt-upgrade

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

I'm seeing infra errors like:

STEP 1/5: FROM quay-proxy.ci.openshift.org/openshift/ci@sha256:c1f899cd087fe8ba7eda607c544e965bfaa01a5f5c3204167fdcd67145620455
Trying to pull quay-proxy.ci.openshift.org/openshift/ci@sha256:c1f899cd087fe8ba7eda607c544e965bfaa01a5f5c3204167fdcd67145620455...
error: build error: creating build container: determining manifest MIME type for docker://quay-proxy.ci.openshift.org/openshift/ci@sha256:c1f899cd087fe8ba7eda607c544e965bfaa01a5f5c3204167fdcd67145620455: Manifest does not match provided manifest digest sha256:c1f899cd087fe8ba7eda607c544e965bfaa01a5f5c3204167fdcd67145620455

/retest

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 17, 2026

infra failures
/retest

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 18, 2026

I hate to do this, but better safe than sorry - as the reason this fix is needed is because I missed a nightly job that wasn't on the presubmits, and I really don't want to break 4.22 CI any further:

/payload 4.22 nightly informing

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 20, 2026

Alright I'm not sure if CodeRabbit reviewed the right jobs, but anyways I manually reviewed the failures in https://pr-payload-tests.ci.openshift.org/runs/ci/ec77afa0-3abe-11f1-8eb1-096054443738-0 manually and no GWAPI-related failures.

/unhold

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 20, 2026
@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 20, 2026

@CodeRabbit who can apply the backport-risk-assessed label for this PR?

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Tip

For best results, initiate chat on the files or code changes.

@gcs278: Based on error messages seen in other openshift/origin PRs, backport-risk-assessed can only be set by members of the openshift-staff-engineers GitHub team.

The label indicates "a PR to a release branch has been evaluated and considered safe to accept."

You'll need to reach out to someone on the openshift-staff-engineers team and ask them to comment /label backport-risk-assessed on this PR.

@neisw
Copy link
Copy Markdown
Contributor

neisw commented Apr 20, 2026

/approve
/label backport-risk-assessed

@openshift-ci openshift-ci Bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label Apr 20, 2026
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 20, 2026
@neisw
Copy link
Copy Markdown
Contributor

neisw commented Apr 20, 2026

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: neisw, openshift-cherrypick-robot

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

@rhamini3
Copy link
Copy Markdown
Contributor

marking cherry-pick PR as verified since IPV6 Test is passing and successfully skipping all gateway Controller tests

/verified by @rhamini3

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Apr 20, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@rhamini3: This PR has been marked as verified by @rhamini3.

Details

In response to this:

marking cherry-pick PR as verified since IPV6 Test is passing and successfully skipping all gateway Controller tests

/verified by @rhamini3

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-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 48d7664 and 2 for PR HEAD 2f7fc5f in total

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 20, 2026

CI Infra issues are back

@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 21, 2026

/test images

1 similar comment
@gcs278
Copy link
Copy Markdown
Contributor

gcs278 commented Apr 21, 2026

/test images

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 21, 2026

@openshift-cherrypick-robot: all tests passed!

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.

@openshift-merge-bot openshift-merge-bot Bot merged commit 7ad8719 into openshift:release-4.22 Apr 21, 2026
29 checks passed
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-cherrypick-robot: Jira Issue Verification Checks: Jira Issue OCPBUGS-83712
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-83712 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

This is an automated cherry-pick of #31000

/assign gcs278

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-merge-robot
Copy link
Copy Markdown
Contributor

Fix included in release 4.22.0-0.nightly-2026-04-22-021901

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. backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.