Repository navigation
feat(gpu): opt-in GPU passthrough for OpenShell agent sandbox - #37
Conversation
|
@sauagarwa — flagging something in
|
Good catch on |
Hadar301
left a comment
There was a problem hiding this comment.
The GPU image build has a high-severity issue at image-builder-charts/helm/openshell-gateway-image/templates/buildconfig.yaml:252. The default package value nvidia-driver-610.57.04 does not match a package in NVIDIA's Fedora 44 repository. NVIDIA publishes nvidia-open-610.57.04 and documents installing nvidia-open. Because the package install runs with set -e, every GPU image build stops there. Please use a package name that exists in both configured architecture repositories and verify the resolved package versions. See NVIDIA's Fedora 44 package index and driver install guide.
I checked the repository metadata with DNF5 for both configured architectures. |
Related ticket: APPENG-5954
Summary
GPU passthrough is opt in at both the VM and sandbox layers. This rebases the implementation onto current upstream/main and aligns sandbox GPU requests with typed profile validation and automatic migration.
externalResourceProviderper device; a read-only preflight checks the HCO and node allocatable through either HCO API layout.openshell-gateway-gpuobjects throughout, including deletion and CDI API fallback paths. Kernel headers match the image kernel, with an image-time DKMS attempt and first-boot retry./sandboxfiles over. Missing labels mean GPU off, so existing CPU sandboxes survive upgrades. The shipped CUDA profile remains GPU off.Validation
sandbox create --gpu [COUNT].Live GPU validation
LaunchPad x86 L40S functional gates passed.
/sandboxmarker. GPU-off exposed no NVIDIA device. VM restarts refreshed this cluster's virtiofs ConfigMap snapshots; GPU access and installer verification passed after restart (apply: Done).ollama psreported 100% GPU, and guest NVML showed the Ollama process using 2,926 MiB. Sandbox egress stayed closed.*-dashboardroute still returns the pre-existing documented 503 on OpenShell 0.1.x; it is not a successful browser endpoint.The corrected image was imported by immutable digest into a new versioned golden PVC. A fresh VM cloned from it passed first boot and a full restart without manual GPU fixes: exact image-helper hashes, driver/DKMS/CDI checks, actual CUDA workload execution as UID 998, a CPU notebook without GPU devices, and both installer steps
Done. Offline inference passed before and after restart at 100% GPU / 2,926 MiB; its/sandboxmarker survived. The canonical GPU DataSource and validation GitOps entry now select the refreshed template. The prior golden disk is retained, and the original VM stayed on the same running instance with its original root PVC.The user requested retaining the environment for reuse. No teardown was performed. Temporary registry configuration, validation workloads, and the fork-only validation branch remain in place. Current validation requires the SSH/SOCKS path; public-internet OIDC remains a follow-up.
Route support remains separate in PR #100. The validation overlay stays on a temporary fork-only branch and is never proposed upstream.
Follow-ups: public internet OIDC with a matching issuer certificate and back-channel, sandbox UI custom hosts, portal host links, a Redis session store if edge header limits require it, and container-backend GPU support (#153).