Verify container image signatures
Overview
SUSE® Observability container images are cryptographically signed during the build pipeline using Sigstore keyless signing (cosign). Verifying a signature confirms that an image was genuinely built by SUSE from a specific source repository, workflow, and branch or tag — before you pull it into a cluster.
Signing is keyless: there is no public key file to download or manage. Instead, each signature is backed by a short-lived certificate tied to the GitHub Actions job that produced it, and a public, tamper-evident record of the signing event.
Image signing was introduced for platform images in release v2.11.1 and for agent images in release v1.6.1. Images published before this was rolled out do not carry a signature — verifying one of those tags fails with no signatures found, which does not indicate a problem with the image itself. If you rely on signature verification, pull a current tag.
Prerequisites
Install cosign (the Sigstore client):
# macOS
brew install cosign
# Linux, or any platform: download a release binary
# https://github.com/sigstore/cosign/releases
Verify a signature
Run cosign verify against the image reference, pinning the OIDC issuer to GitHub Actions and matching the certificate identity to the StackVista GitHub organization:
cosign verify \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-identity-regexp='^https://github.com/StackVista/.*' \
registry.rancher.com/suse-observability/<image>:<tag>
Replace <image>:<tag> with the image and tag you want to verify, for example clickhouse:26.5.1-so8.
A successful verification prints a Verification for … banner followed by the signed claims, and the command exits with status 0. If the image was not signed by SUSE, the command fails with a non-zero exit code and an error.
Troubleshooting
no signatures found-
This is either an older tag published before we started signing images (see Overview) or a mistyped registry, repository, or tag.
no matching signatures: none of the expected identities matched-
The image was signed, but not by a workflow matching your
--certificate-identity-regexp. Double-check the organization in your pattern. - Private registry access
-
If your environment pulls images through a private mirror or air-gapped registry,
cosign verifyneeds read access to that registry. Log in first withcosign login <registry>ordocker login <registry>.