Skip to content

Disable Docker containerd image store in integration test workflow#4693

Merged
mauriceyap merged 5 commits intomasterfrom
fix-docker-image-loading
Feb 16, 2026
Merged

Disable Docker containerd image store in integration test workflow#4693
mauriceyap merged 5 commits intomasterfrom
fix-docker-image-loading

Conversation

@mauriceyap
Copy link
Collaborator

@mauriceyap mauriceyap commented Feb 16, 2026

Docker 29 enables the containerd image store by default, which causes
kind load docker-image to fail with "content digest not found" errors.

Disabling containerd-snapshotter restores the previous Docker save/load
behaviour that kind relies on.

The ubuntu-22.04 GitHub Actions runner updated Docker from 28.0.4 to
29.1.5 on 9 February 2026, which changed the image export format.
This broke "kind load docker-image", which internally passes
--all-platforms to ctr, causing "content digest not found" errors
when layers for non-host platforms are absent.

Replace "kind load docker-image" with "docker save" followed by
"kind load image-archive", which avoids the --all-platforms flag.

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
The ubuntu-22.04 GitHub Actions runner updated Docker from 28.0.4 to
29.1.5, which broke "kind load docker-image". The root cause is a
containerd 1.7.x bug (kubernetes-sigs/kind#3795) where --all-platforms
fails when only host-platform layers are present. This was fixed in
containerd 2.0.2, which ships in kindest/node:v1.31.14.

Also remove the KubeletInUserNamespace feature gate, which became GA
in Kubernetes 1.31.

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
@mauriceyap mauriceyap changed the title Fix kind image loading for Docker 29+ Bump kind node image to v1.31.14 to fix Docker 29+ image loading Feb 16, 2026
The ubuntu-22.04 GitHub Actions runner updated Docker from 28.0.4 to
29.1.5, which broke "kind load docker-image" due to a containerd 1.7.x
bug (kubernetes-sigs/kind#3795) where --all-platforms fails when only
host-platform layers are present. This was fixed in containerd 2.0.2,
which ships in kindest/node:v1.31.14.

The kind binary is also bumped to v0.31.0 (the release that ships
this node image) so it can detect the containerd 2.x snapshotter
configuration.

Also remove the KubeletInUserNamespace feature gate, which became GA
in Kubernetes 1.31.

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
@mauriceyap mauriceyap changed the title Bump kind node image to v1.31.14 to fix Docker 29+ image loading Bump kind to v0.31.0 and node image to v1.31.14 Feb 16, 2026
@mauriceyap mauriceyap changed the title Bump kind to v0.31.0 and node image to v1.31.14 Fix kind image loading for Docker 29+ Feb 16, 2026
The ubuntu-22.04 GitHub Actions runner updated Docker from 28.0.4 to
29.1.5, which broke "kind load docker-image". Docker 29 uses the
containerd image store by default, so "docker save" produces archives
with multi-platform manifest indexes but only host-platform layers.
kind's internal "ctr images import --all-platforms" then fails on the
missing non-host-platform content (kubernetes-sigs/kind#3795).

Replace the host-side pull-and-load with "crictl pull" directly inside
each kind node, bypassing "kind load" entirely.

Also bump kind to v0.31.0 and the node image to kindest/node:v1.31.14
to fix a containerd config version warning, and remove the
KubeletInUserNamespace feature gate (GA in Kubernetes 1.31).

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
@mauriceyap mauriceyap enabled auto-merge (squash) February 16, 2026 16:57
Docker 29 enables the containerd image store by default, which causes
kind load docker-image to fail with "content digest not found" errors.
Disabling containerd-snapshotter restores the previous Docker save/load
behaviour that kind relies on.

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
@mauriceyap mauriceyap changed the title Fix kind image loading for Docker 29+ Disable Docker containerd image store in integration test workflow Feb 16, 2026
@mauriceyap mauriceyap disabled auto-merge February 16, 2026 17:20
@mauriceyap mauriceyap enabled auto-merge (squash) February 16, 2026 17:20
@mauriceyap mauriceyap merged commit 5caaa97 into master Feb 16, 2026
24 of 27 checks passed
@mauriceyap mauriceyap deleted the fix-docker-image-loading branch February 16, 2026 17:35
mauriceyap added a commit that referenced this pull request Feb 17, 2026
…ython, Airflow)

This makes the change in #4693 to the Python Client and Airflow Operator GitHub Actions workflows.

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
JamesMurkin pushed a commit that referenced this pull request Feb 17, 2026
…ython, Airflow) (#4696)

This makes the change in #4693 to the Python Client and Airflow Operator
GitHub Actions workflows.

---------

Signed-off-by: Maurice Yap <mauriceyap@hotmail.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants