Skip to content

gather_ppc: collect per-node ethtool channel data - #562

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

gather_ppc: collect per-node ethtool channel data#562
mrniranjan wants to merge 1 commit into
openshift:mainfrom
mrniranjan:fix_netqueus

Conversation

@mrniranjan

@mrniranjan mrniranjan commented Sep 9, 2026

Copy link
Copy Markdown

Earlier we used to collect ethtool data for only eth0 now extend this to collect data from all the hardware nics

AIA: Primarily AI, New content, Human-initiated, Reviewed, Codex GPT-5.6

Summary by CodeRabbit

  • Bug Fixes
    • Improved per-node PPC diagnostics by collecting Ethernet feature and channel information from the appropriate hardware-backed interfaces.
    • Diagnostics now locate the relevant node-tuning service on each target node, improving data accuracy across nodes.
    • Added a clear fallback message when the required node-tuning service is unavailable instead of collecting potentially misleading data.

Earlier we used to collect ethtool data for only eth0
now extend this to collect data from all the hardware nics

AIA: Primarily AI, New content, Human-initiated, Reviewed, Codex GPT-5.6

Signed-off-by: Niranjan M.R <mniranja@redhat.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 9, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Advanced

Run ID: ffad904a-602f-42c3-8083-058ae29200f2

📥 Commits

Reviewing files that changed from the base of the PR and between 1e5c2ec and e52ab89.

📒 Files selected for processing (2)
  • collection-scripts/gather_ppc
  • collection-scripts/gather_ppc_single_node

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


Walkthrough

Per-node PPC collection now finds a running TuneD pod and passes its details to the single-node collector. The collector gathers EtHTool feature and channel data from hardware-backed interfaces, or records fallback messages when no TuneD pod is available.

Changes

TuneD-backed PPC collection

Layer / File(s) Summary
TuneD pod discovery and invocation
collection-scripts/gather_ppc
The collector defines the TuneD namespace, finds a running TuneD pod on each target node, and passes its name and namespace to gather_ppc_single_node.
TuneD interface EtHTool collection
collection-scripts/gather_ppc_single_node
The single-node collector discovers hardware-backed interfaces in the TuneD pod, collects feature and channel reports, and writes fallback messages when no TuneD pod is available.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to e52ab

The collection now gathers EtHTool feature and channel data from hardware-backed interfaces through TuneD pods, with fallback output when a TuneD pod is unavailable. No concrete current-head merge risk remains.

Sequence Diagram(s)

sequenceDiagram
  participant gather_ppc
  participant KubernetesAPI
  participant gather_ppc_single_node
  participant tuned_pod
  gather_ppc->>KubernetesAPI: Find running TuneD pod on target node
  KubernetesAPI-->>gather_ppc: Return pod name and namespace
  gather_ppc->>gather_ppc_single_node: Pass TuneD pod details
  gather_ppc_single_node->>tuned_pod: Discover hardware-backed interfaces
  gather_ppc_single_node->>tuned_pod: Run ethtool -k and ethtool -l
  tuned_pod-->>gather_ppc_single_node: Return feature and channel reports
Loading

Important

Pre-merge checks failed

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

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The pull request adds a new collection artifact log entry at collection-scripts/gather_ppc_single_node:49: No running TuneD pod found on node ${node}. The node value comes from Kubernetes `.spec… Do not include the node name in the new fallback message. Write a generic message such as No running TuneD pod found to both ethtool report files, or otherwise sanitize the node identifier before logging it.
✅ Passed checks (14 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 main change: collecting per-node ethtool channel data in gather_ppc.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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 PASS. The pull request changes only collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node, both Bash scripts. The diff adds no Ginkgo test declarations or test titles. The dy…
Test Structure And Quality ✅ Passed PASS: The pull request changes only collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node, both Bash scripts. The diff adds no Ginkgo test code, and the repository contains n…
Microshift Test Compatibility ✅ Passed PASS: The pull request changes only the shell scripts collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node. The diff adds no Ginkgo e2e tests or It, Describe, Context,…
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The pull request changes only two shell scripts, collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node. The committed diff adds no Go files and no Ginkgo constructs suc…
Topology-Aware Scheduling Compatibility ✅ Passed PASS. The commit modifies only collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node. Added code discovers a running TuneD pod and runs oc exec for NIC data. It does not ad…
Ote Binary Stdout Contract ✅ Passed PASS: The pull request changes Bash must-gather scripts, not an OTE binary. The repository contains no openshift-tests, Ginkgo suite setup, TestMain, or Go main() implementation. The changed scr…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The pull request changes only collection-scripts/gather_ppc and collection-scripts/gather_ppc_single_node. The diff adds no Ginkgo tests or It, Describe, Context, or When blocks. It …
No-Weak-Crypto ✅ Passed The pull request adds TuneD pod lookup and ethtool collection for hardware-backed interfaces. The exact diff contains no MD5, SHA1, DES, 3DES, RC4, Blowfish, ECB, cryptographic implementation, or se…
Container-Privileges ✅ Passed The pull request does not introduce any listed container privilege setting. The changed lines add TuneD pod lookup and oc exec calls for ethtool; they do not add privileged: true, hostNetwork,…
Full details: No-Sensitive-Data-In-Logs

Explanation

The pull request adds a new collection artifact log entry at collection-scripts/gather_ppc_single_node:49: No running TuneD pod found on node ${node}. The node value comes from Kubernetes .spec.nodeName in gather_ppc, so it may be an internal hostname. The message is written to both ethtool_features and ethtool_channels with tee. This is new exposure caused by the pull request. The ethtool feature and channel output does not itself show passwords, tokens, or API keys.

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

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

@openshift-ci

openshift-ci Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

[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 sferich888 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

@openshift-ci

openshift-ci Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

@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