[Bug]: gpu-operator images v26.7.0+, contain an uncompressed layer; v26.7.1+ also switched to OCI manifest types breaks Quay/oc-mirror mirroring
I maintainer di solito rispondono entro 1 giorno
@rahulait ci sta già lavorando.
Dal 3/11/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Evidence
1. Manifest-list media type per version
$ for tag in v25.10.0 v26.3.3 v26.7.0 v26.7.1 v26.7.2; do
echo "=== $tag ==="
skopeo inspect --raw docker://nvcr.io/nvidia/gpu-operator:$tag | jq -r .mediaType
done
=== v25.10.0 ===
application/vnd.docker.distribution.manifest.list.v2+json
=== v26.3.3 ===
application/vnd.docker.distribution.manifest.list.v2+json
=== v26.7.0 ===
application/vnd.docker.distribution.manifest.list.v2+json
=== v26.7.1 ===
application/vnd.oci.image.index.v1+json
=== v26.7.2 ===
application/vnd.oci.image.index.v1+json
2. Layer media types per version (amd64)
$ for tag in v25.10.0 v26.3.3 v26.7.0 v26.7.1 v26.7.2; do
echo "=== $tag ==="
digest=$(skopeo inspect --raw docker://nvcr.io/nvidia/gpu-operator:$tag \
| jq -r '.manifests[] | select(.platform.architecture=="amd64") | .digest')
skopeo inspect --raw docker://nvcr.io/nvidia/gpu-operator@$digest \
| jq -r '.layers[].mediaType' | sort | uniq -c
done
=== v25.10.0 ===
36 application/vnd.docker.image.rootfs.diff.tar.gzip
=== v26.3.3 ===
42 application/vnd.docker.image.rootfs.diff.tar.gzip
=== v26.7.0 ===
1 application/vnd.docker.image.rootfs.diff.tar
42 application/vnd.docker.image.rootfs.diff.tar.gzip
=== v26.7.1 ===
1 application/vnd.oci.image.layer.v1.tar
42 application/vnd.oci.image.layer.v1.tar+gzip
=== v26.7.2 ===
1 application/vnd.oci.image.layer.v1.tar
42 application/vnd.oci.image.layer.v1.tar+gzip
3. The uncompressed layer is confirmed at the byte level, not just a label
$ TOKEN=$(curl -s "https://nvcr.io/token?service=nvcr.io&scope=repository:nvidia/gpu-operator:pull" \
| jq -r .token)
$ amd64_digest=$(skopeo inspect --raw docker://nvcr.io/nvidia/gpu-operator:v26.7.2 \
| jq -r '.manifests[] | select(.platform.architecture=="amd64") | .digest')
$ layer_digest=$(skopeo inspect --raw docker://nvcr.io/nvidia/gpu-operator@$amd64_digest \
| jq -r '.layers[] | select(.mediaType | contains("gzip") | not) | .digest')
$ curl -sL -H "Authorization: Bearer $TOKEN" \
"https://nvcr.io/v2/nvidia/gpu-operator/blobs/$layer_digest" -o layer.bin
$ file -b layer.bin
POSIX tar archive (GNU)
$ tar -tvf layer.bin
etc/
etc/ssl/
etc/ssl/fipsmodule.cnf
etc/ssl/openssl-fips.cnf
etc/ssl/openssl-nofips.cnf
This same layer (containing OpenSSL/FIPS config files) is present,
uncompressed, in v26.7.0, v26.7.1, and v26.7.2. It does not exist at all
in v25.10.0 or v26.3.3.
Impact
Customers mirroring certified operator bundles (e.g. via oc-mirror) to
a disconnected Red Hat Quay registry fail with:
[ERROR] : [Worker] error mirroring image
docker://nvcr.io/nvidia/cloud-native/<image>@sha256:...
error: Manifest list must be converted to type
"application/vnd.docker.distribution.manifest.list.v2+json" ...
"Instructed to preserve digests"
The only workaround today is a manual skopeo copy --format v2s2 --multi-arch=all re-push per image, which doesn't scale for
disconnected/air-gapped operator mirroring workflows.
Fix
- Identify the build step (introduced between v26.3.3 and v26.7.0) that
adds the FIPS/OpenSSL config layer, and ensure it's gzip-compressed
like every other layer. - Revert to publishing Docker v2 Schema2 manifest/manifest-list media
types (as in v25.10.0/v26.3.3/v26.7.0) instead of OCI-only, given the
broader ecosystem's Docker v2s2 compatibility expectations for
certified/catalog content.
Environment
- Images affected:
nvcr.io/nvidia/gpu-operator(and likely other
nvidia/cloud-native/*child images referenced by the certified
gpu-operator-bundle) - Versions: v25.10.0, v26.3.3, v26.7.0, v26.7.1, v26.7.2 (current latest)
- Tools used to reproduce:
skopeo1.22.3,jq,file,tar,curl
- Lingua principale
- Go
- Stelle
- 3k
- Fork
- 592
- Merge medio
- 3g 19h
- PR unite (30g)
- 63
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/gpu-operator
-
[Bug]: GPUCluster common name label breaks DRA validator selectorForse già presa @ajavanma l’ha presa 44 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
NVIDIA/gpu-operator#2955 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Support digest-pinned precompiled driver imagesForse già presa @rahulait l’ha presa oggi. Apertaneeds-triage
NVIDIA/gpu-operator#3173 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feature lifecycle/frozen needs-triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
NVIDIA/gpu-operator#3165 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: GPUCluster DRA kubelet plugin uses driver root / on Talos and cannot find libnvidia-ml.so.1Forse di nuovo libera @roma5087 l’ha presa 7 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
NVIDIA/gpu-operator#3139 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Helm chart always sets NVIDIADriver spec.manager.image, so a default driver-manager bump reinstalls the driver on every GPU nodeForse di nuovo libera @akshat-lakhera l’ha presa 7 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
NVIDIA/gpu-operator#3135 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NVIDIA/gpu-operator
Issue simili
-
area/docs framework/hugo help wanted language/markdown
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
openclaw/crabbox#3060 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
kubeflow/semantic-operator#52 ·
I maintainer di solito rispondono entro 10 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PramodBasavarajMenasi/siftwise#52 ·
I maintainer di solito rispondono entro 1 giorno