ci: disable default buildx attestations when pushing images - #614
Merged
loveRhythm1990 merged 1 commit intoAug 23, 2026
Merged
Conversation
Since BuildKit v0.11, `buildx build --push` attaches a provenance
attestation by default. The attestation is referenced from the OCI image
index through a descriptor whose config mediaType is
`application/vnd.oci.empty.v1+json`, which Alicloud ACR does not
recognise. Every push to the ACR targets has therefore been rejected
with:
denied: unknown manifest class for application/vnd.oci.empty.v1+json
Layers and the image manifest push fine; only the attestation manifest
is refused, which fails the whole build. Docker Hub accepts the format,
so only the ACR targets break.
The workflow file itself did not change - `docker/setup-buildx-action@v1`
installs the current buildx release, so the behaviour drifted underneath
us. `Release Image` has failed on every run since 2026-08-21 and no
nightly image has been published since 2026-07-14.
`docker/build-push-action@v2` is too old to expose a `provenance` input,
so opt out through the buildx-native environment variable instead, which
works regardless of the action version.
Fixes matrixorigin#613
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
gouhongshen
approved these changes
Aug 23, 2026
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #613
Problem
Release Imagehas failed on every run since 2026-08-21, so no operator nightly image has been published since 2026-07-14. TheBuildstep is rejected by Alicloud ACR:Layers and the image manifest push successfully; only the final object is refused. That object is the provenance attestation manifest, which BuildKit has attached by default since v0.11. It is referenced from the OCI image index through a descriptor whose config mediaType is
application/vnd.oci.empty.v1+json, and ACR does not recognise it. Docker Hub accepts the format, so only the ACR targets fail.Nothing in the workflow file changed.
docker/setup-buildx-action@v1does not pin a buildx version, so it installs whatever is current and the behaviour drifted underneath us. The failures start at #607, which predates the Kruise chart work and touched neitherDockerfilenorrelease_image.yml.Change
docker/build-push-action@v2is too old to expose aprovenanceinput, so this opts out via the buildx-native environment variable, which works regardless of the action version:The pushed artifact becomes a plain multi-arch image index that ACR accepts. Image content, tags, platforms and cache configuration are unchanged.
Verification
This can only be fully verified by the push itself, since the failure is registry-side and the ACR credentials are only available to the workflow. Locally verified so far:
envblock is attached to theBuildstep;Please confirm the post-merge
Release Imagerun publishesnightly-<sha>-<date>to all three registries.Not included
release_image.ymlstill usesactions/checkout@v3,docker/login-action@v1,docker/setup-buildx-action@v1anddocker/build-push-action@v2, all targeting Node 20 and now force-run on Node 24 with deprecation warnings. Bumping those (and switching to an explicitprovenance: falseonbuild-push-action@v6) is worth doing, but keeping it out of this PR means restoring publishing is not entangled with an action-version bump that changes more behaviour at once.🤖 Generated with Claude Code