Skip to content

fix: pull platform-specific images in sensor integration tests#19016

Merged
janisz merged 1 commit intomasterfrom
fix/multiarch-kind-load-platform
Feb 13, 2026
Merged

fix: pull platform-specific images in sensor integration tests#19016
janisz merged 1 commit intomasterfrom
fix/multiarch-kind-load-platform

Conversation

@janisz
Copy link
Contributor

@janisz janisz commented Feb 13, 2026

Fix multi-arch image loading issue in PR #18867 where Kind fails to load images with error "content digest not found" for arm64 layers.

Digest: sha256:a05b0cdd4fc1be3b224ba9662ebdf98fe44c09c0c9215b45f84344c12867002e
Status: Downloaded newer image for quay.io/rhacs-eng/qa-multi-arch:nginx-1.21.1
quay.io/rhacs-eng/qa-multi-arch:nginx-1.21.1
Image: "quay.io/rhacs-eng/qa-multi-arch:nginx-1.21.1" with ID "sha256:a05b0cdd4fc1be3b224ba9662ebdf98fe44c09c0c9215b45f84344c12867002e" not yet present on node "chart-testing-control-plane", loading...
ERROR: failed to load image: command "docker exec --privileged -i chart-testing-control-plane ctr --namespace=k8s.io images import --all-platforms --digests --snapshotter=overlayfs -" failed with error: exit status 1

Command Output: ctr: content digest sha256:c3fac7e735043c29e20d73b964c581fc9e1ef15b1b9450b28d2a3c71773bd04e: not found

Problem: When docker pull fetches multi-arch images on amd64 runners, it downloads the manifest index but only pulls amd64 layers. Kind's import with --all-platforms then fails because arm64 layers weren't downloaded.

Solution: Add --platform linux/amd64 flag to docker pull to fetch only the platform-specific variant without the multi-arch manifest index. This ensures consistency between pulled layers and what Kind attempts to import.

See:

@janisz janisz requested a review from a team as a code owner February 13, 2026 09:01
@janisz janisz requested a review from stehessel February 13, 2026 09:02
@janisz janisz changed the title fix: pull platform-specific images for Kind in sensor integration tests fix: pull platform-specific images in sensor integration tests Feb 13, 2026
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Hard-coding --platform linux/amd64 in the workflow may limit future use on other runner architectures; consider deriving the platform from a matrix or an environment variable so the step remains portable.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Hard-coding `--platform linux/amd64` in the workflow may limit future use on other runner architectures; consider deriving the platform from a matrix or an environment variable so the step remains portable.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@janisz janisz force-pushed the fix/multiarch-kind-load-platform branch from 2b3023b to 0b30572 Compare February 13, 2026 09:06
User request: Fix multi-arch image loading issue in PR #18867 where Kind
fails to load images with error "content digest not found" for arm64 layers.

Problem: kind load docker-image uses docker save and ctr images import
--all-platforms internally. When docker pull fetches multi-arch images, even
with --platform flag, docker save includes manifest index references. The ctr
import then fails because arm64 layers referenced in the manifest aren't present.

Solution: Bypass "kind load docker-image" entirely by pulling images directly
inside the Kind node using ctr. This avoids the docker save/import dance and
the --all-platforms issue.

Approach:
1. Use docker exec to run ctr inside the Kind node
2. Pull with --platform linux/amd64 to get only the needed variant
3. Pass quay.io credentials via --user flag to ctr

This is a recommended workaround from kubernetes-sigs/kind issues #3795, #3845,
and #4066, which document this as a known issue with Docker 29 and containerd.

References:
- kubernetes-sigs/kind#4066
- kubernetes-sigs/kind#3845
- kubernetes-sigs/kind#3795

Code changes developed with AI assistance.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@janisz janisz force-pushed the fix/multiarch-kind-load-platform branch from 0b30572 to 3882854 Compare February 13, 2026 09:12
@rhacs-bot
Copy link
Contributor

rhacs-bot commented Feb 13, 2026

Images are ready for the commit at 3882854.

To use with deploy scripts, first export MAIN_IMAGE_TAG=4.11.x-94-g38828541e9.

@codecov
Copy link

codecov bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.51%. Comparing base (dba6a17) to head (3882854).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #19016      +/-   ##
==========================================
- Coverage   49.52%   49.51%   -0.01%     
==========================================
  Files        2666     2666              
  Lines      201181   201181              
==========================================
- Hits        99629    99622       -7     
- Misses      94114    94120       +6     
- Partials     7438     7439       +1     
Flag Coverage Δ
go-unit-tests 49.51% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@janisz janisz enabled auto-merge (squash) February 13, 2026 10:09
@janisz janisz merged commit 13848d5 into master Feb 13, 2026
95 of 96 checks passed
@janisz janisz deleted the fix/multiarch-kind-load-platform branch February 13, 2026 11:30
davdhacs added a commit that referenced this pull request Feb 17, 2026
Avoid intermediate QUAY_CREDS variable; pass secrets directly
to --user like sensor integration tests do in #19016.

Partially generated by AI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs
Copy link
Contributor

Same problem hit for kind in acs-fleet-manager's emailsender test: #19050

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants