# kind changelog
> Runs local Kubernetes clusters using Docker containers as nodes.
- Vendor: Kubernetes SIGs
- Category: Developer Tools
- Official site: https://kind.sigs.k8s.io
- Tracked by: What's New (https://whatsnew.fyi/product/kind)
- Harvested from: GitHub (kubernetes-sigs/kind)
- Entries below: 10 (newest first)
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
## Releases
### v0.32.0
- Date: 2026-06-02
- Version: v0.32.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.32.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.32.0
- **changed** — Default node image is now kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5
- **changed** — kind load command requires kind v0.32.0 or newer due to containerd upgrade in node images
- **changed** — kubeadm v1beta4 config format is now used for Kubernetes 1.36.0+
- **changed** — HAProxy replaced by Envoy docker.io/envoyproxy/envoy:v1.36.2 as load balancer in multi-control-plane clusters
- **added** — Warning is now printed if cgroup v1 is detected on the host
- **added** — kubeadm v1beta4 configuration support with v1beta3 maintained for Kubernetes v1.23.0 to v1.35.x and v1beta2 for older versions
- **added** — Automatic translation of old-style map-based extraArgs and kubeletExtraArgs patches to list-based v1beta4 format
- **added** — Config patches now append to extraArgs, kubeletExtraArgs, and certSANs reliably
- **added** — Support for containerd config v4 format in kind load and snapshotter parsing
- **added** — Support to build node images from Kubernetes CI artifacts
- **added** — Support for containerd version-aware containerd config patching
- **fixed** — Fix permission error when creating pods with hostUsers: false on Kubernetes 1.36+
- **fixed** — Handle registry ports correctly in image normalization logic for registries on ports like localhost:5000
- **fixed** — Handle empty port mapping listen addresses correctly by defaulting to wildcard address
- **fixed** — 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](https://github.com/kubernetes/enhancements/issues/5573), 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.
_[Truncated at 4000 characters — full notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.32.0]_
### v0.31.0
- Date: 2025-12-18
- Version: v0.31.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.31.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.31.0
- **changed** — Default to Kubernetes 1.35.0
- **changed** — Default node image is now kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f
- **fixed** — Detect additional edge case with ipv6 support on the host
- **fixed** — Make development / release scripts GOTOOLCHAIN aware
- **deprecated** — 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.
Breaking Changes
The default node image is now `kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f`
Kubernetes 1.35+ Cgroup v1
Kubernetes [will be removing cgroup v1 support](https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/#removal-of-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.
Kubeadm Config *Future* Breaking Change
**WARNING**: Future kind releases will [adopt kubeadm v1beta4](https://github.com/kubernetes-sigs/kind/issues/3847) configuration, [kubeadm](https://github.com/kubernetes/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:
```yaml
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.
New Features
- Assorted unspecified dependency updates
Images pre-built for this release:
- v1.35.0: `kindest/node:v1.
_[Truncated at 4000 characters — full notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.31.0]_
### v0.30.0
- Date: 2025-08-27
- Version: v0.30.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.30.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.30.0
- **changed** — Default node image is now kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
- **changed** — Updated to containerd 2.1.4
- **fixed** — Fix an issue with rebooting v1.33.0+ clusters
- **fixed** — Add priority class system-critical to kindnetd
- **fixed** — Fix HA control-plane loadbalancer for podman
- **fixed** — 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.
Breaking Changes
The default node image is now `kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- Fix an issue with rebooting v1.33.0+ clusters https://github.com/kubernetes-sigs/kind/issues/3941
- Add priority class system-critical to kindnetd
- Fix HA control-plane loadbalancer for podman https://github.com/kubernetes-sigs/kind/pull/3962
- Fix node-image builds with relative source paths
Contributors
Committers for this release:
- @BenTheElder
- @dims
- @k8s-ci-robot
- @oduludo
- @stmcginnis
- @tchap
- @tom1299
### v0.29.0
- Date: 2025-05-21
- Version: v0.29.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.29.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.29.0
- **security** — Fix containerd CVE-2025-47290 / GHSA-cm76-qm8v-3j95
- **changed** — Update to containerd 2.1.1
- **changed** — Default node image is now kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f
This is a quick security release to pickup the containerd 2.1.1 [CVE-2025-47290](https://www.cve.org/CVERecord?id=CVE-2025-47290) fix.
See [v0.28.0](https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0) (release days ago!) for full release notes with recent changes:
https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0
Breaking Changes
The default node image is now `kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- Fixes containerd [CVE-2025-47290](https://www.cve.org/CVERecord?id=CVE-2025-47290) / GHSA-cm76-qm8v-3j95
Contributors
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)
### v0.28.0
- Date: 2025-05-16
- Version: v0.28.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.28.0
- **changed** — Update default Kubernetes version to 1.33.1
- **changed** — Update containerd to 2.1
- **changed** — Update runc to 1.3
- **changed** — Update Go to 1.24.2
- **fixed** — 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.
Breaking Changes
The default node image is now `kindest/node:v1.33.1@sha256:8d866994839cd096b3590681c55a6fa4a071fdaf33be7b9660e5697d2ed13002`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- Node image now sets `net.ipv4.conf.all.arp_ignore` to 0 to address some container networking failures
Contributors
**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
### v0.27.0
- Date: 2025-02-15
- Version: v0.27.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.27.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.27.0
- **changed** — Move kind to containerd 2.x
- **changed** — Update default node image to Kubernetes 1.32.2
- **changed** — Update Go to 1.23.6
- **fixed** — Add compatibility fixes for containerd 2.x
- **fixed** — Fix kind get clusters with nerdctl
- **fixed** — Statically link CNI binaries to match upstream
- **fixed** — Fix no-arguments validation for multiple subcommands
- **changed** — Update shellescape dependency to current vanity import
- **fixed** — 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.
Breaking Changes
**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](https://github.com/kubernetes-sigs/kind/releases/tag/v0.20.0) containerd 2.x requires that you must be using `config_path` mode for containerd registry config. If you're using the [local registry script](https://kind.sigs.k8s.io/docs/user/local-registry/) 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`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- 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
Contributors
**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
### v0.26.0
- Date: 2024-12-16
- Version: v0.26.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.26.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.26.0
- **changed** — Updated default Kubernetes version to v1.32.0
- **fixed** — Fixed kind build node-image for Kubernetes releases less than v1.31.0 when using --type=url or --type=release
- **removed** — Removed long-deprecated --kube-root flag from kind build node-image, use --type=source and pass the path as an argument instead
- **removed** — Removed long-deprecated --loglevel flag, use -v / --verbosity instead
- **changed** — Updated to Go 1.23.4
- **changed** — Updated local-path-provisioner to v0.30.0
- **changed** — Updated node image dependencies to latest releases
This release brings Kubernetes v1.32.0 to kind by default and fixes `kind build node-image` for building for Kubernetes releases Breaking Changes
- Removed two deprecated flags that had been printing usage warnings for many releases.
- Removed long-deprecated `--kube-root` flag from `kind build node-image`, use `--type=source` and pass the path as an argument instead.
- Docs: https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
- Removed long-deprecated `--loglevel` flag, use `-v` / `--verbosity` instead (see `kind help`)
- The default node image is now Kubernetes v1.32.0: `kindest/node:v1.32.0@sha256:c48c62eac5da28cdadcf560d1d8616cfa6783b58f0d94cf63ad1bf49600cb027`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- 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
Contributors
**Thank you to everyone who contributed to this kind over the years!**
Commiters for this release:
- @aojea
- @BenTheElder
- @dependabot[bot]
- @k8s-ci-robot
- @stmcginnis
### v0.25.0
- Date: 2024-11-08
- Version: v0.25.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.25.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.25.0
- **changed** — Default node image is now Kubernetes v1.31.2
- **changed** — Updated to latest go 1.22.x (1.22.9)
- **changed** — Updated kube-network-policies with a DNS fix for network policies
- **fixed** — Fix conflict with developing kube-network-policies
- **fixed** — Detect new docker ipv6 failure message and fallback to ipv4 only gracefully
- **fixed** — Workaround podman no longer returning host IP for portmaps
- **fixed** — Aggregate ipmasq sync errors in kindnetd
- **added** — Improved documentation for Ingress installation
This release contains a number of small networking fixes and the latest Kubernetes releases. Happy KubeCon!
Breaking Changes
- The default node image is now Kubernetes v1.31.2: `kindest/node:v1.31.2@sha256:18fbefc20a7113353c7b75b5c869d7145a6abd6269154825872dc59c1329912e`
New Features
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- 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
- Fixes github codespaces, however we recommend ensuring ip6tables works on your host or at least disabling ipv6 in the docker daemon settings then: https://docs.docker.com/engine/release-notes/27/#ipv6
- Workaround podman no longer returning host IP for portmaps
- Aggregate ipmasq sync errors in kindnetd
Contributors
**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!
### v0.24.0
- Date: 2024-08-15
- Version: v0.24.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.24.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.24.0
- **changed** — The default node image is now Kubernetes v1.31.0
- **added** — Out-of-the-box support for network policy via sigs.k8s.io/kube-network-policies
- **added** — Support for building node images from existing Kubernetes releases
- **added** — Support for loading multiple image archives in kind load image-archive
- **changed** — Migrated to skipPhase in Init/JoinConfiguration instead of kubeadm flags, making it possible for users to customize phases with config patches
- **added** — PowerShell completion
- **changed** — Updated containerd to 1.7.18
- **changed** — Updated runc to 1.1.13
- **changed** — Updated Go to 1.22.6
- **changed** — Updated CNI plugins to 1.5.1
- **changed** — Updated pause to 3.10
- **fixed** — Fix kubeadm v1beta3 config template for kubeProxyMode: none
- **fixed** — Stop disabling LocalStorageIsolation for rootless clusters
Highlights from this release include network policy support using [sigs.k8s.io/kube-network-policies](https://github.com/kubernetes-sigs/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
Breaking Changes
- The default node image is now Kubernetes v1.31.0: `kindest/node:v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865`
New Features
- **Out-of-the-box support for network policy via [sigs.k8s.io/kube-network-policies](https://github.com/kubernetes-sigs/kube-network-policies)**
- Advanced users can still disable kindnetd and install your own CNI with https://kind.sigs.k8s.io/docs/user/configuration/#disable-default-cni, however note that this is a "power user" feature and KIND does not offer support for any third-party CNI
- **Support for building node images from existing Kubernetes releases**
- **NOTE**: For Kubernetes releases before v1.31.0, this will result in larger images because kind opted in to compiling out remaining in-tree cloud providers with a build tag when publishing images. For v1.31.0+ there is no difference.
- See: https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
- 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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- Fix kubeadm v1beta3 config template for kubeProxyMode: none
- Stop disabling LocalStorageIsolation for rootless clusters (which no longer appears to be necessary to avoid crashes)
Contributors
**Than
_[Truncated at 4000 characters — full notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.24.0]_
### v0.23.0
- Date: 2024-05-14
- Version: v0.23.0
- Original notes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.23.0
- Permalink: https://whatsnew.fyi/product/kind/releases/v0.23.0
- **changed** — Default node image is now Kubernetes 1.30.0
- **changed** — ipFamily config field is now validated
- **changed** — Go 1.17+ is required for go install sigs.k8s.io/kind and building the kind binary
- **added** — Initial support for nodes created with nerdctl
- **added** — Initial support for kubeProxyMode: nftables
- **fixed** — Correctly case kubeProxyMode: "none"
This release introduces initial limited support for `nerdctl` and kube-proxy nftables mode.
Breaking Changes
- 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+
New Features
- Initial support for nodes created with [nerdctl](https://github.com/containerd/nerdctl)
- Initial support for `kubeProxyMode: nftables` (ahead of Kubernetes 1.31+, see https://kind.sigs.k8s.io/docs/user/configuration/#kube-proxy-mode)
- Sweeping dependency updates, see commits for full details. https://github.com/kubernetes-sigs/kind/compare/v0.22.0...v0.23.0
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:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
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
Fixes
- Correctly case `kubeProxyMode: "none"`
Contributors
**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!