kind icon indicating copy to clipboard operation
kind copied to clipboard

Kind node image does not ship containerd v2.1.4

Open speijnik opened this issue 6 months ago • 8 comments

What happened:

When creating a cluster using kind v0.3.0 the resulting nodes contain an unexpected containerd version - v2.1.3.

What you expected to happen:

containerd version in node is v2.1.4 as documented in the kind v0.3.0 release notes. containerd v2.1.4 addresses multiple issues, including one that impacts the ability of a node to pull images at all (https://github.com/containerd/containerd/pull/12127).

How to reproduce it (as minimally and precisely as possible):

Create a cluster with kind v0.3.0. This affects all clusters equally.

Anything else we need to know?:

Some digging showed me that the base image used by kind to build node images has not been updated with the v0.3.0 release. This includes both the image itself, which has not been updated, as well as the reference to the image (pkg/build/nodeimage/defaults.go).

When building the base image using the tooling in the repository one ends up with an image that comes with containerd v2.1.4, but still contains v0.29.0 in the image tag. This in turn seems to be caused by v0.3.0 being a lightweight git tag and not an annotated git tag.

Environment:

  • kind version: (use kind version): kind v0.30.0 go1.25.0 darwin/arm64

speijnik avatar Oct 15 '25 07:10 speijnik

There is also this kubernetes 1.34.0 CRD bug that got fixed in 1.34.1 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md#changelog-since-v1340

It seems containerd is targeting 2.2.0 for nov 5 https://github.com/containerd/containerd/milestones

So, we can do a new patch and fix current problem and update to latest the dependencies

@stmcginnis @BenTheElder WDYT

aojea avatar Oct 15 '25 08:10 aojea

We are expecting a 1.34.2 next week from Kubernetes as well to consider.

I'm not sure if we should wait for 2.2 or go ahead with patching to have 2.1.4, but it might make sense to pick up 1.34.2 as the default because 1.34.x has had some noteworthy fixes and kinv v0.30 is defaulting to 1.34.0

Create a cluster with kind v0.3.0. This affects all clusters equally.

Some digging showed me that the base image used by kind to build node images has not been updated with the v0.3.0 release.

Aside, these should say "v0.30.0", right? Unless they are the release from 2019 (doesn't seem so)

When building the base image using the tooling in the repository one ends up with an image that comes with containerd v2.1.4, but still contains v0.29.0 in the image tag. This in turn seems to be caused by v0.3.0 being a lightweight git tag and not an annotated git tag.

It's not related to the git tagging, it's due to the base image being a pre-built artifact that we don't live build for every node image build, it was not updated properly or the release notes are in error.

BenTheElder avatar Oct 16 '25 20:10 BenTheElder

Aside, these should say "v0.30.0", right? Unless they are the release from 2019 (doesn't seem so)

You are absolutely right, typo on my end.

It's not related to the git tagging, it's due to the base image being a pre-built artifact that we don't live build for every node image build, it was not updated properly or the release notes are in error.

This is true, I wanted to share the finding that - independent from the missing base image update - git describe still reports back v0.29.0 as this was the last annotated tag. Just in case you run into this situation as well.

speijnik avatar Oct 17 '25 07:10 speijnik

Thanks. I don't think this is related, but we should revisit if the release scripting should prefer annotated tags or not.

BenTheElder avatar Oct 20 '25 17:10 BenTheElder

I intended to make sure we did a patch release following the Kubernetes patch releases so we can batch this up with 1.34.2 bug fixes, I know of at least one that would be good to have available before kubecon, but those were delayed again it seems.

Previously expected one week delay to the 22nd: https://groups.google.com/a/kubernetes.io/g/dev/c/pfJfn0YUeqo/m/DQ-FIaU4BAAJ

Following up with SIG Release about that first.

BenTheElder avatar Oct 27 '25 18:10 BenTheElder

sorry to bother, will there be an updated Docker hub kindest/base image with a suitable tag? The latest "stable" is v20250521-31a79fd4. I understand that this image is not intended for reuse, yet would like to leverage the updated containerd and the image in my CRI event-pleg API tests in a different opensource project.

thediveo avatar Dec 10 '25 13:12 thediveo

We will be doing a new release very soon, though no specific date has been set yet.

stmcginnis avatar Dec 10 '25 14:12 stmcginnis

We have https://github.com/kubernetes-sigs/kind/pull/4056 pending, I've been out a bit more recently and the Kubernetes (main repo) patch releases were delayed previously, we'll probably try to put out a release aligned with k8s 1.35

I understand that this image is not intended for reuse, yet would like to leverage the updated containerd and the image in my CRI event-pleg API tests in a different opensource project.

Yes, you can do this, but it's not supported, and we're not really building the dev cycle around it. You could build the image yourself if you're using the base image directly to do other things. See images/base, but please read the docs around expectations first. We do not support depending on the contents of this image and they are subject to change at any time.

BenTheElder avatar Dec 10 '25 19:12 BenTheElder

Yesterday released v0.31.0 with containerd 2.2

Sorry about that.

BenTheElder avatar Dec 18 '25 19:12 BenTheElder

No need to sorry! Thank you very much!

thediveo avatar Dec 18 '25 19:12 thediveo