Skip to content

NE-2498: add new DCM e2e tests#30741

Open
jcmoraisjr wants to merge 1 commit intoopenshift:mainfrom
jcmoraisjr:NE-906-add-dcm-e2e-tests
Open

NE-2498: add new DCM e2e tests#30741
jcmoraisjr wants to merge 1 commit intoopenshift:mainfrom
jcmoraisjr:NE-906-add-dcm-e2e-tests

Conversation

@jcmoraisjr
Copy link
Member

@jcmoraisjr jcmoraisjr commented Jan 30, 2026

Improves DCM coverage by adding new e2e tests.

  • Dynamically add new routes, beyond the number of predefined blueprint backends, and ensures the responsiveness of the new routes.
  • Dynamically add new replicas to the exposed services, beyond the number of predefined blueprint backend servers, and ensures the responsiveness of the new replicas.
  • Explore URL overlapping and ensure that the request goes to the correct backend.

Jira: https://issues.redhat.com/browse/NE-2498

@openshift-ci-robot
Copy link

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

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 30, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 30, 2026

@jcmoraisjr: This pull request references NE-906 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Jira: https://issues.redhat.com/browse/NE-906

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested review from candita and knobunc January 30, 2026 12:52
@openshift-ci-robot
Copy link

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
Copy link

openshift-trt bot commented Jan 30, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: 302e553

  • "[Jira:"Cluster Version Operator"] cluster-version-operator-tests should support passing serial tests [Serial]" [Total: 2, Pass: 2, Fail: 0, Flake: 0]

@alebedev87
Copy link
Contributor

/assign @davidesalerno

@alebedev87
Copy link
Contributor

/assign
/assign @gcs278

@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 4, 2026

@jcmoraisjr: This pull request references NE-906 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Improves DCM coverage by adding new e2e tests.

  • Dynamically add new routes, beyond the number of predefined blueprint backends, and ensures the responsiveness of the new routes.
  • Dynamically add new replicas to the exposed services, beyond the number of predefined blueprint backend servers, and ensures the responsiveness of the new replicas.
  • Explore URL overlapping and ensure that the request goes to the correct backend.

Jira: https://issues.redhat.com/browse/NE-906

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.

@jcmoraisjr jcmoraisjr force-pushed the NE-906-add-dcm-e2e-tests branch from 302e553 to 0712389 Compare February 27, 2026 20:19
@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Review skipped — only excluded labels are configured. (1)
  • do-not-merge/work-in-progress

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

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f8c539f1-499b-4b33-b75f-872e9e7a23cc

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Walkthrough

Added router concurrency tuning, extensive test fixture expansion, new helper functions, and replaced the single HAProxy router test with multiple It cases exercising dynamic route capacity, replica scaling, overlapping-path precedence, and sequential route operations.

Changes

Cohort / File(s) Summary
Primary test file & env/consts
test/extended/router/config_manager.go
Introduced concurrency tuning constants (ROUTER_BLUEPRINT_ROUTE_POOL_SIZE, ROUTER_MAX_DYNAMIC_SERVERS, derived NUM_CONCURRENT_SERVICES, NUM_CONCURRENT_REPLICAS) and injects them as env vars into router pods.
Fixtures, helpers & test scenarios
test/extended/router/config_manager.go
Expanded fixtures: created per-index endpoint Pods/services and replica endpoint Pods/services. Added helpers (createExecPod, waitForRouter, createRoute, readURL, routeType/constants) and refactored test flow into multiple It(...) cases covering sequential route creation, replica label patching, overlapping-path routing checks, and a refactored mini-stress test.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 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 Test code has multiple quality issues: error from createRoute() on line 721 is not checked before being overwritten, assertions lack descriptive messages, no cleanup mechanism for created resources, and potential test isolation violations. Add immediate assertions after error-producing function calls, include descriptive messages in all Expect statements, implement AfterEach cleanup blocks for test resources, and ensure each test block validates only one specific behavior.
✅ Passed checks (3 passed)
Check name Status Explanation
Stable And Deterministic Test Names ✅ Passed All test names in the modified test file are static string literals with no dynamic information like timestamps, UUIDs, pod names, or other values that could change between test runs.
Title check ✅ Passed The title 'NE-2498: add new DCM e2e tests' directly summarizes the main change: adding new end-to-end tests for DCM (Dynamic Cluster Management), which aligns with the changeset's purpose and primary modifications.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ 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-robot
Copy link

openshift-ci-robot commented Feb 27, 2026

@jcmoraisjr: This pull request references NE-906 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Improves DCM coverage by adding new e2e tests.

  • Dynamically add new routes, beyond the number of predefined blueprint backends, and ensures the responsiveness of the new routes.
  • Dynamically add new replicas to the exposed services, beyond the number of predefined blueprint backend servers, and ensures the responsiveness of the new replicas.
  • Explore URL overlapping and ensure that the request goes to the correct backend.

Jira: https://issues.redhat.com/browse/NE-906

Summary by CodeRabbit

  • Tests
  • Expanded test coverage for dynamic router configuration scenarios with additional concurrent services and replica scaling
  • Added comprehensive test flows to validate router behavior under capacity and overlapping route configurations
  • Introduced supporting test utilities for route management and health checks

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
test/extended/router/config_manager.go (1)

820-827: ⚠️ Potential issue | 🟡 Minor

Normalize readURL output before returning.

RunHostCmd output may include trailing whitespace/newlines, which can make exact hostname comparisons flaky. Trim before returning.

Proposed fix
 func readURL(ns, execPodName, host, abspath, ipaddr string) (string, error) {
 	host = exutil.IPUrl(host)
 	proto := "http"
 	port := 80
 	uri := fmt.Sprintf("%s://%s:%d%s", proto, host, port, abspath)
 	cmd := fmt.Sprintf("curl -ksfL -m 5 --resolve %s:%d:%s %q", host, port, ipaddr, uri)
-	return e2eoutput.RunHostCmd(ns, execPodName, cmd)
+	output, err := e2eoutput.RunHostCmd(ns, execPodName, cmd)
+	if err != nil {
+		return "", err
+	}
+	return strings.TrimSpace(output), nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/router/config_manager.go` around lines 820 - 827, The readURL
function returns raw output from e2eoutput.RunHostCmd which can include trailing
whitespace/newlines; update readURL (function name: readURL) to trim the
returned string (use strings.TrimSpace) before returning to avoid flaky hostname
comparisons, and add the strings import if missing; keep the same signature and
error handling but return the trimmed output and the existing error.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/extended/router/config_manager.go`:
- Around line 721-724: The error returned by createRoute(oc, routeTypeInsecure,
name, "insecure-service", hostName, "/") is being overwritten by the subsequent
call to waitForRouteToRespond; immediately check/assert the err from createRoute
(the variable err) right after createRoute returns (using the same test
assertion mechanism o.Expect(err).NotTo(o.HaveOccurred())), and only then call
waitForRouteToRespond, assigning its error to err for the second assertion; this
ensures failures in createRoute (referenced by createRoute, err, oc, name,
hostName) are not masked.

---

Duplicate comments:
In `@test/extended/router/config_manager.go`:
- Around line 820-827: The readURL function returns raw output from
e2eoutput.RunHostCmd which can include trailing whitespace/newlines; update
readURL (function name: readURL) to trim the returned string (use
strings.TrimSpace) before returning to avoid flaky hostname comparisons, and add
the strings import if missing; keep the same signature and error handling but
return the trimmed output and the existing error.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 3c4136c and 0712389.

📒 Files selected for processing (1)
  • test/extended/router/config_manager.go

@jcmoraisjr jcmoraisjr changed the title NE-906: add new DCM e2e tests NE-2498: add new DCM e2e tests Feb 27, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 27, 2026

@jcmoraisjr: This pull request references NE-2498 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Improves DCM coverage by adding new e2e tests.

  • Dynamically add new routes, beyond the number of predefined blueprint backends, and ensures the responsiveness of the new routes.
  • Dynamically add new replicas to the exposed services, beyond the number of predefined blueprint backend servers, and ensures the responsiveness of the new replicas.
  • Explore URL overlapping and ensure that the request goes to the correct backend.

Jira: https://issues.redhat.com/browse/NE-906

Summary by CodeRabbit

  • Tests
  • Expanded test coverage for dynamic router configuration scenarios with additional concurrent services and replica scaling
  • Added comprehensive test flows to validate router behavior under capacity and overlapping route configurations
  • Introduced supporting test utilities for route management and health checks

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 27, 2026

@jcmoraisjr: This pull request references NE-2498 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Improves DCM coverage by adding new e2e tests.

  • Dynamically add new routes, beyond the number of predefined blueprint backends, and ensures the responsiveness of the new routes.
  • Dynamically add new replicas to the exposed services, beyond the number of predefined blueprint backend servers, and ensures the responsiveness of the new replicas.
  • Explore URL overlapping and ensure that the request goes to the correct backend.

Jira: https://issues.redhat.com/browse/NE-2498

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link

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
Copy link

openshift-trt bot commented Feb 28, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: 0712389

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-aws-ovn-fips High - "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-gcp-ovn High - "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" is a new test that failed 1 time(s) against the current commit
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High - "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" is a new test that failed 1 time(s) against the current commit

New tests seen in this PR at sha: 0712389

  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add replicas beyond the number of blueprint slots per backend [Suite:openshift/conformance/parallel]" [Total: 3, Pass: 3, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add routes beyond the number of blueprint backends [Suite:openshift/conformance/parallel]" [Total: 3, Pass: 3, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" [Total: 3, Pass: 0, Fail: 3, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should serve the correct routes [Suite:openshift/conformance/parallel]" [Total: 3, Pass: 3, Fail: 0, Flake: 0]

@jcmoraisjr
Copy link
Member Author

/cc @Thealisyed

Copy link
Contributor

@gcs278 gcs278 left a comment

Choose a reason for hiding this comment

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

Overall looks great. I'm actually surprised that we don't have more DCM E2E coverage, so I think this is a great improvement to our existing.

No major issues, mostly some ideas and questions. Generally LGTM.

@jcmoraisjr jcmoraisjr force-pushed the NE-906-add-dcm-e2e-tests branch from 0712389 to c35a43a Compare March 16, 2026 13:52
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 16, 2026
@jcmoraisjr
Copy link
Member Author

Tests should be failing with the current codebase, it needs either openshift/router#738 or openshift/router#739 as part of the router image to succeed. They both are already merged, so I'll try a retest in a while, or as soon as I observed any of them being part of the nightly build.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/extended/router/config_manager.go`:
- Around line 691-726: The test currently only verifies exact paths, which can
miss prefix-order bugs; update the test in the "should not conflict overlapping
route configurations" case to also probe a descendant path (e.g.
"/api/v1/subcommand") after creating the "/api/v1" route by calling readURL for
that descendant and asserting it routes to the "/api/v1" endpointName
(endpointName for i where path == "/api/v1"); place this extra check inside the
same Eventually block (or directly after the existing check for "/api/v1") so
failures surface the prefix-matching bug while still using createRoute and
readURL helpers.
- Around line 662-687: The test currently only checks for N distinct hostnames
(using allBackendServers.Len() == expectedBackendServersCount) which can pass if
DCM returns stale or wrong pods; update the logic to build the expected pod name
set from NUM_CONCURRENT_REPLICAS (use the same podName format
"insecure-concurrent-endpoint-replicas-%d") and in the wait callback call
readURL and assert each returned hostname is a member of that expected set
before inserting into allBackendServers; finish only when allBackendServers
equals the expected pod set (not just cardinality) so functions/vars to touch
are NUM_CONCURRENT_REPLICAS, podName generation, readURL call, allBackendServers
and expectedBackendServersCount.
- Around line 623-645: The test currently only verifies HTTP 200 via
waitForRouteToRespond so it can miss routes wired to the wrong backend; update
the check to assert the actual backend by validating the response body contains
the expected backend identifier (e.g. the serve-hostname output or the
serviceName/hostName). Either extend waitForRouteToRespond to accept an expected
body string or add a new helper (e.g. waitForRouteToRespondWithBody) and call it
in both the creation loop and the verification loop using the per-iteration
serviceName/hostName (from createRoute) so each route's response is asserted to
come from its dedicated backend.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b7c894dc-cfd3-425e-8120-c4714ac6f600

📥 Commits

Reviewing files that changed from the base of the PR and between 0712389 and c35a43a.

📒 Files selected for processing (1)
  • test/extended/router/config_manager.go

@openshift-ci-robot
Copy link

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
Copy link

openshift-trt bot commented Mar 16, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: c35a43a

  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add replicas beyond the number of empty slots per backend [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add routes beyond the number of blueprint backends [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should serve the correct routes [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]

@jcmoraisjr jcmoraisjr force-pushed the NE-906-add-dcm-e2e-tests branch from c35a43a to b917a75 Compare March 18, 2026 17:16
@openshift-ci-robot
Copy link

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

@ShudiLi
Copy link
Member

ShudiLi commented Mar 19, 2026

/test e2e-aws-ovn-fips

@ShudiLi
Copy link
Member

ShudiLi commented Mar 19, 2026

/test e2e-aws-ovn-serial-2of2

@ShudiLi
Copy link
Member

ShudiLi commented Mar 19, 2026

/verified by ci/prow

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

@ShudiLi: This PR has been marked as verified by ci/prow.

Details

In response to this:

/verified by ci/prow

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.

@jcmoraisjr jcmoraisjr force-pushed the NE-906-add-dcm-e2e-tests branch from b917a75 to 5b03840 Compare March 19, 2026 11:25
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Mar 19, 2026
@openshift-ci-robot
Copy link

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

@jcmoraisjr
Copy link
Member Author

/retest

@ShudiLi
Copy link
Member

ShudiLi commented Mar 20, 2026

/verified by ci/prow

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

@ShudiLi: This PR has been marked as verified by ci/prow.

Details

In response to this:

/verified by ci/prow

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-trt
Copy link

openshift-trt bot commented Mar 20, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: 5b03840

  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add replicas beyond the number of empty slots per backend [Suite:openshift/conformance/parallel]" [Total: 6, Pass: 6, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should add routes beyond the number of blueprint backends [Suite:openshift/conformance/parallel]" [Total: 6, Pass: 6, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" [Total: 6, Pass: 6, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router with Dynamic Config Manager should serve the correct routes [Suite:openshift/conformance/parallel]" [Total: 6, Pass: 6, Fail: 0, Flake: 0]

Adding new tests exploring user experience when DCM is enabled. They
were planned based on misbehavior found during manual exploratory tests.
The only test before this update is preserved, parts of it were
extracted for reuse, which explains the somewhat big change.

A number of testing pods and related services are being added
representing two distinct sort of test:

* several pods under the same service are used for scale in/out tests
* several pods and their own 1:1 service are used for overlapping route
  tests

https://redhat.atlassian.net/browse/NE-2498
@jcmoraisjr jcmoraisjr force-pushed the NE-906-add-dcm-e2e-tests branch from 5b03840 to 0cde7d0 Compare March 20, 2026 17:53
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Mar 20, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
test/extended/router/config_manager.go (1)

784-790: Consider aligning with the established CreateExecPodOrFail usage pattern.

Other router tests (scoped.go, weighted.go, headers.go) call exutil.CreateExecPodOrFail directly without the wrapper. While the cleanup function pattern is convenient, the inconsistency may cause confusion when maintaining the router test suite.

This is a minor consistency observation — the current implementation works correctly.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/router/config_manager.go` around lines 784 - 790, The helper
createExecPod wraps exutil.CreateExecPodOrFail and returns a cleanup func, which
is inconsistent with other router tests (scoped.go, weighted.go, headers.go)
that call exutil.CreateExecPodOrFail directly; remove this wrapper and update
callers to call exutil.CreateExecPodOrFail(oc.AdminKubeClient(), ns, "execpod")
inline (using the same ns retrieval as in createExecPod) and perform cleanup
using the established pattern those tests use (i.e., delete the pod directly
where needed) so usage is consistent across the router test suite.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@test/extended/router/config_manager.go`:
- Around line 784-790: The helper createExecPod wraps exutil.CreateExecPodOrFail
and returns a cleanup func, which is inconsistent with other router tests
(scoped.go, weighted.go, headers.go) that call exutil.CreateExecPodOrFail
directly; remove this wrapper and update callers to call
exutil.CreateExecPodOrFail(oc.AdminKubeClient(), ns, "execpod") inline (using
the same ns retrieval as in createExecPod) and perform cleanup using the
established pattern those tests use (i.e., delete the pod directly where needed)
so usage is consistent across the router test suite.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bb197884-2842-4459-b42e-78f902bd1309

📥 Commits

Reviewing files that changed from the base of the PR and between 5b03840 and 0cde7d0.

📒 Files selected for processing (1)
  • test/extended/router/config_manager.go

@openshift-ci-robot
Copy link

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

@gcs278
Copy link
Contributor

gcs278 commented Mar 20, 2026

I think this is a great start - I know we have a lot more to cover for dynamic config manager (especially with openshift/api#2757), but I think this is the right direction to add coverage to our existing tests.

/lgtm

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

openshift-ci bot commented Mar 20, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gcs278, jcmoraisjr

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
Copy link
Contributor

openshift-ci bot commented Mar 20, 2026

@jcmoraisjr: 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-trt
Copy link

openshift-trt bot commented Mar 21, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: 0cde7d0

  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router should add replicas beyond the number of empty slots per backend [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router should add routes beyond the number of blueprint backends [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]
  • "[sig-network][Feature:Router][apigroup:route.openshift.io] The HAProxy router should not conflict overlapping route configurations [Suite:openshift/conformance/parallel]" [Total: 5, Pass: 5, Fail: 0, Flake: 0]

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-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants