Skip to content

feat(node-agent): Mokka Node Agent NVLink simulator - #750

Open
roma-glushko wants to merge 7 commits into
mainfrom
node-agent-nvlink
Open

feat(node-agent): Mokka Node Agent NVLink simulator#750
roma-glushko wants to merge 7 commits into
mainfrom
node-agent-nvlink

Conversation

@roma-glushko

@roma-glushko roma-glushko commented Aug 28, 2026

Copy link
Copy Markdown
Member

What This PR Does

Ported NVLink simulator.

Since it's just contains of moving one topology.yaml file under the proper location we may find a better place for this code potentially completely eliminating NVLink as a simulator. However, for now, for the sake of compliance with the existing logic, we keep it as a simulator.

Why

A part of MEP0003.

Checklist

  • Commits are signed off (git commit -s)
  • Tests pass (go test -v -race ./...)
  • Linter passes (make lint-fix)
  • New code has SPDX license headers
  • Documentation updated (if applicable)
  • CHANGELOG.md updated (if user-facing change)

Stack created with GitHub Stacks CLIGive Feedback 💬

@roma-glushko roma-glushko self-assigned this Aug 28, 2026
@roma-glushko roma-glushko added the kind/feature Feature request or enhancement. label Aug 28, 2026
@roma-glushko roma-glushko changed the title Mokka Node Agent NVLink simulator feat(node-agent): Mokka Node Agent NVLink simulator Aug 28, 2026
@roma-glushko roma-glushko linked an issue Aug 28, 2026 that may be closed by this pull request
@roma-glushko
roma-glushko marked this pull request as ready for review August 28, 2026 11:32
@greptile-apps

greptile-apps Bot commented Aug 28, 2026

Copy link
Copy Markdown

Greptile Summary

The change moves ComputeDomain topology staging from the setup script into a dedicated node-agent NVLink simulator.

  • Registers the NVLink simulator in the node-agent lifecycle.
  • Mounts the topology ConfigMap into the node-agent when topology support is enabled.
  • Adds staging, update, readiness, discard, and Helm rendering coverage.

Reviews (4): Last reviewed commit: "Ported NVLink simulator" | Re-trigger Greptile

Comment on lines +55 to +58
if _, err := os.Stat(sourcePath); err != nil {
s.ready.Store(true)
return nil
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 When the topology source disappears after a successful stage, Stage returns without removing the existing overlay, causing new NRI-injected workloads to receive obsolete clique IDs and cluster UUIDs. Remove the owned overlay when the source no longer exists, while propagating other os.Stat errors.

Suggested change
if _, err := os.Stat(sourcePath); err != nil {
s.ready.Store(true)
return nil
}
if _, err := os.Stat(sourcePath); err != nil {
if !os.IsNotExist(err) {
return err
}
if err := h.Remove(h.RootPath(overlayRel)); err != nil {
return err
}
s.ready.Store(true)
return nil
}

Knowledge Base Used:

Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
- Porting InfiniBand simulator to Node Agent
- Move IB shims to the shims dir
- Move IB daemon code to `internal/ib/*` package
- Add a set of path sugar methods to Host struct to simplify path building across simulators
- Revisited bundle-ib-tools.sh script
- Dropped mock-ib CLI
- Dropped manual register peers mode used in tests in order to simplify the system
- Implemented IB sysfs tree reconcilation
- Moved common filesystem operations into `internal/fsutils` package

This is an interim refactoring for IB. With Mokka Control Plane, most of the IB daemon code can be delegated to the Control Plane.

---------

Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
# Conflicts:
#	cmd/node-agent/main.go
#	deployments/nvml-mock/helm/nvml-mock/tests/__snapshot__/daemonset_test.yaml.snap
#	deployments/nvml-mock/scripts/setup.sh
#	enhancements/meps/0003-node-agent/README.md
Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
Signed-off-by: Roman Hlushko <rhlushko@nvidia.com>
Base automatically changed from node-agent-fabric-manager to main August 31, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature Feature request or enhancement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MEP0003: Port network related simulation logic

1 participant