AlinsRan opened a new pull request, #2907:
URL: https://github.com/apache/apisix-ingress-controller/pull/2907

   ### Type of change:
   
   - [x] CI/CD or Tests
   
   ### What this PR does / why we need it:
   
   Every e2e, conformance and benchmark job now fails before any test runs, on 
master as well as on open PRs:
   
   ```
   make kind-load-adc-image
   ERROR: failed to load image: command "docker exec --privileged -i 
apisix-ingress-cluster-control-plane ctr --namespace=k8s.io images import 
--all-platforms --digests --snapshotter=overlayfs -" failed with error: exit 
status 1
   Command Output: ctr: rpc error: code = NotFound desc = content digest 
sha256:1a6cf9b520679173d0b4a982aa089c049b34ba24fc1bc0198896b769edff5dc2: not 
found
   ```
   
   `ubuntu-latest` moved from ubuntu-24.04 to ubuntu-26.04, which ships Docker 
29 with the containerd image store enabled. With that store, `docker save` 
exports the whole multi-platform index of a pulled image although only the host 
platform's content is present. `kind load docker-image` imports the archive 
with `ctr images import --all-platforms`, so it fails on the missing platform; 
the digest above is the `linux/arm64` manifest of `ghcr.io/api7/adc:0.31.0`. 
kind v0.33.0 and kind main still save and import the same way, so upgrading 
kind does not help.
   
   Load images through a `kind-load-image` Makefile helper. When Docker uses 
the containerd image store, it saves only the Docker server's platform with 
`docker save --platform` and loads that archive with `kind load image-archive`. 
Otherwise it keeps `kind load docker-image`, because `docker save --platform` 
does not exist before Docker 28. All images loaded by `kind-load-images`, 
`kind-load-ingress-image` and `kind-load-adc-image` use the helper.
   
   Validation:
   
   - Docker 29.9.2 (containerd image store) + kind v0.27.0 + 
`kindest/node:v1.32.2`: reproduced the exact CI error with `kind load 
docker-image`; `make kind-load-images` with this change loads all six images 
into the node, and a missing image still fails the target.
   - Docker 27.0.3 (overlay2) + kind v0.27.0: `make kind-load-ingress-image` 
still takes the `kind load docker-image` path and succeeds.
   
   ### Pre-submission checklist:
   
   - [x] Did you explain what problem does this PR solve? Or what new features 
have been added?
   - [ ] Have you added corresponding test cases?
   - [ ] Have you modified the corresponding document?
   - [x] Is this PR backward compatible?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to