Publish keyless cosign signatures, SLSA provenance, and SBOM attestations for releases
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
Bắt đầu bằng cách so sánh các workflow và composite action AICR và NVSentinel được tham chiếu, sau đó xác định workflow release của gpu-operator và các entry point để publish artifact. Xác thực một test release bằng các lệnh verification của cosign trong acceptance criteria. Được xem là hoàn tất khi mọi image và chart được publish đều có chữ ký keyless, provenance SLSA và SBOM attestation có thể được xác minh mà không cần out-of-band key.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Request that releases of gpu-operator container images and Helm charts ship with keyless cosign signatures, SLSA build provenance, and SBOM attestations, all verifiable from the public Sigstore Rekor transparency log.
Why
Downstream projects that integrate gpu-operator into curated platforms (in our case, NVIDIA AICR) are increasingly required to produce a customer-facing supply-chain story for security review, air-gap deployment, and SLSA / NIST SSDF compliance. Today AICR can pin gpu-operator's chart versions and image digests, and we render the deployed image set into a public CycloneDX BOM, but we cannot complete the chain because the published artifacts cannot be verified against a publisher-rooted, transparency-logged trust path.
Current state
Verified against nvcr.io/nvidia/gpu-operator:v26.3.1 (the most recent release at the time of filing):
- Image is signed (legacy, key-based). A
.sigartifact exists alongside the image with adev.cosignproject.cosign/signatureannotation. The signature carries no embedded Fulcio certificate and no Rekor bundle, so verification requires consumers to know and trust an out-of-band public key.cosign verify <image>(keyless mode) fails withno matching signatures: empty key. - No SLSA build provenance attestation.
cosign verify-attestation --type slsaprovenance <image>returnsno matching attestations. There is no cryptographic record tying the image digest to its build workflow, source commit, and dependencies. - No SBOM attestation.
cosign download attestation <image>returnsno attestations. Customers cannot fetch a tamper-evident inventory of what's inside the image.
The ask below is to move from key-based signing to the modern keyless + Rekor + SLSA + SBOM pattern that admission policies (Kyverno, Gatekeeper, Sigstore policy-controller) and supply-chain tools (Trivy, Grype, in-toto) verify natively.
What we're asking for
Concretely, on each gpu-operator release:
- Cosign keyless signature on every container image (
cosign sign <image>@<digest>with the GitHub Actions OIDC identity). - SLSA Build L3 provenance attestation (e.g., via
slsa-github-generatoror the cosign+goreleaser integration; predicate typehttps://slsa.dev/provenance/v1). - SBOM attestation (e.g.,
syft attestwith predicate typehttps://cyclonedx.org/bomor SPDX equivalent).
The same applies to the Helm chart artifact when published as an OCI artifact (cosign sign-blob or the chart-aware equivalent).
Reference implementations
Two NVIDIA-owned projects already do this end-to-end and can serve as direct templates:
- AICR (NVIDIA/aicr)
.github/actions/sbom-and-attest/action.yml— composite action that signs container images, generates SBOMs, and attaches both as cosign attestations.github/actions/generate-slsa-predicate/action.yml— generates the SLSA Build L3 provenance predicate.github/workflows/on-tag.yaml— release workflow that orchestrates the full pipeline.goreleaser.yaml— keyless cosign signing for CLI binaries viacosign attest-blobpost-build hook
- NVSentinel (NVIDIA/nvsentinel)
.github/actions/sbom-and-attest/action.yml— same composite-action pattern as AICR.github/workflows/release.yml— release workflow
Both produce signatures verifiable with stock cosign:
cosign verify <image-or-chart>@<digest> \
--certificate-identity-regexp 'https://github.com/NVIDIA/gpu-operator/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
Acceptance criteria
A release counts as "fully attested" when, for every published image and chart artifact:
cosign verify ...succeeds with the publisher's expected OIDC identity (no out-of-band key required).cosign verify-attestation --type slsaprovenance ...returns a SLSA v1 predicate naming the source repo and the build workflow.cosign verify-attestation --type cyclonedx ...(or SPDX equivalent) returns an SBOM attestation.
- Ngôn ngữ chính
- Go
- Star
- 2.9k
- Fork
- 582
- Merge trung bình
- 2 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 57
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/gpu-operator
-
[Bug]: dcgm-exporter no longer gets hostNetwork when a host DCGM is set through dcgmExporter.envCó thể đã có người làm @blacksoxx đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
NVIDIA/gpu-operator#3091 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feature lifecycle/frozen needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
NVIDIA/gpu-operator#3074 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: GPUCluster common name label breaks DRA validator selectorCó thể đã có người làm @ajavanma đã nhận 30 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
NVIDIA/gpu-operator#2955 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Precompiled node pools drop kernels that sanitize to the same nameCó thể đã có người làm @SebTardif đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 20/100
NVIDIA/gpu-operator#3098 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: ClusterPolicy reconcile panics when a DaemonSet has no annotationsCó thể đã có người làm @SebTardif đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
NVIDIA/gpu-operator#3096 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA/gpu-operator
Issue tương tự
-
feature suggestion
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
openvibely/openvibely#1526 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Usenova-Labs/usenova-backend#36 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug raised-by:verifier
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
medici-finance/assay#4177 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug: admin user creation silently ignores roleCó thể đã có người làm @bfs2021 đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
eugenioenko/autentico#553 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
sidecar: --moriio-parallel-dispatch omits remote_request_id, so a vLLM NixlPushConnector decode dies with KeyErrorCó thể đã có người làm @xintin đã nhận hôm nay. Đang mởkind/bug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
llm-d/llm-d-router#3607 ·
Maintainer thường phản hồi trong vòng 1 ngày