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.
- Creates a Kind cluster (
nvml-mock-demo: 1 control-plane, 3 workers). - Builds the
nvml-mock:democontainer image from the repository root. - Loads the image into the Kind cluster.
- Installs the nvml-mock Helm chart into a dedicated
nvml-mock-systemnamespace (override withNAMESPACE=...) withintegrations.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. - Verifies the deployment:
- DaemonSet pods are running on all workers.
- Six GPU profile ConfigMaps are created (one per profile field group).
nvidia-smiruns successfully inside a pod.ibstatlists 8 simulated ConnectX-7 NDR HCAs (seepkg/network/mockib/README.md).ibv_devinfo -lenumerates every mock HCA (via libmlx5) andibstatusconfirms ACTIVE / LinkUp ports, both driven bytests/e2e/validate-ibv-devinfo.sh.- Cross-node
ibpingbetween two worker pods viatests/e2e/validate-ibping.sh. - Cross-node
iblinkinfofabric direct-route scan viatests/e2e/validate-iblinkinfo.sh. - Node labels are present.
./demo.sh# Remove just the release (keeps the cluster):
helm uninstall nvml-mock -n nvml-mock-system
# Or tear down the whole cluster:
kind delete cluster --name nvml-mock-demo