Skip to content

Add a CNO secondary encap CI lane - #81614

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
SchSeba:ovn-k_encap_lane
Aug 11, 2026
Merged

Add a CNO secondary encap CI lane#81614
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
SchSeba:ovn-k_encap_lane

Conversation

@SchSeba

@SchSeba SchSeba commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Create a baremetal cluster-network-operator workflow that provisions a secondary interface, injects node-specific OVN_ENCAP_IP overrides, and prints the resolved override mapping before validating OVS state.

Summary by CodeRabbit

This PR adds a bare-metal cluster-network-operator CI lane for OVN secondary encapsulation on equinix-ocp-metal.

The workflow provisions a secondary interface, derives each node’s secondary IP, injects node-specific OVN_ENCAP_IP values through an env-overrides ConfigMap, and restarts ovnkube-node.

The validation step checks each node’s ovn-encap-ip, Geneve ports, and peer remote IPs against the expected secondary-interface mapping. It also captures OVS state and runs the standard bare-metal end-to-end tests with OVN debug collection.

The CI job runs when selected OVN-Kubernetes manifests, scripts, or networking tests change. Ownership and step-registry metadata support the new workflow.

@openshift-ci
openshift-ci Bot requested review from arghosh93 and arkadeepsen July 8, 2026 14:18
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 55073dc8-6a84-4b80-b123-41b6573a3924

📥 Commits

Reviewing files that changed from the base of the PR and between 9e75114 and 78a0640.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-network-operator/openshift-cluster-network-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (14)
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (13)
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json

Walkthrough

This PR adds an optional Metal IPI E2E job for OVN secondary encapsulation. It defines the workflow, discovers node secondary-interface IPs, injects OVN_ENCAP_IP overrides, and validates the resulting OVS state.

Changes

OVN secondary encapsulation CI flow

