Context. Kata Containers workloads run inside lightweight VMs; the guest rootfs — not the host — provides the driver stack (raised by the Kata/CoCo team). nvml-mock's host drop-in + CDI cannot reach CoCo guests.
Phase 1 (done in PR #450). Plain Kata (kata-qemu): virtiofs carries the CDI library mounts; kata-agent mknods the inert device nodes in-guest ("mocks the passthrough path"). E2E lane + docs/integrations/kata.md. As-built findings: the device plugin's cdi-cri spec wins injection (versioned lib path only — the .so.1 soname comes from the update-ldcache hook, which never runs in-guest; consumers create the link), config is delivered via pod hostPath volume + MOCK_NVML_CONFIG, and enumeration is allocation-scoped (detectVisibleDevices).
Phase 2 (this issue). CoCo-compatible guest payload:
nvml-mock-guest-payload OCI artifact: mock libs (with soname links baked), nvidia-smi, default config, tmpfiles.d device-node entries, install.sh
- Example osbuilder overlay recipe; Kata team bakes it into their GPU rootfs
- Structural CI test: extract payload, run nvidia-smi from it with zero host injection
- CoCo E2E deferred until CoCo-capable CI exists
Also tracked here (from PR #450's final review):
- Make guest-side config consumption discriminating in the kata lane: the engine's no-config default is also
NVIDIA A100-SXM4-40GB, so switch the lane to a non-default profile (e.g. t4)
Related. #377 (CC-mode/attestation NVML APIs) unblocks the CC attestation client test story on top of this delivery path.
Context. Kata Containers workloads run inside lightweight VMs; the guest rootfs — not the host — provides the driver stack (raised by the Kata/CoCo team). nvml-mock's host drop-in + CDI cannot reach CoCo guests.
Phase 1 (done in PR #450). Plain Kata (
kata-qemu): virtiofs carries the CDI library mounts; kata-agent mknods the inert device nodes in-guest ("mocks the passthrough path"). E2E lane +docs/integrations/kata.md. As-built findings: the device plugin's cdi-cri spec wins injection (versioned lib path only — the.so.1soname comes from theupdate-ldcachehook, which never runs in-guest; consumers create the link), config is delivered via pod hostPath volume +MOCK_NVML_CONFIG, and enumeration is allocation-scoped (detectVisibleDevices).Phase 2 (this issue). CoCo-compatible guest payload:
nvml-mock-guest-payloadOCI artifact: mock libs (with soname links baked), nvidia-smi, default config, tmpfiles.d device-node entries, install.shAlso tracked here (from PR #450's final review):
NVIDIA A100-SXM4-40GB, so switch the lane to a non-default profile (e.g. t4)Related. #377 (CC-mode/attestation NVML APIs) unblocks the CC attestation client test story on top of this delivery path.