Skip to content

feat(nvml-mock): Kata Containers support #451

Description

@ArangoGutierrez

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogNot scheduled for a release. Revisit at each milestone close.priority/p2P2: minor defect or perf implication. No fix-time commitment.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions