Skip to content

E2E: Remove ovs-vswitchd from platform services#1526

Open
mrniranjan wants to merge 1 commit into
openshift:mainfrom
mrniranjan:remove_ovs_switch
Open

E2E: Remove ovs-vswitchd from platform services#1526
mrniranjan wants to merge 1 commit into
openshift:mainfrom
mrniranjan:remove_ovs_switch

Conversation

@mrniranjan
Copy link
Copy Markdown
Contributor

@mrniranjan mrniranjan commented May 28, 2026

ovs-vswitchd will always use all the online cpus
and will not be restricted to reserved cpus even
on schedulabel control plane nodes with workload partition enabled

Summary by CodeRabbit

  • Tests
    • Updated control-plane scheduling test to refine platform services CPU affinity validation by excluding one service from the test scope while maintaining reserved CPU parsing validation.

ovs-vswitchd will always use all the online cpus
and will not be restricted to reserved cpus even
on schedulabel control plane nodes with workload partition
enabled

Signed-off-by: Niranjan M.R <mniranja@redhat.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Walkthrough

The control-plane scheduling test modifies the set of platform services validated for CPU affinity by removing ovs-vswitchd from the platform services list. The test now verifies CPU affinity constraints only for systemd, crio, and kubelet.

Changes

Platform Services CPU Affinity Validation

Layer / File(s) Summary
Platform services validation list
test/e2e/performanceprofile/functests/1_performance/cpu_management.go
The platformServices slice is reduced to exclude ovs-vswitchd, so CPU affinity verification runs only for systemd, crio, and kubelet.

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'E2E: Remove ovs-vswitchd from platform services' directly and clearly summarizes the main change in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All Ginkgo test names are stable with no dynamic values. Test "verify platform services are restricted to reserved cpus" is generic and unchanging.
Test Structure And Quality ✅ Passed Test satisfies all quality requirements: single responsibility, proper setup/cleanup, appropriate 10m timeouts on pod waits, meaningful assertion messages, consistent codebase patterns.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests are added. PR only modifies an existing test's platform services list; check for new test compatibility does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies an existing test, not adding new tests; SNO check only applies to newly added Ginkgo test blocks.
Topology-Aware Scheduling Compatibility ✅ Passed Change is a test-only modification removing ovs-vswitchd from CPU affinity validation; not a deployment manifest, operator code, or controller change.
Ote Binary Stdout Contract ✅ Passed Removes "ovs-vswitchd" string from platformServices list in test-level BeforeAll() block. Not process-level code; no new stdout writes introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR modifies existing test data (removes ovs-vswitchd from a service list), not add new Ginkgo tests. Custom check applies only to new test additions, making it inapplicable here.
No-Weak-Crypto ✅ Passed File contains no weak cryptography, custom crypto implementations, or non-constant-time secret comparisons. The change only modifies a test service list for CPU affinity validation.
Container-Privileges ✅ Passed PR only modifies a Go E2E test file, removing ovs-vswitchd from platformServices list. No container/K8s manifests, Dockerfiles, or privileged configurations present.
No-Sensitive-Data-In-Logs ✅ Passed The test file has 74 logging statements that contain no passwords, tokens, API keys, PII, session IDs, or customer data—only infrastructure metrics and service names.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.12.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/RHsyseng/operator-utils@v1.4.13: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/coreos/go-systemd@v0.0.0-20191104093116-d3cd4ed1dbcf: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/coreos/ignition@v0.35.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/coreos/ignition/v2@v2.26.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/docker/go-units@v0.5.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/go-logr/stdr@v1.2.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt\n\tgithub.com/google/go-cmp@v0.7.0

... [truncated 19340 characters] ...

is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tk8s.io/legacy-cloud-providers: is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tk8s.io/metrics: is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tk8s.io/mount-utils: is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tk8s.io/pod-security-admission: is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tk8s.io/sample-apiserver: is replaced in go.mod, but not marked as replaced in vendor/modules.txt\n\tgithub.com/onsi/ginkgo/v2: is replaced in go.mod, but not marked as replaced 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"


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci openshift-ci Bot requested review from Tal-or and ffromani May 28, 2026 11:32
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 28, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mrniranjan
Once this PR has been reviewed and has the lgtm label, please assign jmencak 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

Copy link
Copy Markdown

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

🧹 Nitpick comments (1)
test/e2e/performanceprofile/functests/1_performance/cpu_management.go (1)

990-990: ⚡ Quick win

Document why ovs-vswitchd is excluded from platform services validation.

The exclusion of ovs-vswitchd from the platform services list should be documented with an inline comment. While the PR description explains that ovs-vswitchd always uses all online CPUs and cannot be restricted to reserved CPUs, this context is not preserved in the code. Future maintainers reviewing this test may question why this service is excluded or attempt to add it back.

📝 Suggested documentation
 
-		platformServices = []string{"systemd", "crio", "kubelet"}
+		// ovs-vswitchd is intentionally excluded because it always uses all online CPUs
+		// and cannot be restricted to reserved CPUs, even on schedulable control plane
+		// nodes with workload partitioning enabled.
+		platformServices = []string{"systemd", "crio", "kubelet"}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/e2e/performanceprofile/functests/1_performance/cpu_management.go` at
line 990, Add an inline comment explaining why "ovs-vswitchd" is omitted from
the platformServices list: update the declaration of platformServices (the
variable holding []string{"systemd", "crio", "kubelet"}) to include a brief
comment that ovs-vswitchd is intentionally excluded because it always uses all
online CPUs and cannot be limited to reserved CPUs, so validating it against
reserved-CPU rules would be incorrect; keep the comment concise and placed
immediately above or inline with the platformServices variable to preserve
context for future maintainers.
🤖 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.

Nitpick comments:
In `@test/e2e/performanceprofile/functests/1_performance/cpu_management.go`:
- Line 990: Add an inline comment explaining why "ovs-vswitchd" is omitted from
the platformServices list: update the declaration of platformServices (the
variable holding []string{"systemd", "crio", "kubelet"}) to include a brief
comment that ovs-vswitchd is intentionally excluded because it always uses all
online CPUs and cannot be limited to reserved CPUs, so validating it against
reserved-CPU rules would be incorrect; keep the comment concise and placed
immediately above or inline with the platformServices variable to preserve
context for future maintainers.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: d2b84e2b-23ab-46b4-aac8-93500aa5d83d

📥 Commits

Reviewing files that changed from the base of the PR and between 30ad005 and 5e54ae9.

📒 Files selected for processing (1)
  • test/e2e/performanceprofile/functests/1_performance/cpu_management.go

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 28, 2026

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

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