Skip to content

Standalone nvml-mock Demo

This demo deploys nvml-mock on a local Kind cluster with FGO-style labels enabled. It does not require any external GPU operator -- nvml-mock itself generates the GPU profile ConfigMaps, the fake InfiniBand sysfs tree, and the node labels that downstream consumers expect.

What it does

  1. Creates a Kind cluster (nvml-mock-demo: 1 control-plane, 3 workers).
  2. Builds the nvml-mock:demo container image from the repository root.
  3. Loads the image into the Kind cluster.
  4. Installs the nvml-mock Helm chart into a dedicated mokka namespace (override with NAMESPACE=...) with integrations.fakeGpuOperator.enabled=true, an H100 profile, and 8 GPUs per node. The demo sets this namespace as the current context default so the validation helpers resolve pods in it.
  5. Verifies the deployment:
  6. DaemonSet pods are running on all workers.
  7. Six GPU profile ConfigMaps are created (one per profile field group).
  8. nvidia-smi runs successfully inside a pod.
  9. ibstat lists 8 simulated ConnectX-7 NDR HCAs (see internal/ib/README.md).
  10. ibv_devinfo -l enumerates every mock HCA (via libmlx5) and ibstatus confirms ACTIVE / LinkUp ports, both driven by tests/e2e/validate-ibv-devinfo.sh.
  11. Cross-node ibping between two worker pods via tests/e2e/validate-ibping.sh.
  12. Cross-node iblinkinfo fabric direct-route scan via tests/e2e/validate-iblinkinfo.sh.
  13. Node labels are present.

Quick start

./demo.sh

Clean up

# Remove just the release (keeps the cluster):
helm uninstall nvml-mock -n mokka

# Or tear down the whole cluster:
kind delete cluster --name nvml-mock-demo