Layer / File(s) Summary
Job and workflow wiring
ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml, ci-operator/step-registry/cluster-network-operator/{OWNERS,ovn/OWNERS}, ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/*
Registers the optional E2E job, defines the Metal IPI workflow, and adds workflow and step ownership metadata.
Secondary interface discovery and override injection
ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/*
Discovers per-node secondary-interface IPs, creates OVN_ENCAP_IP entries in the env-overrides ConfigMap, restarts ovnkube-node, and verifies mounted overrides.
Encapsulation IP validation
ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/*
Reads OVS state for each node, compares external_ids:ovn-encap-ip with the expected IP, validates Geneve peers, stores command output, and returns an aggregate validation status.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant JobConfig
  participant Workflow
  participant PreScript
  participant NodePod
  participant ConfigMap
  participant ValidateScript
  participant OVS

  JobConfig->>Workflow: starts e2e-metal-ipi-ovn-secondary-encap
  Workflow->>PreScript: runs pre step
  PreScript->>NodePod: reads secondary interface and IP
  PreScript->>ConfigMap: writes per-node OVN_ENCAP_IP overrides
  PreScript->>NodePod: restarts ovnkube-node and verifies mounted overrides
  Workflow->>ValidateScript: runs validation step
  ValidateScript->>NodePod: locates each ready node pod
  ValidateScript->>OVS: reads ovs-vsctl state and external_ids
  ValidateScript->>ValidateScript: compares ovn-encap-ip and Geneve peer data
Loading

Suggested labels: rehearsals-ack, lgtm

Suggested reviewers: arghosh93, arkadeepsen


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The pre/validate scripts log node and pod names, IP/interface mappings, full env-overrides ConfigMap, and all OVS external_ids via cat, oc get, and tee. Redact node and pod hostnames, and avoid dumping full ConfigMap or external_ids/OVS output; log only the specific validation fields required.
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning The new E2E workflow forces IP_STACK=v4, hardcodes 192.168.221.0/24, and parses only ip -o -4; it cannot run on IPv6-only CI. Make the workflow family-aware or mark it IPv4-only, then verify with /payload-job periodic-ci-openshift-release-master-nightly-4.22-e2e-metal-ipi-ovn-ipv6.
✅ Passed checks (13 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: adding a CNO secondary encapsulation CI lane.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 The PR adds CI YAML and Bash workflow steps only; scans of all changed files found no Ginkgo It, Describe, Context, or When test declarations.
Test Structure And Quality ✅ Passed The PR changes only CI YAML, JSON, OWNERS, and Bash files; the patch contains no Ginkgo test code, DSL calls, or Ginkgo dependencies to review.
Microshift Test Compatibility ✅ Passed Not applicable: the commit adds no Ginkgo test declarations or Go test files; it adds only CI YAML, metadata, OWNERS, and shell workflow files.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR adds CI YAML, metadata, and shell steps; searches found no new Ginkgo declarations or topology-dependent test code.
Topology-Aware Scheduling Compatibility ✅ Passed The patch adds CI job/workflow scripts and a ConfigMap override; it adds no deployment manifests, operator controllers, replicas, affinity, topology spread, selectors, tolerations, or PDB constraints.
Ote Binary Stdout Contract ✅ Passed The patch changes YAML, JSON, OWNERS, and two Bash CI scripts; it adds no Go/OTE binary, suite setup, or openshift-tests process-level stdout code.
No-Weak-Crypto ✅ Passed Changed files contain no MD5, SHA1, DES, 3DES, RC4, Blowfish, ECB, crypto API, custom crypto, or secret/token comparison usage.
Container-Privileges ✅ Passed Changed manifests and step refs contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings; --host-network is an EXTRA_MG_ARGS must-gather option.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@SchSeba
SchSeba force-pushed the ovn-k_encap_lane branch from 722fe53 to c32399f Compare July 8, 2026 15:17

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 3

🧹 Nitpick comments (1)
ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml (1)

5-13: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Same subnet value hardcoded twice.

192.168.221.0/24 appears both as the standalone EXTRANET_NETWORK_SUBNET_V4 env var (line 10) and again inline inside the EXTRA_NETWORK_CONFIG heredoc (line 13). Since these are two separate literals, an update to one without the other would silently desync the extranet provisioning config from what the pre-step/validate steps expect.

🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml`
around lines 5 - 13, The extranet subnet value is duplicated in the workflow env
setup, so keep it defined from a single source instead of hardcoding it twice.
Update the cluster-network-operator-ovn-secondary-encap workflow’s env block so
EXTRANET_NETWORK_SUBNET_V4 and the EXTRA_NETWORK_CONFIG content both reference
the same subnet value consistently, using the existing extranet config symbols
to avoid future drift.
🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh`:
- Around line 15-26: Tighten the EXTRANET_NETWORK_SUBNET_V4 validation in
cluster-network-operator-ovn-secondary-encap-pre-commands.sh: the current */24
glob plus %0/24 stripping in the subnet/prefix setup is too loose and can
produce an empty secondary_prefix. Update the validation to use a single
anchored format check in the existing shell logic around secondary_prefix and
escaped_secondary_prefix, then derive the prefix only after the value is
confirmed to be in the expected x.x.x.0/24 form. Also ensure the value
interpolated into the remote bash -c awk match is always safely escaped before
use.
- Around line 119-124: The pod lookup in the secondary-encap pre-commands script
is still causing the shell to exit under set -e when no matching ovnkube-node
pod exists. Update the oc get call inside the while loop that assigns pod_name
to tolerate the empty-result case without failing, so the subsequent if [[ -z
"${pod_name}" ]] fallback can run and print pod=<missing>.

In
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`:
- Around line 39-61: The node validation loop in
cluster-network-operator-ovn-secondary-encap-validate-commands.sh relies on
command substitutions that can exit early under set -e, so failures from oc or
get_ovnkube_container stop the script before validation_failed is updated.
Update the logic around pod_name, container_name, and actual_ip to capture
failures explicitly and mark validation_failed instead of aborting the loop,
while preserving the per-node validation flow in this script.

---

Nitpick comments:
In
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml`:
- Around line 5-13: The extranet subnet value is duplicated in the workflow env
setup, so keep it defined from a single source instead of hardcoding it twice.
Update the cluster-network-operator-ovn-secondary-encap workflow’s env block so
EXTRANET_NETWORK_SUBNET_V4 and the EXTRA_NETWORK_CONFIG content both reference
the same subnet value consistently, using the existing extranet config symbols
to avoid future drift.
🪄 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: a4b9d3e1-a0de-41d5-aebb-1879caac1620

