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

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions