NVIDIA / NVIDIA/gpu-operator

Publish keyless cosign signatures, SLSA provenance, and SBOM attestations for releases

Open
#2,432 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature lifecycle/frozen
Dominant language
Go
Stars
2.9k
Forks
552
Avg merge
2d 4h
Merged PRs (30d)
90

Description

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 .sig artifact exists alongside the image with a dev.cosignproject.cosign/signature annotation. 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 with no matching signatures: empty key.
  • No SLSA build provenance attestation. cosign verify-attestation --type slsaprovenance <image> returns no 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> returns no 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:

  1. Cosign keyless signature on every container image (cosign sign <image>@<digest> with the GitHub Actions OIDC identity).
  2. SLSA Build L3 provenance attestation (e.g., via slsa-github-generator or the cosign+goreleaser integration; predicate type https://slsa.dev/provenance/v1).
  3. SBOM attestation (e.g., syft attest with predicate type https://cyclonedx.org/bom or 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:

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.

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 by comparing the referenced AICR and NVSentinel workflows and composite actions, then locate gpu-operator's release workflow and artifact-publishing entry points. Validate a test release with the cosign verification commands in the acceptance criteria. Done means every published image and chart has a keyless signature, SLSA provenance, and SBOM attestation verifiable without an out-of-band key.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions
Domain
ci-cd, devops, release, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.