Skip to content

test(driver-podman): no CI coverage for rootless Podman GPU/CDI device injection #3061

Description

@politerealism

Summary

Podman's own CDI resolution (ExtractCDIDevices/isCDIDevice in pkg/specgen/generate/container_create.go) already handles rootless GPU device injection transparently — confirmed with @elezar. The podman driver's LinuxDevice { path } construction requires no rootless-specific branching; CDI-qualified device strings route identically regardless of rootless/rootful. This is no longer a driver code gap.

Updated Scope

The confirmed, real gap is CI/test coverage — there is no test or CI job exercising GPU device injection combined with rootless Podman:

  • Every GPU-related test in driver.rs/container.rs constructs the driver with rootless: false.
  • .github/workflows/e2e-gpu-test.yaml ("E2E Docker GPU") only covers Docker, no Podman variant.
  • The README's rootless-adaptations section doesn't mention GPU/CDI.

Known Rootless-Specific Prerequisites (host/operator config, not driver code)

Rootless CDI GPU access has documented real-world friction (podman-container-tools/podman#17539), caused by host configuration rather than driver logic:

  • NVIDIA Container Toolkit needs no-cgroups = true set for rootless mode.
  • The CDI spec (e.g. /etc/cdi/nvidia.yaml) must be readable by the rootless user — /etc/cdi isn't rootless-writable, so it typically needs to live in a user-owned directory instead.

Any CI coverage added here should validate these prerequisites too, not just that CDI strings pass through the driver.

Acceptance Criteria

  • A GPU-enabled sandbox is verified working on a real rootless Podman host with GPU hardware, or existing CI runners are confirmed capable of rootless Podman + GPU.
  • CI/test coverage added so this doesn't silently regress to "untested" again.
  • Prerequisite host configuration (toolkit no-cgroups, CDI spec location) documented for rootless deployments.

Explicitly Out of Scope

  • Any change to container.rs's device-injection code path — confirmed not needed.
  • Docker driver GPU issues (tracked separately).
  • Extending CDI/GPU support to Kubernetes or VM drivers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    state:triage-neededOpened without agent diagnostics and needs triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions