Skip to content

feat(build): publish OCI SBOM and provenance attestations - #2836

Open
alangou wants to merge 2 commits into
mainfrom
alangou/docker-images-sboms-as-oci-artifacts
Open

feat(build): publish OCI SBOM and provenance attestations#2836
alangou wants to merge 2 commits into
mainfrom
alangou/docker-images-sboms-as-oci-artifacts

Conversation

@alangou

@alangoualangou commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Publish per-platform SPDX SBOM and minimal SLSA provenance as OCI artifacts for pushed gateway and supervisor images. This PR is stacked on #2734 so release image SBOMs can include the cargo-auditable Rust dependencies introduced there.

Related Issue

Part of #2686.

Stacked on #2734.

Changes

  • Enable BuildKit SBOM and minimal provenance attestations for registry pushes
  • Export attestations with OCI media types and explicit subjects
  • Verify the merged multi-architecture SBOM, including Cargo metadata for auditable images
  • Document how to inspect published image SBOMs

Testing

  • mise run pre-commit passes
  • SBOM verification exercised against synthetic single- and multi-platform attestations, including missing SPDX and Cargo metadata
  • Registry-backed Docker E2E (test:e2e label on this PR)

Checklist

Signed-off-by: Adrien Langou <alangou@nvidia.com>
@github-actions

Copy link
Copy Markdown

@alangoualangou added the test:e2e Requires end-to-end coverage label Aug 25, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied for 996f6de. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

Signed-off-by: Adrien Langou <alangou@nvidia.com>
@alangou
alangouforce-pushed the alangou/docker-images-sboms-as-oci-artifacts branch from 996f6de to 7f81fb7CompareAugust 25, 2026 10:04
@alangou

Copy link
Copy Markdown
ContributorAuthor

Output can be verified for the docker image that was created in this PR

$ docker buildx imagetools inspect ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121
Name: ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121
MediaType: application/vnd.oci.image.index.v1+json
Digest: sha256:49d835709c3deff8a0d0578149ec9346baa2df8e4e21525c6f8e6fa04470000a
Manifests: Name: ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121@sha256:535e20ef48a644ad6b9bdd54dbfc75d10234ce6a23ae48c4ea6861e871368c7d
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/amd64
Name: ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121@sha256:1d480ffcf9c5f3179c53c75db1db3243069be426fe039f1a682404efc76b0f5c
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: unknown/unknown
Annotations: vnd.docker.reference.digest: sha256:535e20ef48a644ad6b9bdd54dbfc75d10234ce6a23ae48c4ea6861e871368c7d
vnd.docker.reference.type: attestation-manifest
Name: ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121@sha256:2ad4ca0e127b97045ad2e4dd8047e19c5375c20284cb36e997d398ab6cc31367
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/arm64
Name: ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121@sha256:787d2e4a2f3fb7c69072c2c6e7d53535bd610e96c9c41a61beb520c1ca6ef159
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: unknown/unknown
Annotations: vnd.docker.reference.type: attestation-manifest
vnd.docker.reference.digest: sha256:2ad4ca0e127b97045ad2e4dd8047e19c5375c20284cb36e997d398ab6cc31367

And to inspect the sbom

docker buildx imagetools inspect ghcr.io/nvidia/openshell/gateway:7f81fb75dc76827dd05462d7a50b2861a3125121 --format '{{ json .SBOM }}'

@alangou
alangouforce-pushed the alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries branch from 158b724 to b7d6ac7CompareAugust 25, 2026 13:06
Base automatically changed from alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries to mainAugust 25, 2026 14:49
Comment on lines 287 to 293

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would we reproduce this locally?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you comment on which jobs use false (the default)?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2eRequires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@alangou@elezar