fix(k8s): pin container images by sha256 digest (#1436)#1986
fix(k8s): pin container images by sha256 digest (#1436)#1986ColinM-sys wants to merge 1 commit intoNVIDIA:mainfrom
Conversation
Fixes NVIDIA#1436. The K8s manifest referenced three images by mutable tags: docker:24-dind, node:22, and busybox. Tag references can be overwritten at the registry — a compromised registry or tag overwrite would inject malicious code into the pod. Pin each image to a sha256 digest to prevent supply-chain attacks via tag manipulation. Digests captured from Docker Hub at commit time; the human-readable tag is preserved in a comment so maintainers can refresh the digest when bumping versions. This matches the pattern already used in the root Dockerfile (node:22-slim@sha256:4f77a6...) and Dockerfile.base. Signed-off-by: ColinM-sys <cmcdonough@50words.com>
📝 WalkthroughWalkthroughThe Kubernetes manifest pins three container images to specific SHA256 digests, replacing mutable tag references ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
✨ Thanks for submitting this PR that proposes a fix and dependency enhancement by pinning container images by sha256 digest, which could help improve the security and reproducibility of NemoClaw's deployments. Possibly related open issues: |
|
Thanks for the contribution! The digest-pinning approach here is solid — preserving the human-readable tag in a comment above each However, the entire Closing this PR and the parent issue #1436 — both are resolved by #2107. If k8s manifests are reintroduced in the future, digest pinning should definitely be included from the start. |
Summary
k8s/nemoclaw-k8s.yamlto sha256 digests:docker:24-dind→docker:24-dind@sha256:9b17a9f2...node:22→node:22@sha256:ecabd1cb...busybox→busybox@sha256:1487d0af...image:line so maintainers can refresh the digest when bumping versions.Fixes #1436.
Why
The K8s manifest referenced images by mutable tag. A compromised registry or tag overwrite would inject malicious code into the pod — supply-chain attack vector. The root
Dockerfilealready pinsnode:22-slim@sha256:4f77a690...by digest; this extends the same hardening to the K8s manifest.Test plan
grep "image:" k8s/nemoclaw-k8s.yamlshows all three images pinned by@sha256:kubectl apply -f k8s/nemoclaw-k8s.yamlpulls the pinned digests (verifiable in a dev cluster)Digests captured from Docker Hub at commit time via authenticated Registry v2 HEAD requests.
Signed-off-by: Colin McDonough cmcdonough@50words.com