Skip to content

hypershift: support Minimal control plane availability-zone scheduling - #3150

Open
stevekuznetsov wants to merge 1 commit into
openshift:masterfrom
stevekuznetsov:minimal-zonal-scheduling
Open

hypershift: support Minimal control plane availability-zone scheduling#3150
stevekuznetsov wants to merge 1 commit into
openshift:masterfrom
stevekuznetsov:minimal-zonal-scheduling

Conversation

@stevekuznetsov

Copy link
Copy Markdown
Contributor

When the HostedControlPlane opts into the Minimal control plane availability-zone scheduling policy (spec.controlPlaneAvailabilityZoneScheduling.policy=Minimal), transform the network control-plane operands accordingly:

  • network-node-identity and multus-admission-controller (blocking-webhook backends) stay spread across availability zones as two-replica pairs on the zonal node pools (network-node-identity drops from three replicas to two).
  • ovnkube-control-plane (a leader-elected controller) floats onto the non-zonal overflow node pools.

For each, the zone podAntiAffinity is replaced with topologySpreadConstraints (hard zone spread for zone-critical, best-effort for float; hard host spread for all), the pod is steered onto the correct node pool via the well-known hypershift.openshift.io/control-plane-node-role label (required for zone-critical and hard float placement, preferred for soft float placement), zone-critical pods tolerate the zonal taint, and colocation is scoped per scheduling tier. Parsed from the HostedControlPlane CR; a no-op when the policy is not set.

When the HostedControlPlane opts into the Minimal control plane availability-zone
scheduling policy (spec.controlPlaneAvailabilityZoneScheduling.policy=Minimal),
transform the network control-plane operands accordingly:

- network-node-identity and multus-admission-controller (blocking-webhook backends)
  stay spread across availability zones as two-replica pairs on the zonal node
  pools (network-node-identity drops from three replicas to two).
- ovnkube-control-plane (a leader-elected controller) floats onto the non-zonal
  overflow node pools.

For each, the zone podAntiAffinity is replaced with topologySpreadConstraints
(hard zone spread for zone-critical, best-effort for float; hard host spread for
all), the pod is steered onto the correct node pool via the well-known
hypershift.openshift.io/control-plane-node-role label (required for zone-critical
and hard float placement, preferred for soft float placement), zone-critical pods
tolerate the zonal taint, and colocation is scoped per scheduling tier. Parsed
from the HostedControlPlane CR; a no-op when the policy is not set.

Signed-off-by: Steve Kuznetsov <stekuznetsov@microsoft.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

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: 664ecfea-7f90-4688-a1d2-3ae0930658fc

📥 Commits

Reviewing files that changed from the base of the PR and between af5f01e and 48aabc8.

📒 Files selected for processing (5)
  • pkg/hypershift/hypershift.go
  • pkg/hypershift/hypershift_test.go
  • pkg/network/render.go
  • pkg/network/zonal_scheduling.go
  • pkg/network/zonal_scheduling_test.go

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


Summary by CodeRabbit

  • New Features

    • Added support for configuring control-plane availability-zone scheduling and non-zonal placement.
    • Network control-plane components now apply minimal zone-aware scheduling when configured.
    • Scheduling behavior adjusts replicas, placement rules, tolerations, and topology constraints while preserving existing requirements.
  • Bug Fixes

    • Rendering now reports scheduling configuration errors instead of producing incomplete resources.
  • Tests

    • Added coverage for configured, unset, zonal, overflow, and required non-zonal placement scenarios.

Walkthrough

HyperShift parsing now exposes availability-zone scheduling settings. Network rendering applies Minimal scheduling to eligible control-plane Deployments, including placement, affinity, toleration, replica, and topology changes. Tests cover disabled, zonal, overflow, and required non-zonal modes.

Changes

HyperShift zonal scheduling

Layer / File(s) Summary
Scheduling configuration contract
pkg/hypershift/hypershift.go, pkg/hypershift/hypershift_test.go
Defines scheduling constants and HostedControlPlane fields. Parses and tests the availability-zone scheduling settings.
Deployment scheduling mutations
pkg/network/render.go, pkg/network/zonal_scheduling.go
Applies Minimal scheduling during rendering. Updates eligible Deployments with control-plane tiers, replica limits, node affinity, tolerations, pod affinity, and topology spreading.
Scheduling behavior validation
pkg/network/zonal_scheduling_test.go
Tests disabled-policy behavior, zonal placement, overflow placement, legacy anti-affinity handling, and required non-zonal placement.

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

Merge Risk: ⚪ Minimal · up to 48aab

This change adds opt-in Minimal availability-zone scheduling for HyperShift network control-plane workloads while preserving existing behavior when the policy is unset. The covered placement, spreading, taint, and replica behaviors present no remaining merge-blocking risk.

Sequence Diagram(s)

sequenceDiagram
  participant Render
  participant applyMinimalZonalScheduling
  participant Deployment
  Render->>applyMinimalZonalScheduling: Apply HostedControlPlane scheduling policy
  applyMinimalZonalScheduling->>Deployment: Convert and mutate eligible operands
  applyMinimalZonalScheduling-->>Render: Return updated resources or error
Loading

Suggested reviewers: skitt, tpantelis


Caution

Pre-merge checks failed

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

  • Ignore

❌ Failed checks (4 errors, 3 warnings)

Check name Status Explanation Resolution
Pr Quality ❌ Error The PR is non-trivial and fails the description requirements. The authored description explains what changes, but it has no explicit Why section or motivation, no How to verify/Testing section, and no… Update the PR description with explicit Why, What, and How to verify/Testing sections. In Testing, name the automated CNO CI jobs and the platforms that run them. Add the feature's upgrade and rollback considerations, or explicitly state wh…
Commit Message Quality ❌ Error The PR contains one non-merge commit, 48aabc8, and its changes form one cohesive scheduling feature across the HyperShift and network packages. The subject is descriptive, 70 characters, and uses th… Amend the commit body to state the operational motivation before the implementation summary. For example: explain that zonal HyperShift control planes need network control-plane operands to remain available across availability zones while l…
E2e Tests For Feature Changes ❌ Error The pull request adds user-facing HyperShift behavior. The diff changes pkg/hypershift, pkg/network/render.go, and adds pkg/network/zonal_scheduling.go; Render now applies Minimal scheduling a… Add or modify appropriate files under test/e2e/ for this feature. Add a Testing or How to verify it section to the PR description that names the CI lanes or jobs, lists platform coverage such as HyperShift and the applicable infrastru…
Docs For Feature And Behavior Changes ❌ Error The pull request adds a new CNO-specific HyperShift feature. pkg/network/render.go now changes rendered network control-plane Deployments when `spec.controlPlaneAvailabilityZoneScheduling.policy=Min… Add a new Markdown file under docs/ that documents the Minimal control-plane availability-zone scheduling feature, its HostedControlPlane configuration fields, affected operands, placement and spreading behavior, defaults, and operational…
Docstring Coverage ⚠️ Warning Docstring coverage is 38.46% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Go And Test Code Quality ⚠️ Warning The pull request adds an unwrapped error return in pkg/network/render.go. Render performs substantial rendering work, but the new scheduling error path returns return nil, progressing, err witho… Wrap the scheduling error at the Render boundary, for example: return nil, progressing, fmt.Errorf("failed to apply Minimal zonal scheduling: %w", err). Keep the existing %w wrapping in applyMinimalZonalScheduling.
Test Structure And Quality ⚠️ Warning The new pkg/network/zonal_scheduling_test.go test uses Gomega assertions without meaningful failure messages in many locations. Examples include the conversion assertion at line 60, the scheduling c… Add a meaningful diagnostic message to every newly added Gomega assertion in pkg/network/zonal_scheduling_test.go. Include the operand name and the expected scheduling property, such as replica count, node-role affinity, topology spread m…
✅ Passed checks (17 passed)
Check name Status Explanation
Title check ✅ Passed The title is directly related to the changes. It uses the affected component prefix, states the scheduling feature, uses imperative wording, and is 70 characters long.
Description check ✅ Passed The description directly explains the Minimal control plane availability-zone scheduling behavior, affected operands, placement rules, and no-op behavior.
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.
Unit Tests For Go Changes ✅ Passed PASS. The PR modifies production Go files under pkg/: pkg/hypershift/hypershift.go, pkg/network/render.go, and adds pkg/network/zonal_scheduling.go. It also modifies or adds corresponding Go test file…
Rbac Least Privilege ✅ Passed No RBAC rules changed. The pull-request commit changes only five Go files, and it changes no YAML or YML files under bindata/ or manifests/. Therefore, the wildcard and mutation-access conditions do n…
Stale Project Docs And Config ✅ Passed No stale project documentation or configuration was introduced. The PR only adds HyperShift parsing and scheduling logic in existing pkg/hypershift and pkg/network components; it adds no operand, …
Ai-Generated Code Smell ✅ Passed The changed code does not show any of the four stated smell conditions. The added comments explain scheduling semantics, placement rationale, or public API fields; they do not merely restate simple st…
Stable And Deterministic Test Names ✅ Passed PASS: The pull request adds no Ginkgo tests or Ginkgo title declarations. The new Go t.Run titles are static descriptive strings, and the table-test case name is also a fixed literal. No generated s…
Microshift Test Compatibility ✅ Passed PASS: The pull request adds only standard Go unit tests (TestParseHostedControlPlane and TestApplyMinimalZonalScheduling). The changed tests do not use Ginkgo It, Describe, Context, or `When…
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The pull request adds only Go unit tests using testing.T and Gomega (TestParseHostedControlPlane, TestApplyMinimalZonalScheduling, and t.Run subtests). It adds no Ginkgo e2e tests such a…
Topology-Aware Scheduling Compatibility ✅ Passed PASS. The new constraints are opt-in and HyperShift-specific. applyMinimalZonalScheduling returns without changes unless a HostedControlPlane has policy=Minimal; GetHostedControlPlane returns …
Ote Binary Stdout Contract ✅ Passed PASS. The pull request adds no main, init, TestMain, or Ginkgo suite setup code. The added and changed lines contain no stdout writes, logging calls, os.Stdout use, or Ginkgo output. The new `…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The pull request adds only Go unit tests: TestParseHostedControlPlane and TestApplyMinimalZonalScheduling using testing and Gomega. It adds no Ginkgo It, Describe, Context, or similar e2e …
No-Weak-Crypto ✅ Passed No weak cryptography or custom cryptographic implementation was introduced. The changed files add scheduling and parsing logic only. The existing crypto/sha256 use in pkg/network/render.go is unch…
Container-Privileges ✅ Passed PASS: The pull request adds Go parsing and scheduling logic plus tests. It does not add or change container/Kubernetes security settings. The changed additions contain no privileged, hostPID, `hos…
No-Sensitive-Data-In-Logs ✅ Passed The pull request adds no logging calls and does not add any log or diagnostic output containing passwords, tokens, API keys, PII, session IDs, hostnames, or customer data. The new errors contain only …
Full details: Pr Quality

Explanation

The PR is non-trivial and fails the description requirements. The authored description explains what changes, but it has no explicit Why section or motivation, no How to verify/Testing section, and no automated CNO CI jobs or target platforms. It describes the user-facing scheduling behavior, but it does not state upgrade or rollback considerations. The size criterion passes: the diff is 464 lines across five related files, well below 7,000 lines. The bug-fix criterion is not applicable because this is a feature.

Resolution

Update the PR description with explicit Why, What, and How to verify/Testing sections. In Testing, name the automated CNO CI jobs and the platforms that run them. Add the feature's upgrade and rollback considerations, or explicitly state why none apply.

Full details: Commit Message Quality

Explanation

The PR contains one non-merge commit, 48aabc8, and its changes form one cohesive scheduling feature across the HyperShift and network packages. The subject is descriptive, 70 characters, and uses the established hypershift: scope. The body is present, but it only describes the opt-in behavior and implementation results; it does not explain why the change is needed. No generic subject or merge commit is present.

Resolution

Amend the commit body to state the operational motivation before the implementation summary. For example: explain that zonal HyperShift control planes need network control-plane operands to remain available across availability zones while leader-elected control-plane components use overflow capacity, and that the Minimal policy provides this placement behavior. Retain a shorter high-level summary of the resulting changes.

Full details: Unit Tests For Go Changes

Explanation

PASS. The PR modifies production Go files under pkg/: pkg/hypershift/hypershift.go, pkg/network/render.go, and adds pkg/network/zonal_scheduling.go. It also modifies or adds corresponding Go test files: pkg/hypershift/hypershift_test.go and pkg/network/zonal_scheduling_test.go. No bindata templates changed.

Full details: E2e Tests For Feature Changes

Explanation

The pull request adds user-facing HyperShift behavior. The diff changes pkg/hypershift, pkg/network/render.go, and adds pkg/network/zonal_scheduling.go; Render now applies Minimal scheduling and mutates network control-plane Deployments. No files under test/e2e/ are changed. The supplied PR description has no Testing or How to verify it section and does not state CI lanes, platform coverage, or test results. The added tests are unit tests under pkg/, not E2E tests.

Resolution

Add or modify appropriate files under test/e2e/ for this feature. Add a Testing or How to verify it section to the PR description that names the CI lanes or jobs, lists platform coverage such as HyperShift and the applicable infrastructure platforms, and states whether the tests passed. If E2E coverage is genuinely not feasible, document the justification in that section and, after all other pre-merge checks are addressed, use @coderabbitai ignore pre-merge checks to override.

Full details: Rbac Least Privilege

Explanation

No RBAC rules changed. The pull-request commit changes only five Go files, and it changes no YAML or YML files under bindata/ or manifests/. Therefore, the wildcard and mutation-access conditions do not apply.

Full details: Docs For Feature And Behavior Changes

Explanation

The pull request adds a new CNO-specific HyperShift feature. pkg/network/render.go now changes rendered network control-plane Deployments when spec.controlPlaneAvailabilityZoneScheduling.policy=Minimal, and pkg/network/zonal_scheduling.go changes replicas, placement, tolerations, affinity, and topology spreading. The committed diff contains no files under docs/, and no new feature markdown file was added.

Resolution

Add a new Markdown file under docs/ that documents the Minimal control-plane availability-zone scheduling feature, its HostedControlPlane configuration fields, affected operands, placement and spreading behavior, defaults, and operational considerations. If documentation is genuinely not required, explain why in the PR description and use @coderabbitai ignore pre-merge checks to override.

Full details: Stale Project Docs And Config

Explanation

No stale project documentation or configuration was introduced. The PR only adds HyperShift parsing and scheduling logic in existing pkg/hypershift and pkg/network components; it adds no operand, path, rename, deletion, CRD, flag, binary, or DPU/DPF mode change. All referenced paths in .coderabbit.yaml remain present. Existing docs/operands.md, docs/architecture.md, and docs/ovn_node_mode.md contain no statements contradicted by the new optional HyperShift scheduling behavior.

Full details: Go And Test Code Quality

Explanation

The pull request adds an unwrapped error return in pkg/network/render.go. Render performs substantial rendering work, but the new scheduling error path returns return nil, progressing, err without adding context. The called applyMinimalZonalScheduling function can return conversion errors, so the new path matches the bare error-return condition. The added conversion errors themselves use contextual fmt.Errorf with %w. No new logging, duration, test t.Fatal, time.Sleep, os.Setenv, IPv4-only, or concurrent map/slice issue was found.

Full details: Ai-Generated Code Smell

