Skip to content

Images build with buildx v0.10.x fail to pull on Windows nodes #8070

@marosset

Description

@marosset

Description

Windows images build with docker buildx build --platform windows/amd64 --output=type=registry fail to on Windows nodes running containerd after upgrading from buildx v0.9.1 to buildx v0.10.0.

Kubetlet logs:

I0203 21:24:05.678663    3768 azure_credentials.go:221] image(docker.io/sigwindowstools/calico-install) is not from ACR, return empty authentication
E0203 21:24:07.319737    3768 remote_image.go:238] "PullImage from image service failed" err="rpc error: code = NotFound desc = failed to pull and unpack image \"docker.io/sigwindowstools/calico-install:v3.24.4-hostprocess\": no match for platform in manifest: not found" image="sigwindowstools/calico-install:v3.24.4-hostprocess"
E0203 21:24:07.320262    3768 kuberuntime_image.go:51] "Failed to pull image" err="rpc error: code = NotFound desc = failed to pull and unpack image \"docker.io/sigwindowstools/calico-install:v3.24.4-hostprocess\": no match for platform in manifest: not found" image="sigwindowstools/calico-install:v3.24.4-hostprocess"

ctr.exe logs:

ctr.exe image pull docker.io/sigwindowstools/calico-install:v3.24.4-hostprocess --debug
docker.io/sigwindowstools/calico-install:v3.24.4-hostprocess:                     resolved       |+++++++++++++++++++++++++++++++++++docker.io/sigwindowstools/calico-install:v3.24.4-hostprocess:                     resolved       |++++++++++++++++++++++++++++++++++++++|
index-sha256:4b1a97c5a3ccbd0fc3ab2308747d28634a4c201e697c6963dff6c6f0485e51f6:    exists         |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:f8b7c7702459abe8dc128c17d020d5c6c4b25a3f9960c84cb5ef273e8b297d09: exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:cbc4a3699674b610fab016be86692d5538ea23f18436375ec6cb9f5fa9a621a4:    exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:f6a37df2e620157eb3d257b982f0963c1e98a3e03144cf0169a4318aa8f4dd84:    exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:677eed3c00057fbaeb2d1e58fe19b96b6f76b99ffd77ee48678ead472d02d063:    exists         |++++++++++++++++++++++++++++++++++++++|
config-sha256:d7e9a3dd9670713e94c55fd81aaeefdf069e52d5e41cfd1eba68107d994f87e8:   exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:abad87718172e9cf02d04be134096bb0e24ccffcc806d70ef746a9f526b00f09:    exists         |++++++++++++++++++++++++++++++++++++++|
layer-sha256:4c6e845f8e5e24ff13cb10ceaf73c4a8d010bae71a208c52975a809f0749b843:    exists         |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.9 s                                                                    total:   0.0 B (0.0 B/s)

unpacking windows/amd64 sha256:4b1a97c5a3ccbd0fc3ab2308747d28634a4c201e697c6963dff6c6f0485e51f6...
ctr: no match for platform in manifest sha256:4b1a97c5a3ccbd0fc3ab2308747d28634a4c201e697c6963dff6c6f0485e51f6: not found

Steps to reproduce the issue

  1. build and push an image with docker buildx build --platform windows/amd64 --output=type=registry (example: https://github.com/kubernetes-sigs/sig-windows-tools/blob/727707fa7d83d401956b467a5ce41700cce7d9a3/hostprocess/calico/build.sh#L29
  2. Try and pull the image on a Windows node running containerd

Describe the results you received and expected

I would expect the image to pull

What version of containerd are you using?

v1.6.15

Any other relevant information

It looks like this is a result of provenance information
I noticed that docker manifest inspect also failed on images created with buildx v0.10.0 as also that the image type changed

buildx v0.9.1 would push images as MediaType: application/vnd.docker.container.image.v1+json
buildx v0.10.0 would push images as MediaType: application/vnd.oci.image.index.v1+json

Show configuration if it is related to CRI plugin.

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions