nvml-mock¶
Mock NVIDIA driver infrastructure for Kubernetes testing
This page is generated from values.yaml. For installation guides and
operational behaviour, see the Helm chart guide.
Requirements¶
Kubernetes: >= 1.28.0-0
Values¶
| Key | Type | Default | Description |
|---|---|---|---|
| affinity | object | {} |
Affinity rules for scheduling node-agent pods. |
| allocationWatcher.enabled | bool | false |
Enable allocation-based synthetic memory metrics. |
| allocationWatcher.interval | string | "2s" |
Poll period for the kubelet pod-resources socket. |
| allocationWatcher.podResourcesSocket | string | "/var/lib/kubelet/pod-resources/kubelet.sock" |
Kubelet pod-resources socket path. |
| allocationWatcher.resources.limits.cpu | string | "100m" |
CPU limit for the allocation watcher. |
| allocationWatcher.resources.limits.memory | string | "64Mi" |
Memory limit for the allocation watcher. |
| allocationWatcher.resources.requests.cpu | string | "10m" |
CPU request for the allocation watcher. |
| allocationWatcher.resources.requests.memory | string | "32Mi" |
Memory request for the allocation watcher. |
| allocationWatcher.usedFractionPerClaim | float | 0.5 |
Fraction of usable GPU memory attributed to each claim. |
| controlPlane.affinity | object | {} |
Affinity rules for scheduling control-plane pods. |
| controlPlane.enabled | bool | false |
Enable the Mokka control-plane service. |
| controlPlane.image.digest | string | "" |
Immutable digest; when set, it takes precedence over the tag. |
| controlPlane.image.pullPolicy | string | "IfNotPresent" |
Kubernetes image pull policy for the control plane. |
| controlPlane.image.repository | string | "ghcr.io/nvidia/mokka-control-plane" |
Control-plane image repository. |
| controlPlane.image.tag | string | "" |
Control-plane image tag; defaults to the chart appVersion. |
| controlPlane.kubeAPIBurst | int | 100 |
Kubernetes API burst allowance for the control plane. |
| controlPlane.kubeAPIQPS | int | 50 |
Kubernetes API request rate for the control plane. |
| controlPlane.leaderElection.name | string | "control-plane.mokka.nvidia.com" |
Lease name used for control-plane leader election. |
| controlPlane.logging.format | string | "json" |
Control-plane log encoding. |
| controlPlane.logging.level | string | "info" |
Control-plane log level. |
| controlPlane.nodeSelector | object | {} |
Node selector for control-plane pods. |
| controlPlane.pdb.enabled | bool | false |
Enable a PodDisruptionBudget. Rendered only when replicas > 1. |
| controlPlane.podAnnotations | object | {} |
Additional annotations applied to control-plane pods. |
| controlPlane.podLabels | object | {} |
Additional labels applied to control-plane pods. |
| controlPlane.priorityClassName | string | "" |
Priority class for control-plane pods. |
| controlPlane.replicas | int | 1 |
Number of control-plane replicas. |
| controlPlane.resources.limits.cpu | string | "500m" |
CPU limit for the control plane. |
| controlPlane.resources.limits.memory | string | "1Gi" |
Memory limit for the control plane. |
| controlPlane.resources.requests.cpu | string | "50m" |
CPU requested by the control plane. |
| controlPlane.resources.requests.memory | string | "64Mi" |
Memory requested by the control plane. |
| controlPlane.service.port | int | 8080 |
Kubernetes Service port for the control plane. |
| controlPlane.service.type | string | "ClusterIP" |
Kubernetes Service type for the control plane. |
| controlPlane.shutdownTimeout | string | "5s" |
Graceful control-plane shutdown timeout. |
| controlPlane.terminationGracePeriodSeconds | int | 30 |
Pod termination grace period for the control plane. |
| controlPlane.tolerations | list | [] |
Tolerations for control-plane pods. |
| controlPlane.topologySpreadConstraints | list | [] |
Topology spread constraints for control-plane pods. |
| controlPlane.workers | int | 2 |
Number of control-plane worker goroutines. |
| driverBranch | string | "" |
Driver branch nvmlSystemGetDriverBranch reports; empty derives it from the driver version ("580.65.06" -> "r580_00"). |
| driverVersion | string | "" |
Driver version reported by the simulated driver; empty derives it from the profile. |
| extraObjects | list | [] |
Additional Kubernetes objects rendered with the release after tpl evaluation. |
| fabricmanager.enabled | string | "" |
Enable or disable the fake fabric manager; empty derives it from the profile. |
| fabricmanager.initDelay | string | "" |
Delay before publishing fabric readiness. |
| fabricmanager.stateDir | string | "/var/lib/nvml-mock/fabric-state" |
Host directory for fabric-manager readiness state. |
| featureGates | object | {} |
|
| global.imagePullSecrets | list | [] |
Pull secrets added to every pod created by this chart. |
| global.imageRegistry | string | "" |
Registry host override applied to every image, such as an internal mirror. |
| gpu.count | string | "" |
Number of simulated GPUs; empty derives the count from the selected profile. |
| gpu.customConfig | string | "" |
Complete YAML configuration that replaces the selected GPU profile. |
| gpu.dynamicMetrics.enabled | bool | false |
Enable time-varying synthetic temperature, power, and utilization values. |
| gpu.failureInjection.after_calls | int | 0 |
Trigger the selected failure after this many guarded calls; zero disables it. |
| gpu.failureInjection.enabled | bool | false |
Enable deterministic or probabilistic simulated GPU failures. |
| gpu.failureInjection.mode | string | "healthy" |
Failure mode to expose when failure injection is enabled. |
| gpu.failureInjection.probability | float | 0 |
Probability that each guarded NVML call triggers the selected failure. |
| gpu.failureInjection.seed | int | 0 |
Random seed; zero uses a time-based seed. |
| gpu.failureInjection.xid.code | int | 0 |
Xid code reported when the failure mode emits an Xid event. |
| gpu.mig.enabled | bool | false |
Enable MIG partitioning for profiles that support it. |
| gpu.mig.gpuInstances | list | [] |
GPU instance layout to create on each simulated device. |
| gpu.profile | string | "gb300" |
GPU profile and per-device simulation settings. |
| hic | list | [] |
Host interface cards nvidia-smi -q -u reports, as {id, firmwareVersion} entries. |
| image.digest | string | "" |
Immutable image digest; when set, it takes precedence over the tag. |
| image.pullPolicy | string | "IfNotPresent" |
Kubernetes image pull policy. |
| image.repository | string | "ghcr.io/nvidia/nvml-mock" |
Container image repository for the node agent. |
| image.tag | string | "" |
Image tag; defaults to the chart appVersion. |
| imagePullSecrets | list | [] |
Pull secrets for nvml-mock, NRI, and control-plane pods. |
| imex.binaries.download.timeout | string | "1m" |
Time limit of one IMEX archive download attempt while the IMEXDownload feature gate is on. |
| imex.binaries.image.digest | string | "" |
Immutable IMEX binaries image digest; when set, it takes precedence over the tag. |
| imex.binaries.image.pullPolicy | string | "" |
IMEX binaries image pull policy; empty picks IfNotPresent, or Always for a "latest" tag. |
| imex.binaries.image.repository | string | "" |
IMEX binaries image repository; empty (default) renders no init container. |
| imex.binaries.image.tag | string | "" |
IMEX binaries image tag, the IMEX version it carries; required unless digest is set. |
| imex.binaries.resources.requests.cpu | string | "10m" |
CPU requested by the IMEX binaries init container. |
| imex.binaries.resources.requests.memory | string | "32Mi" |
Memory requested by the IMEX binaries init container. |
| imex.deviceNumbers.capsMajor | int | 236 |
Major number used for IMEX capability devices. |
| imex.deviceNumbers.channelMajor | int | 235 |
Major number used for IMEX channel devices. |
| infiniband.mockTier | string | "" |
InfiniBand mock tier; empty derives the tier from the selected profile. mockTier sets the container's MOCK_IB value: off |
| infiniband.ping.networkPolicy.enabled | bool | true |
Restrict mock InfiniBand traffic to peer nvml-mock pods. Rendered only at the full tier, the only one that listens on the port. |
| infiniband.ping.networkPolicy.peerNamespaces | list | [] |
Namespaces besides the release's whose nvml-mock pods may reach the port, for a fleet split across namespaces. Empty admits the release's namespace only, which keeps OVN-Kubernetes from re-listing every Pod in the cluster on each Pod event. |
| infiniband.ping.port | int | 18515 |
TCP port used by the mock InfiniBand ping service. |
| integrations.fakeGpuOperator.enabled | bool | false |
Enable fake-gpu-operator profile integration. |
| integrations.fakeGpuOperator.profileLabels."run.ai/gpu-profile" | string | "true" |
Additional label applied to generated fake-gpu-operator profiles. |
| integrations.fakeGpuOperator.targetNamespace | string | "" |
Namespace where fake-gpu-operator reads profile ConfigMaps. |
| nodeAgent.kernelLog.enabled | bool | false |
Announce injected Xids through the host kernel log. |
| nodeAgent.livenessProbe | object | {"httpGet":{"path":"/healthz","port":"health"}} |
Liveness probe; /healthz fails when the last Stage wave failed. Set to null to disable. |
| nodeAgent.livenessProbe.httpGet.path | string | "/healthz" |
Liveness probe endpoint path. |
| nodeAgent.livenessProbe.httpGet.port | string | "health" |
Liveness probe endpoint port name or number. |
| nodeAgent.logging | object | {"format":"json","level":"info"} |
Node-agent logging settings and lifecycle behavior. |
| nodeAgent.logging.format | string | "json" |
Log encoding for the node agent. |
| nodeAgent.logging.level | string | "info" |
Log level for the node agent. |
| nodeAgent.nriStartupTimeoutSeconds | int | 120 |
|
| nodeAgent.readinessProbe | object | {"httpGet":{"path":"/readyz","port":"health"}} |
Readiness probe; /readyz reports whether every simulator is serving. Set to null to disable. |
| nodeAgent.readinessProbe.httpGet.path | string | "/readyz" |
Readiness probe endpoint path. |
| nodeAgent.readinessProbe.httpGet.port | string | "health" |
Readiness probe endpoint port name or number. |
| nodeAgent.resources | object | {"requests":{"cpu":"10m","memory":"32Mi"}} |
Resource requests for the node agent. |
| nodeAgent.resources.requests.cpu | string | "10m" |
CPU requested by the node agent. |
| nodeAgent.resources.requests.memory | string | "32Mi" |
Memory requested by the node agent. |
| nodeAgent.resyncInterval | string | "1m" |
Node-agent profile and topology resync period. |
| nodeAgent.shutdownTimeout | string | "5s" |
Graceful shutdown timeout for the node agent. |
| nodeLabels.featuresDir | string | "/etc/kubernetes/node-feature-discovery/features.d" |
Host directory from which NFD reads generated feature files. |
| nodeSelector | object | {} |
Existing node labels required to schedule the mock DaemonSet. |
| nri.cdiSpecDir | string | "/var/run/cdi" |
Host directory containing staged CDI specifications. |
| nri.deviceAnnotation | string | "nvml-mock.nvidia.com/devices" |
Pod annotation enabling mock GPU device injection. |
| nri.deviceInjectionMode | string | "raw" |
Device injection mode: raw nodes or CDI references. |
| nri.enabled | bool | true |
Enable node-wide container injection through the NRI plugin. Inject the mock into containers that hold a GPU allocation or opt in by annotation. Needs containerd NRI enabled on the node: containerd 2.x enables it by default, containerd 1.7 does not. Set false where it is off; otherwise the node pod stays NotReady. |
| nri.excludedNamespaces | list | [] |
Namespaces excluded from NRI injection. |
| nri.healthPort | int | 8080 |
NRI plugin health and readiness port. |
| nri.image | object | {} |
Optional container image overrides for the NRI plugin. |
| nri.imexChannelAnnotation | string | "nvml-mock.nvidia.com/imex-channels" |
Pod annotation enabling IMEX channel injection. |
| nri.infinibandAnnotation | string | "nvml-mock.nvidia.com/infiniband" |
|
| nri.livenessProbe.failureThreshold | int | 3 |
Consecutive failures before the plugin is restarted. |
| nri.livenessProbe.httpGet.path | string | "/healthz" |
Liveness endpoint path. |
| nri.livenessProbe.httpGet.port | string | "nri-health" |
Liveness endpoint port name. |
| nri.livenessProbe.periodSeconds | int | 10 |
Liveness probe interval. |
| nri.livenessProbe.timeoutSeconds | int | 2 |
Liveness probe timeout. |
| nri.logging.format | string | "json" |
Log encoding for the NRI plugin. |
| nri.logging.level | string | "info" |
Log level for the NRI plugin. |
| nri.nativeSidecar | bool | true |
|
| nri.optOutAnnotation | string | "nvml-mock.nvidia.com/inject" |
Pod annotation that disables ambient mock injection when set to "false". |
| nri.overlay.hostPath | string | "/var/lib/nvml-mock" |
Host path containing the staged mock driver overlay. |
| nri.overlay.mountPath | string | "/opt/nvml-mock" |
Container mount path for the mock driver overlay. |
| nri.pluginIndex | string | "10" |
NRI plugin ordering index. |
| nri.pluginName | string | "nvml-mock" |
NRI plugin name. |
| nri.readinessProbe.failureThreshold | int | 2 |
Consecutive failures before the plugin is marked unready. |
| nri.readinessProbe.httpGet.path | string | "/readyz" |
Readiness endpoint path. |
| nri.readinessProbe.httpGet.port | string | "nri-health" |
Readiness endpoint port name. |
| nri.readinessProbe.periodSeconds | int | 10 |
Readiness probe interval. |
| nri.readinessProbe.timeoutSeconds | int | 2 |
Readiness probe timeout. |
| nri.resources | object | {"requests":{"cpu":"10m","memory":"32Mi"}} |
NRI plugin resource requests; limits are unset by default. Requests only: the plugin runs on every node by default, and no limit is set until its usage under load has been measured. |
| nri.socketPath | string | "/var/run/nri/nri.sock" |
Runtime NRI socket path. |
| podAnnotations | object | {} |
Additional annotations applied to node-agent pods. |
| podLabels | object | {} |
Additional labels for node-agent pods; do not set app.kubernetes.io selector labels. |
| priorityClassName | string | "" |
Priority class for node-agent DaemonSet pods. |
| terminationGracePeriodSeconds | int | 10 |
Pod termination grace period for the node-agent DaemonSet. |
| tolerations | list | [{"operator":"Exists"}] |
Pod tolerations for the mock DaemonSet. |
| topology.domains | list | [] |
Synthetic topology domains and clique membership. |
| topology.enabled | bool | false |
Enable simulation of multi-node GPU fabric topology. |
| updateStrategy.rollingUpdate.maxUnavailable | string | "25%" |
Maximum number of DaemonSet pods unavailable during an update. |
| updateStrategy.type | string | "RollingUpdate" |
DaemonSet update strategy. |