Explanation

The changed code does not show any of the four stated smell conditions. The added comments explain scheduling semantics, placement rationale, or public API fields; they do not merely restate simple statements. The 202 added test lines cover the new parser and scheduling implementation, so they are proportional and related. A search found no AI-tool, prompt, or generation references. The implementation uses intermediate values and checks for distinct Kubernetes structures and conversion/error paths, not redundant copy-paste logic.

Full details: Stable And Deterministic Test Names

Explanation

PASS: The pull request adds no Ginkgo tests or Ginkgo title declarations. The new Go t.Run titles are static descriptive strings, and the table-test case name is also a fixed literal. No generated suffixes, timestamps, UUIDs, node names, random namespaces, IP addresses, or other run-dependent values occur in the added titles.

Full details: Test Structure And Quality

Explanation

The new pkg/network/zonal_scheduling_test.go test uses Gomega assertions without meaningful failure messages in many locations. Examples include the conversion assertion at line 60, the scheduling call at line 114, and the scheduling-property assertions at lines 116, 126, 128, 130, 133-136, 145, 149, 155-165, and 173. These failures would not identify which scheduling rule failed. The tests use in-memory objects only, so the setup/cleanup and timeout requirements do not apply. The t.Run cases cover related aspects of one scheduling behavior and do not assert unrelated behaviors. The changed tests also use testing.T with Gomega rather than cluster operations or Ginkgo waits.

Resolution

Add a meaningful diagnostic message to every newly added Gomega assertion in pkg/network/zonal_scheduling_test.go. Include the operand name and the expected scheduling property, such as replica count, node-role affinity, topology spread mode, toleration, or tier-scoped colocation. Add a message to the conversion assertion that identifies the operand being converted.

Full details: Microshift Test Compatibility

Explanation

PASS: The pull request adds only standard Go unit tests (TestParseHostedControlPlane and TestApplyMinimalZonalScheduling). The changed tests do not use Ginkgo It, Describe, Context, or When, and they do not run as MicroShift e2e tests. They exercise local parsing and Kubernetes Deployment objects without referencing an unavailable MicroShift OpenShift API, namespace, or unsupported cluster assumption.

Full details: Single Node Openshift (Sno) Test Compatibility

Explanation

PASS: The pull request adds only Go unit tests using testing.T and Gomega (TestParseHostedControlPlane, TestApplyMinimalZonalScheduling, and t.Run subtests). It adds no Ginkgo e2e tests such as It(), Describe(), Context(), or When(). Therefore the SNO multi-node compatibility check does not apply.

Full details: Topology-Aware Scheduling Compatibility

Explanation

PASS. The new constraints are opt-in and HyperShift-specific. applyMinimalZonalScheduling returns without changes unless a HostedControlPlane has policy=Minimal; GetHostedControlPlane returns nil when HyperShift is disabled, and the existing render path identifies HyperShift with ControlPlaneTopology=External. Therefore the new hostname DoNotSchedule spread constraint does not apply to SNO, TNF, or TNA standalone topologies. The changed code does not add master or control-plane selectors, worker-only selectors, PDBs, wildcard arbiter tolerations, or node-count-derived replicas. Existing affected Deployments use maxUnavailable: 1, and the new code removes the zone anti-affinity before adding spread constraints.

Full details: Ote Binary Stdout Contract

Explanation

PASS. The pull request adds no main, init, TestMain, or Ginkgo suite setup code. The added and changed lines contain no stdout writes, logging calls, os.Stdout use, or Ginkgo output. The new Render call only mutates resources and returns errors. Existing log.Printf calls in Render are unchanged and use Go's default stderr logger.

Full details: Ipv6 And Disconnected Network Test Compatibility

Explanation

The pull request adds only Go unit tests: TestParseHostedControlPlane and TestApplyMinimalZonalScheduling using testing and Gomega. It adds no Ginkgo It, Describe, Context, or similar e2e test. The tests create in-memory Kubernetes objects and do not use IPv4-only assumptions or external connectivity. The kubernetes.default.svc URL is cluster-internal and appears only as manifest data.

Full details: No-Weak-Crypto

Explanation

No weak cryptography or custom cryptographic implementation was introduced. The changed files add scheduling and parsing logic only. The existing crypto/sha256 use in pkg/network/render.go is unchanged and is not covered by the check. No secret or token comparisons were added.

Full details: Container-Privileges

Explanation

PASS: The pull request adds Go parsing and scheduling logic plus tests. It does not add or change container/Kubernetes security settings. The changed additions contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root-execution fields. Existing operand security settings are unchanged.

Full details: No-Sensitive-Data-In-Logs

Explanation

The pull request adds no logging calls and does not add any log or diagnostic output containing passwords, tokens, API keys, PII, session IDs, hostnames, or customer data. The new errors contain only fixed field names, conversion context, and the matched Deployment name (network-node-identity, multus-admission-controller, or ovnkube-control-plane). The existing render error log is unchanged.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Some tools did not complete. Review the errors below.

🔧 golangci-lint (2.13.2)

level=error msg="Running error: context loading failed: failed to load packages: failed to load packages: failed to load with go/packages: err: exit status 1: stderr: go: inconsistent vendoring in :\n\tgithub.com/Masterminds/semver@v1.5.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/Masterminds/sprig/v3@v3.2.3: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/containernetworking/cni@v1.3.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/ghodss/yaml@v1.0.1-0.20190212211648-25d852aebe32: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/go-bindata/go-bindata@v3.1.2+incompatible: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/onsi/gomega@v1.40.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/ope

... [truncated 17689 characters] ...

e0dc3: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tk8s.io/kms@v0.36.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tk8s.io/kube-aggregator@v0.36.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tk8s.io/streaming@v0.36.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tsigs.k8s.io/randfill@v1.0.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tsigs.k8s.io/structured-merge-diff/v6@v6.4.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\n\tTo ignore the vendor directory, use -mod=readonly or -mod=mod.\n\tTo sync the vendor directory, run:\n\t\tgo mod vendor\n"


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

@openshift-ci

openshift-ci Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@stevekuznetsov

Copy link
Copy Markdown
Contributor Author

/pipeline required

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-ovn-upgrade-ipsec

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-ovn-fdp-qe
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-upgrade
/test e2e-aws-ovn-windows
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-dualstack-bgp
/test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
/test e2e-metal-ipi-ovn-ipv6
/test e2e-metal-ipi-ovn-ipv6-ipsec
/test e2e-ovn-ipsec-step-registry
/test hypershift-e2e-aks

@openshift-ci

openshift-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@stevekuznetsov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/5.1-upgrade-from-stable-5.0-e2e-aws-ovn-upgrade 48aabc8 link false /test 5.1-upgrade-from-stable-5.0-e2e-aws-ovn-upgrade
ci/prow/5.1-upgrade-from-stable-5.0-e2e-gcp-ovn-upgrade 48aabc8 link false /test 5.1-upgrade-from-stable-5.0-e2e-gcp-ovn-upgrade
ci/prow/e2e-metal-ipi-ovn-dualstack-bgp 48aabc8 link true /test e2e-metal-ipi-ovn-dualstack-bgp
ci/prow/verify-deps 48aabc8 link true /test verify-deps
ci/prow/e2e-aws-ovn-fdp-qe 48aabc8 link true /test e2e-aws-ovn-fdp-qe
ci/prow/okd-scos-images 48aabc8 link true /test okd-scos-images
ci/prow/e2e-aws-ovn-hypershift-conformance 48aabc8 link true /test e2e-aws-ovn-hypershift-conformance
ci/prow/e2e-metal-ipi-ovn-ipv6-ipsec 48aabc8 link true /test e2e-metal-ipi-ovn-ipv6-ipsec
ci/prow/e2e-gcp-ovn 48aabc8 link true /test e2e-gcp-ovn

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant