Skip to main content
Version: 0.1.0-rc.5

Diagram

Verification flow before reconcile

The controller resolves a tag, verifies the signature and optional transparency-log evidence, then writes only the verified digest into managed workloads.

Decision matrix

Supply-chain controls at a glance

Supply-chain controls at a glance.
ControlWhat it blocksOperational note
Transparency-log verificationOpaque signing events with no public evidence trail.This is on by default and is usually only disabled for disconnected environments.
Admission digest enforcementDirect API writes that bypass the controller and reintroduce mutable tags.This is defense in depth, not a replacement for reconciliation-time verification.

Trust surfaces

Reference table

What gets verified

What gets verified.
Image surfaceConfiguration fieldWhy it is separate
Init, backup, restore, and upgrade imagesspec.operatorImageVerificationHelper images are published by the operator project and often need their own trust policy.
Helm chart and release artifactsOut-of-cluster verificationThese should be verified during installation and upgrade planning even though the controller does not reconcile them in-cluster.

Reference table

Trust-source choices

Trust-source choices.
PathUse it whenWatch for
Public-key verificationYour organization signs images with its own key or needs an offline verification path.Rotate the public key deliberately and make sure the key distribution path is auditable.
Warning-only rolloutYou are onboarding verification in a non-production environment and need visibility before enforcing block behavior.This should be a transition state, not the final production posture.

Failure behavior

Decision matrix

Verification failure policy

Verification failure policy.
PolicyController behaviorWhen to use it
WarnRecords and logs the verification failure but continues with the original image reference.Use this only while you are standing up signing infrastructure or testing policy adoption.
Hardened profile expectations

The Hardened profile is opinionated here. The intent is that image verification stays on, mutable-tag rollouts are not the norm, and official-image defaults are only used when the operator can still tie trust back to the expected signer identity.

Verify published release artifacts

Configure

Enable verification for both workload image surfaces

yaml

spec:
imageVerification:
enabled: true
failurePolicy: Block
operatorImageVerification:
enabled: true
failurePolicy: Block

Treat the main OpenBao image and operator helper images as separate trust surfaces. They may share policy, but they should not share assumptions blindly.

Verify

Verify a published operator image outside the cluster

bash

IMAGE="ghcr.io/dc-tec/openbao-operator@sha256:<digest>"

cosign verify \
--new-bundle-format=true \
--certificate-identity "https://github.com/dc-tec/openbao-operator/.github/workflows/release.yml@refs/tags/X.Y.Z" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
"${IMAGE}"

Use the matching tag or release metadata for the version you are about to deploy, and verify by digest rather than by mutable tag.

Continue workload protections

Prerelease documentation

This version tracks a prerelease build. Features and behavior may change before the next stable release.

Was this page helpful?

Use Needs work to open a structured GitHub issue for this page. The Yes button only acknowledges the signal locally.