📥 Commits

Reviewing files that changed from the base of the PR and between 0c8b4cf and c32399f.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-network-operator/openshift-cluster-network-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (14)
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml

@SchSeba

SchSeba commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@SchSeba

SchSeba commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@zeeke

zeeke commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added lgtm Indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jul 9, 2026
@SchSeba
SchSeba force-pushed the ovn-k_encap_lane branch from c32399f to d73c04d Compare July 14, 2026 14:24
@openshift-ci openshift-ci Bot removed lgtm Indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jul 14, 2026
@SchSeba
SchSeba force-pushed the ovn-k_encap_lane branch from d73c04d to 45cd87c Compare July 14, 2026 18:08
@SchSeba

SchSeba commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse max

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@SchSeba
SchSeba force-pushed the ovn-k_encap_lane branch from 45cd87c to c7c8dc5 Compare July 27, 2026 15:24
@tssurya

tssurya commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

@SchSeba did we run the test-with-pr option and is there a link to a successful run of this job that I can look at?

@tssurya

tssurya commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

oh and you would need to address coderabbit comments

@tssurya

tssurya commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Create a baremetal cluster-network-operator workflow that provisions a secondary interface, injects node-specific OVN_ENCAP_IP overrides, and prints the resolved override mapping before validating OVS state.

Summary by CodeRabbit

This PR adds a new baremetal CI lane for cluster-network-operator to validate OVN secondary encapsulation behavior. It introduces a new step-registry workflow that provisions a secondary interface, injects per-node OVN_ENCAP_IP overrides through an env-overrides ConfigMap, restarts ovnkube-node, and verifies the live OVS encapsulation IP matches the expected secondary interface address.

I assume we are having a e2e test that actually tests east-west traffic over the configured geneve encap IP right? I don't see that detail in PR describe - that's what we promise through doing this so hope that's getting added..

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`:
- Around line 71-84: Extend the validation workflow after
cluster-network-operator-ovn-secondary-encap-pre with a cross-node Geneve
traffic test that generates traffic between pods on different nodes and verifies
it uses the configured encapsulation IPs. Keep the existing
external_ids:ovn-encap-ip validation unchanged, and fail the validation when
cross-node Geneve traffic cannot be established or observed.
🪄 Autofix

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: 9f29ef11-d5b2-49fe-a075-b29aa1e3f644

📥 Commits

Reviewing files that changed from the base of the PR and between b8ce723 and 4973dfd.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-network-operator/openshift-cluster-network-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (14)
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (13)
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS

@SchSeba

SchSeba commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse --pull=openshift/cluster-network-operator#2998 pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: job(s): --pull=openshift/cluster-network-operator#2998 either don't exist or were not found to be affected, and cannot be rehearsed

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot 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.

♻️ Duplicate comments (1)
ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh (1)

101-105: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Handle a zero-match port count without exiting the validation loop.

At Line 101, grep returns status 1 when no local_ip matches. With pipefail and errexit, the assignment exits the script before Lines 102-105 report the failed count or validate remaining nodes.

This has the same failure mode as the previously fixed command substitutions, but it remains at this count operation. Treat grep status 1 as a zero count. Preserve other grep failures.

Proposed fix
-  local_geneve_ports=$(grep -F "local_ip=\"${expected_ip}\"" "${show_file}" | wc -l | tr -d ' ')
+  if local_geneve_ports=$(grep -Fc -- "local_ip=\"${expected_ip}\"" "${show_file}"); then
+    :
+  else
+    grep_status=$?
+    if [[ "${grep_status}" -eq 1 ]]; then
+      local_geneve_ports=0
+    else
+      echo "unable to count local Geneve ports for node ${node_name}" >&2
+      validation_failed=1
+      continue
+    fi
+  fi

Rehearse a case with no matching local_ip entry. The script should report the node mismatch and continue with the remaining mappings.

🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`
around lines 101 - 105, Update the local_geneve_ports count operation in the
validation loop to treat grep’s status 1 (no matching local_ip) as a zero count,
allowing the existing mismatch reporting and remaining-node validation to
continue. Preserve propagation of other grep failures while retaining the
current count behavior for matches.

Source: Linters/SAST tools

🤖 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.

Duplicate comments:
In
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`:
- Around line 101-105: Update the local_geneve_ports count operation in the
validation loop to treat grep’s status 1 (no matching local_ip) as a zero count,
allowing the existing mismatch reporting and remaining-node validation to
continue. Preserve propagation of other grep failures while retaining the
current count behavior for matches.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 11723d1e-0863-46f1-9d95-38441cc0c4fc

📥 Commits

Reviewing files that changed from the base of the PR and between eb58676 and 0f0798d.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-network-operator/openshift-cluster-network-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (14)
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (12)
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh

@SchSeba

SchSeba commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@SchSeba

SchSeba commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`:
- Line 101: Update the local_geneve_ports count logic in the validation script
to treat grep’s status 1 (no matching interfaces) as a zero count without
triggering pipefail. Preserve handling of successful matches, but detect and
report or propagate other grep failures separately before continuing to the
validation_failed logic.
🪄 Autofix

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: f451a91c-162e-474f-9818-cbe19c73d105

📥 Commits

Reviewing files that changed from the base of the PR and between c4fe56e and ec8c86d.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-network-operator/openshift-cluster-network-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (14)
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (13)
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/OWNERS
  • ci-operator/config/openshift/cluster-network-operator/openshift-cluster-network-operator-master.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.yaml
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/cluster-network-operator-ovn-secondary-encap-workflow.metadata.json
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-ref.metadata.json
  • ci-operator/step-registry/cluster-network-operator/OWNERS
  • ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/pre/cluster-network-operator-ovn-secondary-encap-pre-commands.sh

fi
done < "${mapping_file}"

local_geneve_ports=$(grep -F "local_ip=\"${expected_ip}\"" "${show_file}" | wc -l | tr -d ' ')

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.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Handle a zero-match count without exiting the script.

If no interface has the expected local_ip, grep returns 1. With pipefail enabled, Line 101 exits before Lines 102-105 set validation_failed, so later nodes are not validated. Treat exit status 1 as a count of zero. Handle other grep failures separately.

Proposed fix
-  local_geneve_ports=$(grep -F "local_ip=\"${expected_ip}\"" "${show_file}" | wc -l | tr -d ' ')
+  if local_geneve_ports=$(grep -Fc "local_ip=\"${expected_ip}\"" "${show_file}"); then
+    :
+  else
+    grep_status=$?
+    if [[ "${grep_status}" -eq 1 ]]; then
+      local_geneve_ports=0
+    else
+      echo "unable to count Geneve ports for node ${node_name}" >&2
+      validation_failed=1
+      continue
+    fi
+  fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
local_geneve_ports=$(grep -F "local_ip=\"${expected_ip}\"" "${show_file}" | wc -l | tr -d ' ')
if local_geneve_ports=$(grep -Fc "local_ip=\"${expected_ip}\"" "${show_file}"); then
:
else
grep_status=$?
if [[ "${grep_status}" -eq 1 ]]; then
local_geneve_ports=0
else
echo "unable to count Geneve ports for node ${node_name}" >&2
validation_failed=1
continue
fi
fi
🧰 Tools
🪛 Shellcheck (0.11.0)

[style] 101-101: Consider using 'grep -c' instead of 'grep|wc -l'.

(SC2126)

🤖 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
`@ci-operator/step-registry/cluster-network-operator/ovn/secondary-encap/validate/cluster-network-operator-ovn-secondary-encap-validate-commands.sh`
at line 101, Update the local_geneve_ports count logic in the validation script
to treat grep’s status 1 (no matching interfaces) as a zero count without
triggering pipefail. Preserve handling of successful matches, but detect and
report or propagate other grep failures separately before continuing to the
validation_failed logic.

Source: Linters/SAST tools

@SchSeba

SchSeba commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

Hi @tssurya let me know if we can merge this one to test it on the open PR

@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.

a few questions but nothing major
thanks for working on the e2e @SchSeba !
LGTM, once you reply I can approve this

