kind

Developer Tools

Runs local Kubernetes clusters using Docker containers as nodes.

Latest v0.32.0 · by Kubernetes SIGsWebsitekubernetes-sigs/kind

Release activity

Release activity — 3 releases across 3 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 20261 release on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

3 releases in the last year

Changelog

v0.32.0

Added 7
  • Warning is now printed if cgroup v1 is detected on the host
  • kubeadm v1beta4 configuration support with v1beta3 maintained for Kubernetes v1.23.0 to v1.35.x and v1beta2 for older versions
  • Automatic translation of old-style map-based extraArgs and kubeletExtraArgs patches to list-based v1beta4 format
  • Config patches now append to extraArgs, kubeletExtraArgs, and certSANs reliably
  • Support for containerd config v4 format in kind load and snapshotter parsing
  • Support to build node images from Kubernetes CI artifacts
  • Support for containerd version-aware containerd config patching
Changed 4
  • Default node image is now kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5
  • kind load command requires kind v0.32.0 or newer due to containerd upgrade in node images
  • kubeadm v1beta4 config format is now used for Kubernetes 1.36.0+
  • HAProxy replaced by Envoy docker.io/envoyproxy/envoy:v1.36.2 as load balancer in multi-control-plane clusters
Fixed 4
  • Fix permission error when creating pods with hostUsers: false on Kubernetes 1.36+
  • Handle registry ports correctly in image normalization logic for registries on ports like localhost:5000
  • Handle empty port mapping listen addresses correctly by defaulting to wildcard address
  • Skip /dev/mapper mount on rootless Docker

This release contains critical dependency updates, bug fixes, and defaults to Kubernetes 1.36.1.

Breaking Changes

  • The default node image is now kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5
  • New node images requiring upgrading kind to kind load ...: Due to a containerd upgrade, you must upgrade kind to this release or newer to use kind load ... with the newly published node images. As always, we cannot gurantee full compatibility of node images between kind releases. You can use the digests from previous releases, upgrade kind, or build your own node-images.
  • kubeadm v1beta4 config format is now used for Kubernetes 1.36.0+ If you are using versioned config patches, you must update to target v1beta4. Unversioned patches kind will attempt to convert as needed (more below in New Features). This change is required for Kubernetes 1.37+ which drops kubeadm v1beta3 config.
  • Adoption of Envoy for Load Balancing in multi-control-plane node clusters: HAProxy has been replaced by Envoy (docker.io/envoyproxy/envoy:v1.36.2) as the load balancer in multi-control-plane (HA) clusters. If you rely on custom HAProxy loadbalancer configurations or images, please note that Envoy is now used.
  • cgroup v1 warning: A warning is now printed if cgroup v1 is detected on the host. Kubernetes has deprecated support for cgroup v1, and at some point in the future KIND releases / node-images will also drop support for cgroup v1.

