NVIDIA / NVIDIA/OpenShell

test(e2e): add cross-driver userless-image conformance coverage

Open
#2,422 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:sandbox state:stale
Dominant language
Rust
Stars
8.7k
Forks
1.3k
Avg merge
2d 11h
Merged PRs (30d)
253

Description

Description

Create a reusable E2E conformance test proving every supported compute driver can launch an image without a named sandbox passwd/group entry. PR #2335 adds focused Docker and Podman coverage because those identity-injection paths change there, but its review identified that the userless-image contract should also be exercised through VM, Kubernetes, and OpenShift.

Separate driver-specific fixture provisioning from shared behavioral assertions so each E2E lane can supply the same userless image through its supported mechanism.

Context

Related to #1959, #2331, and PR #2335.

Image delivery differs by driver: Docker can build from a local Dockerfile, Podman uses its local image store, VM resolves a local or registry image, and Kubernetes/OpenShift require cluster import or a pullable registry reference. Identity defaults also differ, and OpenShift may select a dynamic UID, so shared assertions must not hardcode 10001.

The current custom_image test selects its Podman path with #[cfg(all(feature = "e2e-podman", not(feature = "e2e-docker")))]. This avoids sending a Podman-local image tag to a Docker gateway when both features are enabled, but Cargo features are additive, so the negative feature gate creates a hidden Docker-wins precedence under --all-features. The reusable suite should select the active driver and its image-provisioning strategy explicitly rather than treating driver features as mutually exclusive.

Definition of Done

  • Extract shared userless-image behavioral assertions from the local-driver test.
  • Parameterize the fixture image reference and any driver-specific expected identity.
  • Provision the fixture for Docker, Podman, VM, Kubernetes, and OpenShift E2E lanes.
  • Verify the process runs as a non-root numeric identity without requiring a matching passwd/group entry.
  • Verify driver-owned identity values override conflicting image environment values.
  • Verify HOME=/sandbox and successful writes under /sandbox.
  • Provide focused commands for running the conformance test in each driver lane.
  • Remove the not(feature = "e2e-docker") driver-selection workaround; compiling multiple driver features must not silently suppress Podman coverage or select Docker by precedence.
  • Make each E2E lane select its driver-specific fixture provisioner explicitly while reusing the same behavioral assertions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the current custom_image E2E test and its driver feature-selection logic. Compare the Docker, Podman, VM, Kubernetes, and OpenShift fixture mechanisms, then extract shared assertions while keeping provisioning and expected identities driver-specific. Done means every lane runs the userless image checks and multiple driver features no longer silently choose Docker over Podman.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, kubernetes, rust
Domain
infrastructure, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.