capabilities:
- intranet
optional: true
run_if_changed: ^bindata\/network\/ovn-kubernetes\/common\/008-script-lib\.yaml$|^bindata\/network\/ovn-kubernetes\/(managed|self-hosted)\/ovnkube-node\.yaml$|^pkg\/network\/ovn_kubernetes_test\.go$

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.

so if any of these files changed in a PR it would auto-run? do we care about unit tests files

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not critical as we don't really run the tests on this lane removing

run_if_changed: ^bindata\/network\/ovn-kubernetes\/common\/008-script-lib\.yaml$|^bindata\/network\/ovn-kubernetes\/(managed|self-hosted)\/ovnkube-node\.yaml$|^pkg\/network\/ovn_kubernetes_test\.go$
steps:
cluster_profile: equinix-ocp-metal
workflow: cluster-network-operator-ovn-secondary-encap

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.

I think we discussed this before? what's the test chain we are running in this lane?
is it chain: baremetalds-ipi-test?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yep that should run the e2e test after we finish the cluster creation and the encap interface move validation

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.

I guess we don't need to restart control plane since the config isn't used there at all?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

right follows the same proceduce that the user will need to make, and there is no need to restart the control-plane

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.

AI suggested:

Line 61 — trailing empty element in readarray: The jsonpath produces a trailing \n, so readarray may capture an empty last element. This would cause the loop at line 69 to process an empty pod_name, which would fail noisily (probably caught by errexit), but it's sloppy. Should use readarray -t ovnkube_pods < <(... | grep -v '^$') or trim.

I'm not bash expert so take it with pinch of salt

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

if there is an error the lane will failed and it will be easy to see the error I don't think we need to complicate this with a grep into it

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.

again AI suggested:

Line 72 — errexit won't catch function failure in a variable assignment: With set -o errexit, secondary_record=$(get_secondary_interface_record ...) will not trigger an exit if the oc exec inside the function fails and the function returns non-zero. This is a well-known bash gotcha: command substitution in an assignment (var=$(cmd)) does not propagate failure under errexit. The explicit -z check on line 74 mitigates this for the "empty output" case, but if oc exec fails with an error message printed to stdout (e.g., "error: pod not found"), that error text would be treated as valid data — secondary_record would be non-empty, and parsing on lines 79-81 would produce garbage values silently.

take with pinch of salt

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not exactly right but I still apply a check for robustness

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.

AI generated:

Line 71 — same errexit gotcha for get_ovnkube_container: If no matching container is found, the function writes to stderr and returns 1, but container_name=$(get_ovnkube_container ...) won't exit the script. The variable would be empty, and the subsequent oc exec with an empty -c "" would fail — but the error message would be confusing rather than the clear one from the function.

take with pinch of salt

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not exactly right but I still apply a check for robustness

Create a baremetal cluster-network-operator workflow that provisions a secondary interface,
injects node-specific OVN_ENCAP_IP overrides, and prints the resolved override mapping
before validating OVS state.

Signed-off-by: Sebastian Sch <sebassch@gmail.com>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@SchSeba

SchSeba commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@SchSeba: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap openshift/cluster-network-operator presubmit Presubmit changed
pull-ci-openshift-cluster-network-operator-master-e2e-aws-ovn-fdp-qe openshift/cluster-network-operator presubmit Ci-operator config changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

capabilities:
- intranet
optional: true
run_if_changed: ^bindata\/network\/ovn-kubernetes\/common\/008-script-lib\.yaml$|^bindata\/network\/ovn-kubernetes\/(managed|self-hosted)\/ovnkube-node\.yaml$

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.

nit: I don't think we have changes in ovnkube-node.yml in your PR but its fine, approving this

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

tssurya commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: SchSeba, tssurya, zeeke

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 Aug 11, 2026
@SchSeba

SchSeba commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@SchSeba: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Aug 11, 2026
@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

@SchSeba: The following test 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/rehearse/openshift/cluster-network-operator/master/e2e-metal-ipi-ovn-secondary-encap 78a0640 link unknown /pj-rehearse pull-ci-openshift-cluster-network-operator-master-e2e-metal-ipi-ovn-secondary-encap

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 5ffa00c into openshift:main Aug 11, 2026
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. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants