Installation one-liner
kubectl apply -f https://infra.tekton.dev/tekton-releases/chains/previous/v0.29.0/release.yamlAttestation
The Rekor UUID for this release is
108e9186e8c5677a82aef8db00e95c000a21e72f54ff0b2efbee3300c0f3bdc2a30a7f9485d76641
Obtain the attestation:
REKOR_UUID=108e9186e8c5677a82aef8db00e95c000a21e72f54ff0b2efbee3300c0f3bdc2a30a7f9485d76641
rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | jq .Verify that all container images in the attestation are in the release file:
RELEASE_FILE=https://infra.tekton.dev/tekton-releases/chains/previous/v0.29.0/release.yaml
REKOR_UUID=108e9186e8c5677a82aef8db00e95c000a21e72f54ff0b2efbee3300c0f3bdc2a30a7f9485d76641
# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | jq -r '.subject[]|.name + ":v0.29.0@sha256:" + .digest.sha256')
# Download the release file
curl -L "$RELEASE_FILE" > release.yaml
# For each image in the attestation, match it to the release file
for image in $REKOR_ATTESTATION_IMAGES; do
printf $image; grep -q $image release.yaml && echo " ===> ok" || echo " ===> no match";
doneChanges
Features
- ✨ feat: add OCI 1.1 Referrers API support with configurable encoding format (#1691)
feat: OCI storage now supports the OCI 1.1 Referrers API via a new config key:
Set storage.oci.encoding-format: sigstore-bundle in the chains-config ConfigMap
to store signatures and attestations as Sigstore protobuf bundles (v0.3) via the
OCI 1.1 Referrers API instead of .sig/.att tags.
- Default value
dssepreserves existing tag-based behavior (backward compatible). sigstore-bundlemode: both signatures and attestations are pushed as OCI 1.1 referrers withartifactType: application/vnd.dev.sigstore.bundle.v0.3+json, discoverable viaoras discoverorcosign download.- Transparency log entries (Rekor) are embedded in the bundle when
transparency.enabled: "true". - Verification:
cosign verifyandcosign verify-attestationwork with both modes. - Re-signing in
sigstore-bundlemode accumulates referrers (one per signing invocation) because ECDSA is non-deterministic; the dedup only coalesces exact crash-recovery retries. - Invalid values for
storage.oci.encoding-formatare rejected by the controller at config-load time; the last valid config continues to be used.
Fixes
-
🐛 fix(release): stop duplicating GitHub release title (#1851)
-
🐛 fix(storage): skip docdb watcher reconfiguration on empty file read (#1769)
-
🐛 fix(signing): make KMS OIDC fallback test environment-independent (#1765)
Misc
-
🔨 chore(deps): bump github.com/tektoncd/pipeline from v1.14.1 to v1.15.0 (#1854)
-
🔨 Ignore otel major/minor updates in dependabot (#1817)
-
🔨 fix-CVE-2026-48702 -bump sigstore/rekor (#1793)
-
🔨 chore(deps): bump the all group with 8 updates (#1849)
-
🔨 chore(deps): bump github.com/sigstore/sigstore-go from 1.1.4 to 1.2.1 (#1844)
-
🔨 chore(deps): bump the all group across 1 directory with 6 updates (#1840)
-
🔨 chore(deps): bump github.com/google/cel-go from 0.28.1 to 0.29.0 (#1839)
-
🔨 chore(deps): bump the all group with 4 updates (#1833)
-
🔨 chore(deps): bump google.golang.org/grpc from 1.82.0 to 1.82.1 (#1825)
-
🔨 chore(deps): bump the all group with 3 updates (#1824)
-
🔨 chore(deps): bump the all group with 5 updates (#1808)
-
🔨 chore(deps): bump the all group with 3 updates (#1788)
-
🔨 chore(deps): bump the all group across 1 directory with 21 updates (#1768)
-
🔨 chore(deps): bump the all group with 2 updates (#1763)
Docs
Thanks
Thanks to these contributors who contributed to v0.29.0!
- ❤️ @Liu-ko
- ❤️ @SAY-5
- ❤️ @ab-ghosh
- ❤️ @anithapriyanatarajan
- ❤️ @app/dependabot
- ❤️ @arpitjain099
- ❤️ @infernus01
- ❤️ @jkhelil
- ❤️ @khrm
- ❤️ @lcarva
- ❤️ @ngelman1
- ❤️ @vdemeester
Extra shout-out for awesome release notes:
- 😍 @Liu-ko
- 😍 @SAY-5
- 😍 @ab-ghosh
- 😍 @anithapriyanatarajan
- 😍 @arpitjain099
- 😍 @infernus01
- 😍 @jkhelil
- 😍 @khrm
- 😍 @lcarva
- 😍 @ngelman1
- 😍 @vdemeester