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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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