Skip to content

OCPBUGS-88719: Use AdminPolicyBasedExternalRoute CR for external gateway test#31293

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
arkadeepsen:use-apber-for-ex-gw
Jun 19, 2026
Merged

OCPBUGS-88719: Use AdminPolicyBasedExternalRoute CR for external gateway test#31293
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
arkadeepsen:use-apber-for-ex-gw

Conversation

@arkadeepsen

@arkadeepsen arkadeepsen commented Jun 11, 2026

Copy link
Copy Markdown
Member

This PR changes existing external gateway tests to use AdminPolicyBasedExternalRoute CR instead of annotations.

Summary by CodeRabbit

  • Tests

    • Refreshed external-gateway scenarios for IPv4, IPv6, and Dual-Stack by polling ovnkube-node logs to verify APB policy sync success vs. failure.
    • Switched to fixed-name pods and namespace-scoped external route policies, including an extra Dual-Stack check that the pod IP family matches the cluster expectation.
  • Refactor

    • Improved IP-family determination by using pod runtime status rather than mismatch-based assertions.
    • Updated external-gateway setup to use applied APB external-route manifests instead of namespace annotation changes.

@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: automatic mode

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Walkthrough

Refactors external gateway tests from validating pod-creation success/failure to validating APB policy sync state by polling ovnkube-node logs. Updates utility layer to render AdminPolicyBasedExternalRoute manifests and change pod creation to return full Pod objects. Implements three test scenarios (IPv6, IPv4, Dual Stack) that apply explicit APB policies, create fixed-name test pods, and assert sync outcomes based on cluster IP-family compatibility.

Changes

APB External Gateway Policy Testing

Layer / File(s) Summary
APB manifest templating infrastructure
test/extended/networking/util.go
Add bytes and text/template imports; define AdminPolicyBasedExternalRoute Go template with parameter struct and renderer that executes templates into in-memory manifests; update setNamespaceExternalGateway to apply rendered APB manifests with policy name, label selector, and gateway IPs instead of namespace annotation patching.
Pod creation and IP-family detection
test/extended/networking/util.go
Update createPod to return the full *corev1.Pod object (polling until PodRunning state) instead of just PodIP slice; update GetIPFamilyForCluster to derive IP family from returned pod.Status.PodIPs and delete the temporary pod via Kubernetes client before returning computed IPFamily.
External gateway address test refactoring
test/extended/networking/external_gateway.go
Add context, fmt, regexp, time, and e2epod imports; create CLI without fixed namespace and set privileged pod security at framework level; define shared APB sync-failure error pattern and checkLogs helper; create labeled namespace and derive cluster pod IP family upfront; implement IPv6, IPv4, and Dual Stack test scenarios that apply explicit APB policies, create fixed-name pods, locate ovnkube-node pods, and poll logs to assert sync success or expected failure based on IP-family mismatch; delete routes and pods after each scenario.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 12 | ❌ 3

❌ Failed checks (3 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ⚠️ Warning Critical compilation error: setNamespaceExternalGateway calls undefined applyManifest function in util.go; plus multiple quality issues including lack of meaningful assertion messages, single test... Add applyManifest function to util.go with e2ekubectl import; split test into three separate tests; add error context messages; use BeforeEach/AfterEach with DeferCleanup for resource cleanup.
Microshift Test Compatibility ⚠️ Warning Test uses AdminPolicyBasedExternalRoute (k8s.ovn.org/v1) API and openshift-ovn-kubernetes namespace, which are not available on MicroShift. No [apigroup:] or [Skipped:MicroShift] label present. Add [apigroup:k8s.ovn.org] tag to test name or [Skipped:MicroShift] label, OR verify availability on MicroShift with periodic-ci-openshift-microshift-release-4.22-periodics-e2e-aws-ovn-ocp-conformance job.
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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 All test titles (Describe, Context, It) are static strings with no dynamic values. No pod names, node names, namespace names, IP addresses, or other dynamic identifiers appear in test declarations.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Test makes no multi-node assumptions. It creates sequential pods without affinity constraints, looks up ovnkube-node pods by node name, and tests APB policy sync—all compatible with SNO where all p...
Topology-Aware Scheduling Compatibility ✅ Passed This PR modifies test files only (test/extended/networking/external_gateway.go and util.go). The AdminPolicyBasedExternalRoute CR template created contains only networking configuration without sch...
Ote Binary Stdout Contract ✅ Passed No OTE Binary Stdout Contract violations detected. All code writes are either within test blocks (safe), to stderr/buffers, or use e2e.Logf (GinkgoWriter). No process-level stdout writes found.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed Test dynamically detects cluster IP family via GetIPFamilyForCluster() and uses switch statements to adapt behavior for IPv4/IPv6/DualStack. Hardcoded IPs (10.10.10.1, fd00:10:244:2::6) are test da...
No-Weak-Crypto ✅ Passed No weak cryptography detected in PR changes. Files contain no MD5, SHA1, DES, RC4, 3DES, Blowfish, or ECB usage; no custom crypto implementations; and no non-constant-time secret comparisons.
Container-Privileges ✅ Passed PR does not introduce privileged container configurations in manifests. The test namespace security level setting is a justified framework configuration for network testing, and the AdminPolicyBase...
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data logging detected. The PR changes only log pod IPs and error messages—no passwords, tokens, API keys, PII, session IDs, secrets, or internal credentials are logged.
Title check ✅ Passed The title 'Use AdminPolicyBasedExternalRoute CR for external gateway test' directly and clearly summarizes the main change—refactoring external gateway tests to use the APBER custom resource instead of annotations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

@openshift-ci openshift-ci Bot requested review from jcaamano and pperiyasamy June 11, 2026 18:42

@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: 3

🧹 Nitpick comments (2)
test/extended/networking/util.go (1)

322-336: 💤 Low value

Consider quoting LabelKey in the template to prevent potential injection.

At line 331, {{ .LabelKey }} is not quoted, while {{ .LabelValue | quote }} is. If LabelKey were to come from user input or external sources in the future, this could allow template injection or YAML structure manipulation.

While the current usage hardcodes labelKey as "test" (line 26 in external_gateway.go), applying the defense-in-depth principle suggests quoting all dynamic values in templates.

Proposed defense-in-depth improvement
   from:
     namespaceSelector:
       matchLabels:
-        {{ .LabelKey }}: {{ .LabelValue | quote }}
+        {{ .LabelKey | quote }}: {{ .LabelValue | quote }}

Note: YAML keys should remain unquoted for standard label names, so this may require careful testing to ensure label selectors work correctly with quoted keys.

🤖 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 `@test/extended/networking/util.go` around lines 322 - 336, The template
adminPolicyBasedExternalRouteTemplate uses an unquoted dynamic label key
(LabelKey) which can allow template/YAML injection; update the template to quote
or escape the LabelKey the same way LabelValue is handled (apply the template's
quoting/escaping filter to .LabelKey), run tests to confirm the
AdminPolicyBasedExternalRoute's namespaceSelector.matchLabels still works as
expected, and validate with the code that constructs labelKey
(external_gateway.go) to ensure no functional change.
test/extended/networking/external_gateway.go (1)

48-48: 💤 Low value

Consider using a proper context instead of context.TODO().

While context.TODO() is acceptable for test code, using a proper context with timeout would improve clarity and allow better control over the polling behavior. The context could be created at the test function level and passed through.

🤖 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 `@test/extended/networking/external_gateway.go` at line 48, The
wait.PollUntilContextTimeout call currently uses context.TODO(); replace it with
a proper context created at the test level (e.g., ctx, cancel :=
context.WithTimeout(context.Background(), 2*time.Minute)) and pass that ctx into
wait.PollUntilContextTimeout instead of context.TODO(), and ensure you defer
cancel() to release resources; locate the call to
wait.PollUntilContextTimeout(...) in external_gateway.go and update callers to
use the new ctx so the poll uses the intended timeout and cancellation
semantics.
🤖 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 `@test/extended/networking/external_gateway.go`:
- Around line 48-69: The DualStack case is unhandled causing timeouts; update
the polling lambda used with wait.PollUntilContextTimeout to treat DualStack
like the IPv6 success path: in the switch on podIPFamily (where DualStack
currently has an empty case) check logs with strings.Contains for
fmt.Sprintf(successLog, apbPolicyName, f.Namespace.Name, podName) and return
true,nil if found (use the same check as the IPv6 branch); do this for both
occurrences of the switch so DualStack clusters detect the success pattern
instead of falling through to a timeout.
- Around line 110-112: Accessing pod.Status.PodIPs before checking the result of
createPod can panic if createPod returned an error; change the order to verify
the error from createPod (the variable err returned by createPod) with
expectNoError(err) or an explicit nil check before touching pod, then only read
pod.Status.PodIPs into podIPs after the success check—look for the
createPod(...) call, the pod variable, pod.Status.PodIPs and the expectNoError
invocation to update.

In `@test/extended/networking/util.go`:
- Around line 530-544: In createPod, the inner closure shadows the outer
retrievedPod by using :=; change the declaration inside the wait.PollImmediate
closure to assign to the outer variable (use = instead of :=) so the
retrievedPod set inside the loop is returned by the function; ensure the closure
still returns the correct (bool, error) values and references
execPod.Namespace/execPod.Name as it currently does.

---

Nitpick comments:
In `@test/extended/networking/external_gateway.go`:
- Line 48: The wait.PollUntilContextTimeout call currently uses context.TODO();
replace it with a proper context created at the test level (e.g., ctx, cancel :=
context.WithTimeout(context.Background(), 2*time.Minute)) and pass that ctx into
wait.PollUntilContextTimeout instead of context.TODO(), and ensure you defer
cancel() to release resources; locate the call to
wait.PollUntilContextTimeout(...) in external_gateway.go and update callers to
use the new ctx so the poll uses the intended timeout and cancellation
semantics.

In `@test/extended/networking/util.go`:
- Around line 322-336: The template adminPolicyBasedExternalRouteTemplate uses
an unquoted dynamic label key (LabelKey) which can allow template/YAML
injection; update the template to quote or escape the LabelKey the same way
LabelValue is handled (apply the template's quoting/escaping filter to
.LabelKey), run tests to confirm the AdminPolicyBasedExternalRoute's
namespaceSelector.matchLabels still works as expected, and validate with the
code that constructs labelKey (external_gateway.go) to ensure no functional
change.
🪄 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: Enterprise

Run ID: 6b72cb40-a8ea-48aa-bbe0-9feba28cf622

📥 Commits

Reviewing files that changed from the base of the PR and between bde16f5 and dd910f5.

📒 Files selected for processing (2)
  • test/extended/networking/external_gateway.go
  • test/extended/networking/util.go

Comment thread test/extended/networking/external_gateway.go Outdated
Comment thread test/extended/networking/external_gateway.go Outdated
Comment thread test/extended/networking/util.go
@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from dd910f5 to ded79e4 Compare June 11, 2026 18:55
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from ded79e4 to 69561e8 Compare June 11, 2026 19:42
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from 69561e8 to dc6898d Compare June 12, 2026 02:05
@openshift-ci openshift-ci Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jun 12, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen

Copy link
Copy Markdown
Member Author

/retest-required

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from dc6898d to 9744ea2 Compare June 12, 2026 05:50
@arkadeepsen

Copy link
Copy Markdown
Member Author

/retest

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from 9744ea2 to 707c2f4 Compare June 12, 2026 17:25
@arkadeepsen

Copy link
Copy Markdown
Member Author

@coderabbitai resume
@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

@arkadeepsen: Sure! Resuming reviews and kicking off a review of the PR now.

✅ Action performed

Reviews resumed.


Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-trt

openshift-trt Bot commented Jun 13, 2026

Copy link
Copy Markdown

Job Failure Risk Analysis for sha: 707c2f4

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-gcp-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 7 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:gcp Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High
[sig-network] external gateway address when using openshift ovn-kubernetes should match the address family of the pod [Suite:openshift/conformance/parallel]
This test has passed 100.00% of 6 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv6 OS:rhcos9 Owner:eng Platform:metal Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 19 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn-upi Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 12 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:upi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from 707c2f4 to d17bb4e Compare June 15, 2026 03:17
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

1 similar comment
@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

@arkadeepsen arkadeepsen force-pushed the use-apber-for-ex-gw branch from d17bb4e to e8c8c0f Compare June 15, 2026 08:13
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/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-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

@arkadeepsen

Copy link
Copy Markdown
Member Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/ovn-kubernetes#3249

@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

@arkadeepsen: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/04da61f0-69f9-11f1-866e-33093e39c8c8-0

@arkadeepsen

Copy link
Copy Markdown
Member Author

@arkadeepsen: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/04da61f0-69f9-11f1-866e-33093e39c8c8-0

The following test passed:

: [sig-network] external gateway address when using openshift ovn-kubernetes should match the address family of the pod [Suite:openshift/conformance/parallel]

@tssurya tssurya 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
I didn't review in depth since functionally not much changes, just the API surface is changing, CI is passing so that's great

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026
@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: arkadeepsen, tssurya

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 Jun 17, 2026
@arkadeepsen

Copy link
Copy Markdown
Member Author

/verified by CI

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 18, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@arkadeepsen: This PR has been marked as verified by CI.

Details

In response to this:

/verified by CI

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.

@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

@arkadeepsen

Copy link
Copy Markdown
Member Author

/retest

@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

@openshift-trt

openshift-trt Bot commented Jun 18, 2026

Copy link
Copy Markdown

Job Failure Risk Analysis for sha: c389785

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-gcp-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:gcp Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.

1 similar comment
@openshift-trt

openshift-trt Bot commented Jun 18, 2026

Copy link
Copy Markdown

Job Failure Risk Analysis for sha: c389785

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-gcp-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:gcp Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.

@arkadeepsen

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-fips

@openshift-trt

openshift-trt Bot commented Jun 18, 2026

Copy link
Copy Markdown

Job Failure Risk Analysis for sha: c389785

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-gcp-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:gcp Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.

1 similar comment
@openshift-trt

openshift-trt Bot commented Jun 18, 2026

Copy link
Copy Markdown

Job Failure Risk Analysis for sha: c389785

Job Name Failure Risk
pull-ci-openshift-origin-main-e2e-gcp-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:gcp Procedure:none SecurityMode:default Topology:ha Upgrade:micro] in the last week.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Low
[Feature:NetworkSegmentation][ovn-kubernetes-ote][sig-network] Network Segmentation: services on a user defined primary network should be reachable through their cluster IP, node port and load balancer L2 primary UDN with custom network, cluster-networked pods, NodePort service [Suite:openshift/conformance/parallel]
This test has passed 0.00% of 1 runs on release 5.0 [Architecture:amd64 FeatureSet:default Installer:ipi JobTier:standard Network:ovn NetworkStack:ipv4 OS:rhcos9 Owner:eng Platform:vsphere Procedure:none SecurityMode:default Topology:ha Upgrade:none] in the last week.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 0d8f07f and 2 for PR HEAD c389785 in total

@openshift-ci

openshift-ci Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

@arkadeepsen: 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 428e96c into openshift:main Jun 19, 2026
21 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@arkadeepsen: Jira Issue Verification Checks: Jira Issue OCPBUGS-88719
✔️ 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-88719 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 PR changes existing external gateway tests to use AdminPolicyBasedExternalRoute CR instead of annotations.

Summary by CodeRabbit

  • Tests

  • Refreshed external-gateway scenarios for IPv4, IPv6, and Dual-Stack by polling ovnkube-node logs to verify APB policy sync success vs. failure.

  • Switched to fixed-name pods and namespace-scoped external route policies, including an extra Dual-Stack check that the pod IP family matches the cluster expectation.

  • Refactor

  • Improved IP-family determination by using pod runtime status rather than mismatch-based assertions.

  • Updated external-gateway setup to use applied APB external-route manifests instead of namespace annotation changes.

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.

@arkadeepsen arkadeepsen deleted the use-apber-for-ex-gw branch June 19, 2026 04:15
@arkadeepsen

Copy link
Copy Markdown
Member Author

/jira backport release-4.22,release-4.21

@openshift-ci-robot

Copy link
Copy Markdown

@arkadeepsen: The following backport issues have been created:

Queuing cherrypicks to the requested branches to be created after this PR merges:
/cherrypick release-4.22
/cherrypick release-4.21

Details

In response to this:

/jira backport release-4.22,release-4.21

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-cherrypick-robot

Copy link
Copy Markdown

@openshift-ci-robot: new pull request created: #31316

Details

In response to this:

@arkadeepsen: The following backport issues have been created:

Queuing cherrypicks to the requested branches to be created after this PR merges:
/cherrypick release-4.22
/cherrypick release-4.21

In response to this:

/jira backport release-4.22,release-4.21

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.

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-cherrypick-robot

Copy link
Copy Markdown

@openshift-ci-robot: new pull request created: #31317

Details

In response to this:

@arkadeepsen: The following backport issues have been created:

Queuing cherrypicks to the requested branches to be created after this PR merges:
/cherrypick release-4.22
/cherrypick release-4.21

In response to this:

/jira backport release-4.22,release-4.21

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.

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-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in release 5.0.0-0.nightly-2026-06-19-155631

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-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. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants