Skip to content

Verify releases ​

Releases after 1.2.3 sign their images and their chart with Sigstore cosign, keyless: the certificate is issued to this repository's build.yml running for the release tag, and each signature is recorded in the public Rekor log. Every platform of an image also carries an SPDX SBOM and SLSA provenance. Both are attestation manifests listed in the image index, so the index's signature covers them.

Resolve the tag once and use the digest from then on, so that what you read afterwards belongs to what you verified. With cosign 3:

sh
# Signed: ghcr.io/ioanalytica/k8s-borg, ghcr.io/ioanalytica/k8s-borg-ui,
# ghcr.io/ioanalytica/k8s-borg-ui-runtime-base and ghcr.io/ioanalytica/charts/k8s-borg
repo=ghcr.io/ioanalytica/k8s-borg
digest=$(docker buildx imagetools inspect "$repo:<tag>" --format '{{json .Manifest}}' | jq -r .digest)
cosign verify "$repo@$digest" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp '^https://github\.com/ioanalytica/k8s-borg/\.github/workflows/build\.yml@refs/tags/'

The SBOM and the provenance of an image, per platform:

sh
docker buildx imagetools inspect "$repo@$digest" --format '{{json .SBOM}}'
docker buildx imagetools inspect "$repo@$digest" --format '{{json .Provenance}}'

Distributed under the AGPL-3.0-only license.