New Features

  • kubeadm v1beta4 configuration support: KIND now uses the v1beta4 config format for Kubernetes v1.36.0+ while maintaining v1beta3 for v1.23.0 up to v1.35.x, and v1beta2 for older versions.
  • Custom Merging & Version-Awareness for Kubeadm Config Patches:
    • KIND now automatically translates old-style map-based extraArgs / kubeletExtraArgs patches to the list-based v1beta4 format when targeting v1beta4 configs.
    • Config patches now append to extraArgs / kubeletExtraArgs / certSANs reliably. To overwrite or make other more precise patching, use json6902 patches.
  • Support for containerd config v4 format: Enabled support for containerd's config v4 format in kind load and snapshotter parsing, which is required for newer containerd versions.
  • Building Node Images from CI Artifacts: Added support to build node images from Kubernetes CI artifacts (resolving endpoints like https://dl.k8s.io/ci/latest.txt or CI build prefixes).
  • Support for containerd version-aware containerd config patching: Like kubeadmConfigPatches, containerd config patching is now aware of version and if specified in patches will only apply patches that match the containerd config being used.
  • Assorted dependency updates.

Images pre-built for this release:

  • v1.36.1: kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5
  • v1.35.5: kindest/node:v1.35.5@sha256:ce977ae6d65918d0b58a5f8b5e940429c2ce42fa3a5619ec2bbc60b949c0ac95
  • v1.34.8: kindest/node:v1.34.8@sha256:02722c2dedddcfc00febf5d27fbeb9b7b2c14294c82109ff4a85d89ac9ba3256
  • v1.33.12: kindest/node:v1.33.12@sha256:3f5c8443c620245e4d355cfe09e96a91ead32ceaa569d3f1ca9edf0cb2fe2ff4

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

Fixes

  • Fix permission error when creating pods with hostUsers: false (Kubernetes 1.36+).
  • Handle registry ports correctly in image normalization logic (e.g., registry running on ports like localhost:5000/...).
  • Handle empty port mapping listen addresses correctly (defaults to wildcard address).
  • Skip /dev/mapper mount on rootless Docker.
  • Assorted documentation fixes and improvements.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see #2718

Contributors

Committers for this release:

  • @AnjaliMishra1st
  • @aojea
  • @BenTheElder
  • @dependabot[bot]
  • @dims
  • @egypcio
  • @george-angel
  • @immanuwell
  • @k8s-ci-robot
  • @rjbrown57
  • @shwetha-s-poojary
  • @stmcginnis
  • @tmchow
  • @yesdeepakverma

We'd also like to thank everyone who touched the codebase, filed issues, and helped the community!

View originalPermalink
How v0.32.0 went

v0.31.0

Changed 2
  • Default to Kubernetes 1.35.0
  • Default node image is now kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f
Fixed 2
  • Detect additional edge case with ipv6 support on the host
  • Make development / release scripts GOTOOLCHAIN aware
Deprecated 1
  • Kubernetes 1.35+ will drop support for cgroup v1, and kind node images at those versions will also drop support

This release contains dependency updates and defaults to Kubernetes 1.35.0.

Please take note of the breaking changes from Kubernetes 1.35, and how to prepare for future changes to move off of the deprecated kubeam v1beta3 in favor of v1beta4. We will include updated reminders for both again in subsequent releases.

The default node image is now kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f

Kubernetes will be removing cgroup v1 support, and therefore kind node images at those versions will also be dropping support.

You can read more about this change in the Kubernetes release blog: https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/#removal-of-cgroup-v1-support

If you must use kind on cgroup v1, we recommend using an older Kubernetes release for the immediate future, but we also strongly recommend migrating to cgroup v2.

In the near future as Kubernetes support dwindles, KIND will also clean up cgroup v1 workarounds and drop support in future kind releases and images, regardless of Kubernetes version.

Most stable linux distros should be on cgroupv2 out of the box.

This is a reminder to use pinned images by digest, see the note below about images for this release.

WARNING: Future kind releases will adopt kubeadm v1beta4 configuration, kubeadm v1beta4 has a breaking change to extraArgs: https://kubernetes.io/blog/2024/08/23/kubernetes-1-31-kubeadm-v1beta4/.

If you use the kubeadmConfigPatches feature then you may need to prepare for this change. We recommend that you use versioned config patches that explicitly match the version required.

KIND uses kubeadm v1beta3 for Kubernetes 1.23+, and will likely use v1beta4 for Kubernetes 1.36+ The exact version is TBD pending work to fix this but expected to be 1.36. It will definitely be an as-of-yet-unreleased Kubernetes version to avoid surprises, and it will not be on a patch-release boundary.

KIND may still work with older Kubernetes versions at v1beta2, but we no longer test or actively support these as Kubernetes only supports 1.32+ currently: https://kubernetes.io/releases/

You likely only need v1beta3 + v1beta4 patches, you can take your existing patches that work with v1beta3, explicitly set apiVersion: kubeadm.k8s.io/v1beta3 in the patch at the top level, and make another copy for v1beta4. The v1beta4 patch will need to move extraArgs from a map to a list, for examples see: https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/

For a concrete example of kind config with kubeadm config patch targeting both v1beta3 and v1beta4, consider this simple kind config that sets verbosity of the apiserver logs:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
kubeadmConfigPatches:
# patch for v1beta3 (1.23 ...)
- |
  kind: ClusterConfiguration
  apiVersion: kubeadm.k8s.io/v1beta3
  apiServer:
    extraArgs:
      "v": "4"
# patch for v1beta4 (future)
- |
  kind: ClusterConfiguration
  apiVersion: kubeadm.k8s.io/v1beta4
  apiServer:
    extraArgs:
      - name: "v"
        value: "4"

If you only need to target a particular release, you can use one version.

If you only need to target fields that did not change between kubeadm beta versions, you can use a versionless patch, which may be more convenient, but we cannot guarantee there will be no future kubeadm config breaking changes.

  • Assorted unspecified dependency updates

Images pre-built for this release:

  • v1.35.0: kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f
  • v1.34.3: kindest/node:v1.34.3@sha256:08497ee19eace7b4b5348db5c6a1591d7752b164530a36f855cb0f2bdcbadd48
  • v1.33.7: kindest/node:v1.33.7@sha256:d26ef333bdb2cbe9862a0f7c3803ecc7b4303d8cea8e814b481b09949d353040
  • v1.32.11: kindest/node:v1.32.11@sha256:5fc52d52a7b9574015299724bd68f183702956aa4a2116ae75a63cb574b35af8
  • v1.31.14: kindest/node:v1.31.14@sha256:6f86cf509dbb42767b6e79debc3f2c32e4ee01386f0489b3b2be24b0a55aac2b

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Detect additional edge case with ipv6 support on the host
  • Make development / release scripts GOTOOLCHAIN aware

Committers for this release:

  • @AkihiroSuda
  • @adambkaplan
  • @afbjorklund
  • @aoxn
  • @BenTheElder
  • @dependabot[bot]
  • @k8s-ci-robot
  • @kalexmills
  • @kishen-v
  • @mikejoh
  • @rayowang
  • @shahar1
  • @stmcginnis
View originalPermalink
How v0.31.0 went

v0.30.0

Changed 2
  • Default node image is now kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
  • Updated to containerd 2.1.4
Fixed 4
  • Fix an issue with rebooting v1.33.0+ clusters
  • Add priority class system-critical to kindnetd
  • Fix HA control-plane loadbalancer for podman
  • Fix node-image builds with relative source paths

This is small release containing patched dependencies and Kubernetes 1.34, as well as a bugfix for Kubernetes v1.33.0+ cluster reboots.

The default node image is now kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a

  • Updated to containerd 2.1.4

Images pre-built for this release:

  • v1.34.0: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
  • v1.33.4: kindest/node:v1.33.4@sha256:25a6018e48dfcaee478f4a59af81157a437f15e6e140bf103f85a2e7cd0cbbf2
  • v1.32.8: kindest/node:v1.32.8@sha256:abd489f042d2b644e2d033f5c2d900bc707798d075e8186cb65e3f1367a9d5a1
  • v1.31.12: kindest/node:v1.31.12@sha256:0f5cc49c5e73c0c2bb6e2df56e7df189240d83cf94edfa30946482eb08ec57d2

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

Committers for this release:

  • @BenTheElder
  • @dims
  • @k8s-ci-robot
  • @oduludo
  • @stmcginnis
  • @tchap
  • @tom1299
View originalPermalink
How v0.30.0 went

v0.29.0

Changed 2
  • Update to containerd 2.1.1
  • Default node image is now kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f
Security 1
  • Fix containerd CVE-2025-47290 / GHSA-cm76-qm8v-3j95

This is a quick security release to pickup the containerd 2.1.1 CVE-2025-47290 fix. See v0.28.0 (release days ago!) for full release notes with recent changes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0

The default node image is now kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f

  • Updated to containerd 2.1.1

Images pre-built for this release:

  • v1.33.1: kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f
  • v1.32.5: kindest/node:v1.32.5@sha256:e3b2327e3a5ab8c76f5ece68936e4cafaa82edf58486b769727ab0b3b97a5b0d
  • v1.31.9: kindest/node:v1.31.9@sha256:b94a3a6c06198d17f59cca8c6f486236fa05e2fb359cbd75dabbfc348a10b211
  • v1.30.13: kindest/node:v1.30.13@sha256:397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

Committers for this release:

  • @BenTheElder
  • @k8s-ci-robot
  • @stmcginnis

(Please see v0.28.0 https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0#Contributors)

View originalPermalink
How v0.29.0 went

v0.28.0

Changed 4
  • Update default Kubernetes version to 1.33.1
  • Update containerd to 2.1
  • Update runc to 1.3
  • Update Go to 1.24.2
Fixed 1
  • Node image now sets net.ipv4.conf.all.arp_ignore to 0 to address container networking failures

This release moves to Kubernetes to 1.33.1 by default.

The default node image is now kindest/node:v1.33.1@sha256:8d866994839cd096b3590681c55a6fa4a071fdaf33be7b9660e5697d2ed13002

  • Updated to containerd 2.1 and runc 1.3
  • Updated default node image to Kubernetes 1.33.1
  • Updated go to 1.24.2

Images pre-built for this release:

  • v1.33.1: kindest/node:v1.33.1@sha256:8d866994839cd096b3590681c55a6fa4a071fdaf33be7b9660e5697d2ed13002
  • v1.32.5: kindest/node:v1.32.5@sha256:36187f6c542fa9b78d2d499de4c857249c5a0ac8cc2241bef2ccd92729a7a259
  • v1.31.9: kindest/node:v1.31.9@sha256:156da58ab617d0cb4f56bbdb4b493f4dc89725505347a4babde9e9544888bb92
  • v1.30.13: kindest/node:v1.30.13@sha256:8673291894dc400e0fb4f57243f5fdc6e355ceaa765505e0e73941aa1b6e0b80

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Node image now sets net.ipv4.conf.all.arp_ignore to 0 to address some container networking failures

Thank you to everyone who contributed to this kind over the years!

Committers for this release:

  • @adrianmoisey
  • @AkihiroSuda
  • @aojea
  • @BenTheElder
  • @k8s-ci-robot
  • @mwdomino
  • @null
  • @pellared
  • @rooty0
  • @shaneutt
  • @vonhatnam1212
View originalPermalink
How v0.28.0 went

v0.27.0

Changed 4
  • Move kind to containerd 2.x
  • Update default node image to Kubernetes 1.32.2
  • Update Go to 1.23.6
  • Update shellescape dependency to current vanity import
Fixed 5
  • Add compatibility fixes for containerd 2.x
  • Fix kind get clusters with nerdctl
  • Statically link CNI binaries to match upstream
  • Fix no-arguments validation for multiple subcommands
  • When building node images: wait for containerd to be ready, and retry image pulls

This release moves kind to containerd 2.x and contains fixes for nerdctl. It also moves Kubernetes to 1.32.2 by default.

WARNING: kind v0.27.0+ will be required to use kind load ... subcommands with these new containerd 2.0+ images (built by kind v0.27+). For other use cases, the new images should still work with recent kind releases, but are not guaranteed. As always we strongly recommend consuming images by their sha256 digest for security and reliability. https://github.com/kubernetes-sigs/kind/issues/3853

Older images from recent releases should continue to work with kind v0.27.0+.

NOTE: As previously warned containerd 2.x requires that you must be using config_path mode for containerd registry config. If you're using the local registry script at, or more recent than https://github.com/kubernetes-sigs/kind/commit/791b3dc43cb7cc5cd1d1763fa92c95bab4120903 (kind v0.20.0 / May 22, 2023) then no changes should be necessary.

The default node image is now kindest/node:v1.32.2@sha256:f226345927d7e348497136874b6d207e0b32cc52154ad8323129352923a3142f

  • Updated to containerd 2.x
  • Updated default node image to Kubernetes 1.32.2
  • Updated go to 1.23.6

Images pre-built for this release:

  • v1.32.2: kindest/node:v1.32.2@sha256:f226345927d7e348497136874b6d207e0b32cc52154ad8323129352923a3142f
  • v1.31.6: kindest/node:v1.31.6@sha256:28b7cbb993dfe093c76641a0c95807637213c9109b761f1d422c2400e22b8e87
  • v1.30.10: kindest/node:v1.30.10@sha256:4de75d0e82481ea846c0ed1de86328d821c1e6a6a91ac37bf804e5313670e507
  • v1.29.14: kindest/node:v1.29.14@sha256:8703bd94ee24e51b778d5556ae310c6c0fa67d761fae6379c8e0bb480e6fea29

Additional images pre-built for this release:

  • v1.33.0: kindest/node:v1.33.0@sha256:02f73d6ae3f11ad5d543f16736a2cb2a63a300ad60e81dac22099b0b04784a4e

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Compatibility fixes for containerd 2.x
  • Fix kind get clusters with nerdctl
  • Statically link CNI binaries to match upstream
  • Fix no-arguments validation for multiple subcommands
  • Update shellescape dependency to current vanity import
  • When building node images: wait for containerd to be ready, and retry image pulls

Thank you to everyone who contributed to this kind over the years!

Committers for this release:

  • @AkihiroSuda
  • @BenTheElder
  • @bobsongplus
  • @dependeabot[bot]
  • @dims
  • @k8s-ci-robot
  • @kachick
  • @stmcginnis
  • @tao12345666333
  • @yashvardhan-kukreja
View originalPermalink
How v0.27.0 went

v0.26.0

Changed 4
  • Updated default Kubernetes version to v1.32.0
  • Updated to Go 1.23.4
  • Updated local-path-provisioner to v0.30.0
  • Updated node image dependencies to latest releases
Fixed 1
  • Fixed kind build node-image for Kubernetes releases less than v1.31.0 when using --type=url or --type=release
Removed 2
  • Removed long-deprecated --kube-root flag from kind build node-image, use --type=source and pass the path as an argument instead
  • Removed long-deprecated --loglevel flag, use -v / --verbosity instead

This release brings Kubernetes v1.32.0 to kind by default and fixes kind build node-image for building for Kubernetes releases <v1.31.0 when not building Kubernetes from source (e.g. kind build node-image v1.30.0).

  • Removed two deprecated flags that had been printing usage warnings for many releases.
  • The default node image is now Kubernetes v1.32.0: kindest/node:v1.32.0@sha256:c48c62eac5da28cdadcf560d1d8616cfa6783b58f0d94cf63ad1bf49600cb027
  • Updated to go 1.23.4
  • Updated node image dependencies to latest
    • NOTE: you should only be depending on node images to allow kind to create Kubernetes nodes at a given Kubernetes version. The contents of these images are subject to change. However, we have brought everything up to the latest releases which may contain bug fixes.
  • Updated local-path-provisioner to v0.30.0
  • Refreshed Ingres docs to use https://sigs.k8s.io/cloud-provider-kind

Images pre-built for this release:

  • v1.32.0: kindest/node:v1.32.0@sha256:c48c62eac5da28cdadcf560d1d8616cfa6783b58f0d94cf63ad1bf49600cb027
  • v1.31.4: kindest/node:v1.31.4@sha256:2cb39f7295fe7eafee0842b1052a599a4fb0f8bcf3f83d96c7f4864c357c6c30
  • v1.30.8: kindest/node:v1.30.8@sha256:17cd608b3971338d9180b00776cb766c50d0a0b6b904ab4ff52fd3fc5c6369bf
  • v1.29.12: kindest/node:v1.29.12@sha256:62c0672ba99a4afd7396512848d6fc382906b8f33349ae68fb1dbfe549f70dec

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Fixed kind build node-image --type=url and kind build node-image --type=release where Kubernetes version is less than v1.31.0
    • E.G. kind build node-image v1.30.0 and kind build node-image https://dl.k8s.io/v1.30.0/kubernetes-server-linux-arm64.tar.gz
    • This fix will only work for standard release tags (and not pre-releases etc), for those continue to use --type=source.
    • v1.31.0+ will work with all build types for all versions

Thank you to everyone who contributed to this kind over the years!

Commiters for this release:

  • @aojea
  • @BenTheElder
  • @dependabot[bot]
  • @k8s-ci-robot
  • @stmcginnis
View originalPermalink
How v0.26.0 went

v0.25.0

Added 1
  • Improved documentation for Ingress installation
Changed 3
  • Default node image is now Kubernetes v1.31.2
  • Updated to latest go 1.22.x (1.22.9)
  • Updated kube-network-policies with a DNS fix for network policies
Fixed 4
  • Fix conflict with developing kube-network-policies
  • Detect new docker ipv6 failure message and fallback to ipv4 only gracefully
  • Workaround podman no longer returning host IP for portmaps
  • Aggregate ipmasq sync errors in kindnetd

This release contains a number of small networking fixes and the latest Kubernetes releases. Happy KubeCon!

  • The default node image is now Kubernetes v1.31.2: kindest/node:v1.31.2@sha256:18fbefc20a7113353c7b75b5c869d7145a6abd6269154825872dc59c1329912e
  • Improved documentation for Ingress installation
  • Updated to latest go 1.22.x (1.22.9)

Images pre-built for this release:

  • v1.31.2: kindest/node:v1.31.2@sha256:18fbefc20a7113353c7b75b5c869d7145a6abd6269154825872dc59c1329912e
  • v1.30.6: kindest/node:v1.30.6@sha256:b6d08db72079ba5ae1f4a88a09025c0a904af3b52387643c285442afb05ab994
  • v1.29.10: kindest/node:v1.29.10@sha256:3b2d8c31753e6c8069d4fc4517264cd20e86fd36220671fb7d0a5855103aa84b
  • v1.28.15: kindest/node:v1.28.15@sha256:a7c05c7ae043a0b8c818f5a06188bc2c4098f6cb59ca7d1856df00375d839251
  • v1.27.16: kindest/node:v1.27.16@sha256:2d21a61643eafc439905e18705b8186f3296384750a835ad7a005dceb9546d20
  • v1.26.15: kindest/node:v1.26.15@sha256:c79602a44b4056d7e48dc20f7504350f1e87530fe953428b792def00bc1076dd

Additional images pre-built for this release:

  • v1.32.0: kindest/node:v1.32.0@sha256:2458b423d635d7b01637cac2d6de7e1c1dca1148a2ba2e90975e214ca849e7cb

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Updated kube-network-policies with a DNS fix for network policies
  • Fix conflict with developing kube-network-policies
  • Detect new docker ipv6 failure message and fallback to ipv4 only gracefully
  • Workaround podman no longer returning host IP for portmaps
  • Aggregate ipmasq sync errors in kindnetd

Thank you to everyone who contributed to this release!

Users whose commits are in this release (alphabetically by user name)

  • @aojea
  • @AkihiroSuda
  • @BenTheElder
  • @CharlieTLe
  • @dependabot[bot]
  • @elieser1101
  • @k8s-ci-robot
  • @khanhtc1202
  • @kebe7jun
  • @neolit123
  • @network-charles
  • @richburroughs
  • @stmcginnis
  • @sword-jin

Thank you to everyone who contributed in any way.

A special thank you to @neolit123 for all your help over the years, and stepping down when you no longer had the time. Thank you!

View originalPermalink
How v0.25.0 went

v0.24.0

Added 4
  • Out-of-the-box support for network policy via sigs.k8s.io/kube-network-policies
  • Support for building node images from existing Kubernetes releases
  • Support for loading multiple image archives in kind load image-archive
  • PowerShell completion
Changed 7
  • The default node image is now Kubernetes v1.31.0
  • Migrated to skipPhase in Init/JoinConfiguration instead of kubeadm flags, making it possible for users to customize phases with config patches
  • Updated containerd to 1.7.18
  • Updated runc to 1.1.13
  • Updated Go to 1.22.6
  • Updated CNI plugins to 1.5.1
  • Updated pause to 3.10
Fixed 2
  • Fix kubeadm v1beta3 config template for kubeProxyMode: none
  • Stop disabling LocalStorageIsolation for rootless clusters

Highlights from this release include network policy support using sigs.k8s.io/kube-network-policies (thanks @aojea!) and support for building node images from pre-compiled Kubernetes releases (thanks @dims!).

For building images, see the docs at https://kind.sigs.k8s.io/docs/user/quick-start/#building-images

  • The default node image is now Kubernetes v1.31.0: kindest/node:v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865
  • Out-of-the-box support for network policy via sigs.k8s.io/kube-network-policies
  • Support for building node images from existing Kubernetes releases
  • Support for loading multiple image archives in kind load image-archive
    • NOTE: it is still more efficient to do a single archive in most cases
  • Migrated to skipPhase in Init/JoinConfiguration instead of the kubeadm flags, making it possible for users to cutomize the phases (at your own risk!) with config patches
  • powershell completion
  • Updated dependencies, including, but not limited to:
    • containerd 1.7.18
    • runc 1.1.13
    • go 1.22.6
    • CNI plugins to 1.5.1
    • pause 3.10
  • Docs and clarification for third party install options including scoop and winget

Images pre-built for this release:

  • v1.31.0: kindest/node:v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865
  • v1.30.4: kindest/node:v1.30.4@sha256:976ea815844d5fa93be213437e3ff5754cd599b040946b5cca43ca45c2047114
  • v1.30.3: kindest/node:v1.30.3@sha256:bf91e1ef2f7d92bb7734b2b896b3dddea98f0496b34d96e37dd5d7df331b7e56
  • v1.29.8: kindest/node:v1.29.8@sha256:d46b7aa29567e93b27f7531d258c372e829d7224b25e3fc6ffdefed12476d3aa
  • v1.29.7: kindest/node:v1.29.7@sha256:f70ab5d833fca132a100c1f95490be25d76188b053f49a3c0047ff8812360baf
  • v1.28.13: kindest/node:v1.28.13@sha256:45d319897776e11167e4698f6b14938eb4d52eb381d9e3d7a9086c16c69a8110
  • v1.28.12: kindest/node:v1.28.12@sha256:fa0e48b1e83bb8688a5724aa7eebffbd6337abd7909ad089a2700bf08c30c6ea
  • v1.27.16: kindest/node:v1.27.16@sha256:3fd82731af34efe19cd54ea5c25e882985bafa2c9baefe14f8deab1737d9fabe
  • v1.26.15: kindest/node:v1.26.15@sha256:1cc15d7b1edd2126ef051e359bf864f37bbcf1568e61be4d2ed1df7a3e87b354
  • v1.25.16: kindest/node:v1.25.16@sha256:6110314339b3b44d10da7d27881849a87e092124afab5956f2e10ecdb463b025

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Fix kubeadm v1beta3 config template for kubeProxyMode: none
  • Stop disabling LocalStorageIsolation for rootless clusters (which no longer appears to be necessary to avoid crashes)

Thank you to everyone who contributed to this release! ❤️

Users whose commits are in this release (alphabetically by user name)

  • @abhay-krishna
  • @aojea
  • @BenTheElder
  • @bzsuni
  • @cpanato
  • @dependabot[bot]
  • @dominicqi
  • @douglaswth
  • @giuseppe
  • @harshanarayana
  • @joycecodes
  • @k8s-ci-robot
  • @kundan2707
  • @netguino
  • @nojnhuh
  • @pohly
  • @ste93cry
  • @stmcginnis

Thank you as well to everyone who contributed in other ways like filing issues, giving feedback, testing fixes, and helping users in slack!

View originalPermalink
How v0.24.0 went

v0.23.0

Added 2
  • Initial support for nodes created with nerdctl
  • Initial support for kubeProxyMode: nftables
Changed 3
  • Default node image is now Kubernetes 1.30.0
  • ipFamily config field is now validated
  • Go 1.17+ is required for go install sigs.k8s.io/kind and building the kind binary
Fixed 1
  • Correctly case kubeProxyMode: "none"

This release introduces initial limited support for nerdctl and kube-proxy nftables mode.

  • The default node image is now Kubernetes 1.30.0: kindest/node:v1.30.0@sha256:047357ac0cfea04663786a612ba1eaba9702bef25227a794b52890dd8bcd692e
  • ipFamily config field is now validated
    • While technically a breaking change, if the value you set here is now caught as invalid it was being silently ignored and creating an ipv4 cluster previously and you should correct your config
  • Go 1.17+ is required for go install sigs.k8s.io/kind / building the kind binary
    • Prebuilt binaries are available as an alternative to go install
    • For local development make will automatically setup the correct go version
    • Note that the go team only supports 1.21+ and major linux distros have 1.19+
    • Future releases may increase this to a more current Go release
    • Future release may adopt toolchain in go.mod to make this seamless if you have go 1.21+ installed even without our makefile. We highly recommend installing go 1.21+

Images pre-built for this release:

  • v1.30.0: kindest/node:v1.30.0@sha256:047357ac0cfea04663786a612ba1eaba9702bef25227a794b52890dd8bcd692e
  • v1.29.4: kindest/node:v1.29.4@sha256:3abb816a5b1061fb15c6e9e60856ec40d56b7b52bcea5f5f1350bc6e2320b6f8
  • v1.28.9: kindest/node:v1.28.9@sha256:dca54bc6a6079dd34699d53d7d4ffa2e853e46a20cd12d619a09207e35300bd0
  • v1.27.13: kindest/node:v1.27.13@sha256:17439fa5b32290e3ead39ead1250dca1d822d94a10d26f1981756cd51b24b9d8
  • v1.26.15: kindest/node:v1.26.15@sha256:84333e26cae1d70361bb7339efb568df1871419f2019c80f9a12b7e2d485fe19
  • v1.25.16: kindest/node:v1.25.16@sha256:5da57dfc290ac3599e775e63b8b6c49c0c85d3fec771cd7d55b45fae14b38d3b

NOTE: You must use the @sha256 digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.

See also:

NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718

  • Correctly case kubeProxyMode: "none"

Thank you to everyone who contributed to this release! ❤️

Users whose commits are in this release (alphabetically by user name)

  • @aojea
  • @AkihiroSuda
  • @BenTheElder
  • @dependabot[bot]
  • @estesp
  • @hp685
  • @jizusun
  • @k8s-ci-robot
  • @kevin85421
  • @stmcginnis
  • @tnqn
  • @yankay

Thank you as well to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, and helping users in slack!

View originalPermalink
How v0.23.0 went
View all

Discussion