Description
On Kubernetes GPU clusters the GPU Operator deploys the driver, device plugin, DCGM exporter, GPU feature discovery and MIG manager, and the Network Operator manages RDMA NICs. Both expose metrics, their operand pods show up in kube-state-metrics, and the device plugin is what makes GPUs appear as an extended resource on nodes and pod requests. AI Factory designs collect these through the standard Kubernetes path.
Acceptance Criteria
- #1 cluster.addons accepts GPU Operator and Network Operator entries that emit their real metric families and pod logs, following the existing add-on pattern in signals/k8s-addons.md
- #2 kube-state-metrics node capacity and allocatable and pod resource requests carry the GPU extended resource exactly as kube-state-metrics renders it, consistent with the GPU fixture
- #3 Operand DaemonSets and pods appear in kube-state-metrics series on GPU nodes only
- #4 Failure modes cover a driver or operand pod crash-looping on a node, which removes that node’s GPUs from allocatable
- #5 Every metric, label, attribute and log field is sourced from vendor documentation or a capture at a pinned version and recorded with provenance in the named signals/ area file; anything unconfirmed is a PENDING in cantfind.md, never an invented name
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/
Implementation Notes
loop47: admitted R06 operator/vendor-contract research; implementation waits for DCGM landing
loop47 dependency park, implementation0: DCGM consumer SKT-0087.04 (GPU exporter profiles) source-blocked before code. Resume after its source-correct green landing; I05 dual host/k8s log adapters serialize before I06 lifecycle/KSM/capacity/operator adapters. Generic fixture Done does not release these consumer joins or authorize invented vendor events.
loop48 in-loop dependency park, no admitted implementation/attempt consumed: narrowed DCGM prerequisite is Parked after admitted attempt and independent owner/seam diagnosis. Resume after DCGM lands and driver logs lands or is parked, then source-correct GPU/Network Operator and actual KSM GPU-resource adapter proof. compute-user emission remains false; no disabled substrate proof claimed.