Skip to content

feat(engine/nfd): publish topology as NFD custom resources#402

Open
dmitsh wants to merge 1 commit into
mainfrom
ds-do-nfd
Open

feat(engine/nfd): publish topology as NFD custom resources#402
dmitsh wants to merge 1 commit into
mainfrom
ds-do-nfd

Conversation

@dmitsh

@dmitsh dmitsh commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Add an NFD engine that translates the canonical topology graph into
NodeFeature and NodeFeatureGroup resources.

Publish accelerator, leaf, spine, and core topology attributes, including the
system node name required for NFD to populate group membership. Support node
selection, namespaced NFD installations, stale-resource cleanup, and existing
GPU clique labels.

@dmitsh dmitsh requested a review from ravisoundar as a code owner July 14, 2026 09:39
@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds an NFD engine that publishes topology through Node Feature Discovery resources. The main changes are:

  • New NFD engine implementation and registry wiring.
  • NFD NodeFeature and NodeFeatureGroup object generation.
  • Helm schema, values, docs, and RBAC support for engine.name=nfd.
  • Tests for NFD object creation, cleanup, and RBAC rendering.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • The NFD RBAC rule now uses the documented engine.name=nfd value path.
  • The Helm test covers the expected NFD custom-resource permissions for that value.

Important Files Changed

Filename Overview
charts/topograph/templates/rbac.yaml Adds NFD custom-resource permissions when engine.name is nfd.
charts/topograph/tests/rbac_test.yaml Adds a Helm test for the NFD RBAC rule.
pkg/engines/nfd/objects.go Builds and applies NFD custom resources for topology data.

Reviews (5): Last reviewed commit: "feat(engine/nfd): publish topology as NF..." | Re-trigger Greptile

Comment thread charts/topograph/templates/rbac.yaml Outdated
@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 69.01840% with 101 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.83%. Comparing base (8468abe) to head (83c9ddf).
⚠️ Report is 18 commits behind head on main.

Files with missing lines Patch % Lines
pkg/engines/nfd/engine.go 25.92% 34 Missing and 6 partials ⚠️
pkg/engines/nfd/objects.go 86.72% 16 Missing and 14 partials ⚠️
pkg/engines/nfd/kubernetes.go 0.00% 25 Missing ⚠️
pkg/engines/k8s/labeler.go 71.42% 4 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #402      +/-   ##
==========================================
+ Coverage   72.15%   72.83%   +0.67%     
==========================================
  Files          89       94       +5     
  Lines        5689     6235     +546     
==========================================
+ Hits         4105     4541     +436     
- Misses       1382     1461      +79     
- Partials      202      233      +31     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

Copy link
Copy Markdown
Contributor

@dmitsh dmitsh force-pushed the ds-do-nfd branch 2 times, most recently from 5493077 to 45b9d3c Compare July 14, 2026 14:02
Signed-off-by: Dmitry Shmulevich <dshmulevich@nvidia.com>
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