Skip to content

Releases: kubernetes-sigs/kind

v0.22.0

14 Feb 23:30
Compare
Choose a tag to compare

This release is a quick follow-up to v0.21.0 with bug fixes including not overriding the host's binfmt_misc (a regression in v0.20.0, see: #3510).

Breaking Changes

  • The default node image is now Kubernetes 1.29.2: kindest/node:v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245

If you haven't already, please see also v0.21.0 release notes given the short time between releases.

New Features

  • Remove exclude-from-external-load-balancers from single node clusters #3506
  • Support for building node images on hosts with proxies

Images pre-built for this release:

  • v1.29.2: kindest/node:v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245
  • v1.29.1: kindest/node:v1.29.1@sha256:0c06baa545c3bb3fbd4828eb49b8b805f6788e18ce67bff34706ffa91866558b
  • v1.28.7: kindest/node:v1.28.7@sha256:9bc6c451a289cf96ad0bbaf33d416901de6fd632415b076ab05f5fa7e4f65c58
  • v1.28.6: kindest/node:v1.28.6@sha256:e9e59d321795595d0eed0de48ef9fbda50388dc8bd4a9b23fb9bd869f370ec7e
  • v1.27.11: kindest/node:v1.27.11@sha256:681253009e68069b8e01aad36a1e0fa8cf18bb0ab3e5c4069b2e65cafdd70843
  • v1.27.10: kindest/node:v1.27.10@sha256:e6b2f72f22a4de7b957cd5541e519a8bef3bae7261dd30c6df34cd9bdd3f8476
  • v1.26.14: kindest/node:v1.26.14@sha256:5d548739ddef37b9318c70cb977f57bf3e5015e4552be4e27e57280a8cbb8e4f
  • v1.26.13: kindest/node:v1.26.13@sha256:8cb4239d64ff897e0c21ad19fe1d68c3422d4f3c1c1a734b7ab9ccc76c549605
  • v1.25.16: kindest/node:v1.25.16@sha256:e8b50f8e06b44bb65a93678a65a26248fae585b3d3c2a669e5ca6c90c69dc519
  • v1.24.17: kindest/node:v1.24.17@sha256:bad10f9b98d54586cba05a7eaa1b61c6b90bfc4ee174fdc43a7b75ca75c95e51
  • v1.23.17: kindest/node:v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3

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 #2718

Fixes

  • binfmt_misc no longer set by node images (regression in v0.20.0)
  • fix runc hooks when non-root / usernamespaces
  • Support multiple random extraPortMappings
  • Docs fixes for contour and WSL2

Contributors

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

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

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!

v0.21.0

02 Feb 20:31
Compare
Choose a tag to compare

This release patches the recent runc CVEs, as well as an issue with kind build node-image and docker v25.0.0+

Breaking Changes

  • The default node image is a Kubernetes v1.29.1 image: kindest/node:v1.29.1@sha256:a0cc28af37cf39b019e2b448c54d1a3f789de32536cb5a5db61a49623e527144

If you haven't already, please see also v0.20.0 release notes which had important announcements that still apply going forward.

New Features

  • Upgraded go to 1.20.13
  • Upgraded crictl to 1.28
  • Upgraded containerd fuse overlayfs to 1.0.6
  • Began marking some core images pinned in containerd, which may eventually make enabling imageGC safer
  • kindnetd will ignore nodes with empty podCIDR, enabling some niche use-cases

Images pre-built for this release:

  • v1.29.1: kindest/node:v1.29.1@sha256:a0cc28af37cf39b019e2b448c54d1a3f789de32536cb5a5db61a49623e527144
  • v1.28.6: kindest/node:v1.28.6@sha256:b7e1cf6b2b729f604133c667a6be8aab6f4dde5bb042c1891ae248d9154f665b
  • v1.27.10: kindest/node:v1.27.10@sha256:3700c811144e24a6c6181065265f69b9bf0b437c45741017182d7c82b908918f
  • v1.26.13: kindest/node:v1.26.13@sha256:15ae92d507b7d4aec6e8920d358fc63d3b980493db191d7327541fbaaed1f789
  • v1.25.16: kindest/node:v1.25.16@sha256:9d0a62b55d4fe1e262953be8d406689b947668626a357b5f9d0cfbddbebbc727
  • v1.24.17: kindest/node:v1.24.17@sha256:ea292d57ec5dd0e2f3f5a2d77efa246ac883c051ff80e887109fabefbd3125c7
  • v1.23.17: kindest/node:v1.23.17@sha256:fbb92ac580fce498473762419df27fa8664dbaa1c5a361b5957e123b4035bdcf

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 #2718

Fixes

  • Updated runc to v1.1.12, containerd to v1.7.13 including the fix for GHSA-xr7r-f8xq-vfvv
  • Fixed kind build node-image with docker v25.0.0+
    • NOTE: kind load docker-image is still broken with Docker v25.0.0 due to a docker bug, which has a fix merged that should be included in Docker v25.0.1+
  • Assorted docs fixes

Contributors

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

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

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!

v0.20.0

15 Jun 03:18
Compare
Choose a tag to compare

KIND v0.20.0 fixes runc 1.1.6+ / misc controller support as well as cgroupns support on cgroup v1 and begins the migration to private cgroupns for all kind nodes.

In a future release kind node images will drop support for kind binaries without cgroupns=private (which is already the default on all cgroup v2 hosts, and cgroup v1 in kind v0.20.0). This will allow us to ship a more consistent and reliable environment as the ecosystem heads towards dropping cgroup v1 more generally.

Breaking Changes

  • Docker 20.10.0+ is now required, with no change for Podman.
  • Node images built with kind v0.20.0+ will be required on cgroups v1 hosts for kind v0.20.0+
  • The default node image is a Kubernetes v1.27.3 image: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72

Containerd CRI mirror config deprecation PSA

Additionally, we're asking that everyone using the local registry script update
to the latest version using config_path. https://kind.sigs.k8s.io/docs/user/local-registry/

Containerd deprecated the old CRI mirrors config approach and will remove support in v2.0.
Eventually KIND will enable this by default or have upgraded to containerd 2.0.

Containerd does not support CRI mirror config if the new hosts config_path is enabled.

New Features

  • Improved Kubernetes source code path detection in kind build node-image.
    • Now searches in this order: $(pwd), ${GOPATH}/src/k8s.io/kubernetes, ${GOPATH}/src/github.com/kubernetes/kubernetes (default checkout location in Prow CI without path_alias).

New node images have been built for kind v0.20.0, please use these exact images (IE like kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72 including the digest) or build your own as we may need to change the image format again in the future 😅

Images pre-built for this release:

  • 1.27: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72
  • 1.26: kindest/node:v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb
  • 1.25: kindest/node:v1.25.11@sha256:227fa11ce74ea76a0474eeefb84cb75d8dad1b08638371ecf0e86259b35be0c8
  • 1.24: kindest/node:v1.24.15@sha256:7db4f8bea3e14b82d12e044e25e34bd53754b7f2b0e9d56df21774e6f66a70ab
  • 1.23: kindest/node:v1.23.17@sha256:59c989ff8a517a93127d4a536e7014d28e235fb3529d9fba91b3951d461edfdb
  • 1.22: kindest/node:v1.22.17@sha256:f5b2e5698c6c9d6d0adc419c0deae21a425c07d81bbf3b6a6834042f25d4fba2
  • 1.21: kindest/node:v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093

Additional images built for this release:

  • 1.28: kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31
  • 1.29: kindest/node:v1.29.0@sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570

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 #2718

Fixes

  • Upgraded runc to 1.1.7, containerd to 1.7.1
  • Disabled unused misc controller on cgroups v1 hosts for KIND nodes
  • Fixed cgroups on cgroup v1 hosts with cgroupns enabled
  • Removed unnecessary flags from haproxy image
  • Set kubelet systemd KillMode=process

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.19.0

17 May 00:46
Compare
Choose a tag to compare

KIND v0.19.0 contains a fix for airgapped node image usage and a significant overhaul over our base image and dependency management.

KIND node images now contain a LICENSE/ directory based on go-licenses for all external go binaries, all external go binaries are built from source and contain fully patched go as of the time of release, streamlining that process and decoupling versions.

Since this release comes shortly after v0.18.0, we highly recommend seeing v0.18.0 release notes as well.

Breaking Changes

  • The default node image is a Kubernetes v1.27.1 image: kindest/node:v1.27.1@sha256:b7d12ed662b873bd8510879c1846e87c7e676a79fefc93e17b2a52989d3ff42b
  • Base distro is now Debian, not Ubuntu.
    • While it is not supported to depend on the contents of these images beyond providing what KIND needs to create a functioning Kubernetes cluster at a given version, we know some power users depend on this anyhow. This is your warning! This is subject to change again in the future. We also dropped some now-unnecessary packages from the image.
  • Go 1.16+ is now required to build the kind binary or import kind as a library (much more recent Go 1.20.4 was used for release builds, but 1.16 is the minimum required version now)

New Features

  • Smaller node image containerd binaries with unusable snapshotters compiled out
  • LICENSES/ directory in all node / base images with license info for all dependent packages / binaries contained in images that don't come from the base distro (other packages are covered by distro standard metadata)

New node images have been built for kind v0.19.0, please use these exact images (IE like kindest/node:v1.26.3@sha256: 61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f including the digest) or build your own as we may need to change the image format again in the future 😅

Images pre-built for this release:

  • 1.27: kindest/node:v1.27.1@sha256:b7d12ed662b873bd8510879c1846e87c7e676a79fefc93e17b2a52989d3ff42b
  • 1.26: kindest/node:v1.26.4@sha256:f4c0d87be03d6bea69f5e5dc0adb678bb498a190ee5c38422bf751541cebe92e
  • 1.25: kindest/node:v1.25.9@sha256:c08d6c52820aa42e533b70bce0c2901183326d86dcdcbedecc9343681db45161
  • 1.24: kindest/node:v1.24.13@sha256:cea86276e698af043af20143f4bf0509e730ec34ed3b7fa790cc0bea091bc5dd
  • 1.23: kindest/node:v1.23.17@sha256:f77f8cf0b30430ca4128cc7cfafece0c274a118cd0cdb251049664ace0dee4ff
  • 1.22: kindest/node:v1.22.17@sha256:9af784f45a584f6b28bce2af84c494d947a05bd709151466489008f80a9ce9d5
  • 1.21: kindest/node:v1.21.14@sha256:220cfafdf6e3915fbce50e13d1655425558cb98872c53f802605aa2fb2d569cf

Additional images built for this release:

  • 1.28: kindest/node:v1.28.0@sha256:dad5a6238c5e41d7cac405fae3b5eda2ad1de6f1190fa8bfc64ff5bb86173213

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 #2718

Fixes

  • Fixed airgap preloading for kindnetd and local-path-provisioner
  • podman: detect disabled IPv6 and create IPv4 only network instead
  • Overhauled image building, fully patched all dependencies and build toolchains
  • Updated containerd, crictl, CNI plugins, local-path-provisioner ... etc
  • Dropped unnecessary packages from image
  • Fixed dockerized site build on non-amd64 hosts

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

In particular a shoutout to @stmcginnis for helping with reviews and responding to support issues! 💟

v0.18.0 - Thanks Docker! 🐳

30 Mar 19:33
Compare
Choose a tag to compare

KIND v0.18.0 Comes with a big shoutout to Docker, Inc. for accepting us into the updated Docker Sponsored OSS Program. Thanks Docker! 🎉

Images should no longer have pull rate limits as a result.

The project will still consider mirroring on or switching primarily to registry.k8s.io in the future, after determining an updated immutable tagging scheme to comply with requirements there.

Otherwise of particular note are a fix for iptables nf_tables v1.8.8+, updated dependencies including runc v1.1.5 with CVE fixes, and a new networking option to control the DNS search list.

Breaking Changes

  • The default node image is a Kubernetes v1.26.3 image: kindest/node:v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f
  • Dropped support for PPC64LE and S390x, which only had limited support previously
    • These platforms had very slow and flaky builds despite attempts at fixing and very limited demand. We've dropped these to focus on the vast majority of our users. These platforms never reached the point of having official node images.
  • Removed registry mirror config for k8s.gcr.io => registry.k8s.io

New Features

  • New networking.dnsSearch config field for overriding the cluster nodes' DNS search list
  • Documented how to use KIND on chromeOS
  • Automated builds for most images
  • Improved output for kind delete cluster

New Node images have been built for kind v0.18.0, please use these exact images (IE like kindest/node:v1.26.3@sha256: 61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f including the digest) or build your own as we may need to change the image format again in the future 😅

Images pre-built for this release:

  • 1.26: kindest/node:v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f
  • 1.25: kindest/node:v1.25.8@sha256:00d3f5314cc35327706776e95b2f8e504198ce59ac545d0200a89e69fce10b7f
  • 1.24: kindest/node:v1.24.12@sha256:1e12918b8bc3d4253bc08f640a231bb0d3b2c5a9b28aa3f2ca1aee93e1e8db16
  • 1.23: kindest/node:v1.23.17@sha256:e5fd1d9cd7a9a50939f9c005684df5a6d145e8d695e78463637b79464292e66c
  • 1.22: kindest/node:v1.22.17@sha256:c8a828709a53c25cbdc0790c8afe12f25538617c7be879083248981945c38693
  • 1.21: kindest/node:v1.21.14@sha256:27ef72ea623ee879a25fe6f9982690a3e370c68286f4356bf643467c552a3888

Additional Images built for this release:

  • 1.27: kindest/node:v1.27.1@sha256:9915f5629ef4d29f35b478e819249e89cfaffcbfeebda4324e5c01d53d937b09
  • 1.27: kindest/node:v1.27.0@sha256:c6b22e613523b1af67d4bc8a0c38a4c3ea3a2b8fbc5b367ae36345c9cb844518

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

Fixes

  • Fixed iptables rules when the host has iptables 1.8.8+ in nf_tables (not legacy) mode
  • Updated all dependencies to latest as of release time (including go version, go modules, containerd, crictl, runc, local-path-provisioner, base images, ...)
    • Package updates are now installed against all packages in the base image when building the kindest/node base image, which should help us stay on top of these
  • Fixed containerd snapshotter selection on ZFS hosts
  • Generally made containerd snapshotter selection more robust
  • Limited haproxy max connections for multiple control-plane node clusters to prevent excessive memory use
  • Dedupe nodes correctly in kind load ...
  • Documented how to configure and use kubeadmConfigPatches
  • Documented default subnets
  • Fixed ingress guide "usage" example
  • cgroupsv2 CI updated to Fedora 37
  • Updated README and site home to use go install and not go get (more detailed install docs remain at https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
  • Documented rootless podman systemd scope fix

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.17.0 - Live from KubeCon!

26 Oct 15:53
Compare
Choose a tag to compare

v0.17.0 is a small release centered around fixing a bug loading docker hub / docker.io tagged images with identical content but different tags (including images with no explicit host) #2955
and support for cross-architecture kind load ....

This release also ships Kubernetes 1.25.3 and containerd 1.6.9 with their respective fixes.

This release comes to you live from KubeCon NA 2022 😄

Breaking Changes

  • The default node image is a Kubernetes v1.25.3 image: kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1
  • Internal config generation now defends against yaml-injection
    • This should not be a breaking change if you were using the config fields as documented
    • This does not apply to config patches which are applied after config generation, and by definition patch arbitrary yaml

New Features

  • Support for loading cross-architecture images
    • When using kind load docker-image or kind load image-archive,
      kind now instructs containerd to import all architectures.
    • This means that if you have multi-arch docker run enabled on your host (binfmt_misc qemu-userspace),
      such as in the Docker Desktop application out-of-the box, you may be able to load and run pods with images
      for the wrong architecture (e.g. an amd64 image on an M1 mac).
  • containerd 1.6.9
  • go 1.19.2
  • upgraded metallb #2973
  • overhauled docs code snippets #2894

New Node images have been built for kind v0.17.0, please use these exact images (IE like kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1 including the digest) or build your own as we may need to change the image format again in the future 😅

Images built for this release:

  • 1.25: kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1
  • 1.24: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
  • 1.23: kindest/node:v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61
  • 1.22: kindest/node:v1.22.15@sha256:7d9708c4b0873f0fe2e171e2b1b7f45ae89482617778c1c875f1053d4cef2e41
  • 1.21: kindest/node:v1.21.14@sha256:9d9eb5fb26b4fbc0c6d95fa8c790414f9750dd583f5d7cee45d92e8c26670aa1
  • 1.20: kindest/node:v1.20.15@sha256:a32bf55309294120616886b5338f95dd98a2f7231519c7dedcec32ba29699394
  • 1.19: kindest/node:v1.19.16@sha256:476cb3269232888437b61deca013832fee41f9f074f9bed79f57e4280f7c48b7

Additional images known compatible with this release:

  • 1.26: kindest/node:v1.26.0@sha256:691e24bd2417609db7e589e1a479b902d2e209892a10ce375fab60a8407c7352

NOTE: These node images support amd64 and arm64. It remains possible to build custom images for other architectures (see the docs).

Fixes

  • Fix loading docker hub / docker.io tagged images with identical content but different tags (including images with no explicit host) #2955
  • kindnetd (kind's lightweight networking daemonset) now supports removing wrong routes when nodes are added and removed
    • currently, kind does not explicitly have support for adding or removing nodes
      however, Cluster API Provider Docker (which is based on KIND), does support this.

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.16.0

22 Sep 19:33
Compare
Choose a tag to compare

v0.16.0 is a quick release centered around shipping Kubernetes v1.25.2 fixes by default. Additional fixes and features are listed below.

Breaking Changes

  • The default node image is a Kubernetes v1.25.2 image: kindest/node:v1.25.2@sha256:9be91e9e9cdf116809841fc77ebdb8845443c4c72fe5218f3ae9eb57fdb4bace
  • kind no longer attempts misguided symlink /dev/kmsg to /dev/console when /dev/kmsg is missing. please ensure your host has /dev/kmsg #662 (comment)
  • Kubernetes v1.15.X and lower are no longer supported, as warned in KIND v0.15.0

New Features

  • open-iscsi / support for iSCSI volumes
  • containerd 1.6.8
  • crictl 1.25.0
  • go 1.19.1

New Node images have been built for kind v0.16.0, please use these exact images (IE like kindest/node:v1.25.2@sha256:9be91e9e9cdf116809841fc77ebdb8845443c4c72fe5218f3ae9eb57fdb4bace including the digest) or build your own as we may need to change the image format again in the future 😅

Images built for this release:

  • 1.25: kindest/node:v1.25.2@sha256:9be91e9e9cdf116809841fc77ebdb8845443c4c72fe5218f3ae9eb57fdb4bace
  • 1.24: kindest/node:v1.24.6@sha256:97e8d00bc37a7598a0b32d1fabd155a96355c49fa0d4d4790aab0f161bf31be1
  • 1.23: kindest/node:v1.23.12@sha256:9402cf1330bbd3a0d097d2033fa489b2abe40d479cc5ef47d0b6a6960613148a
  • 1.22: kindest/node:v1.22.15@sha256:bfd5eaae36849bfb3c1e3b9442f3da17d730718248939d9d547e86bbac5da586
  • 1.21: kindest/node:v1.21.14@sha256:ad5b7446dd8332439f22a1efdac73670f0da158c00f0a70b45716e7ef3fae20b
  • 1.20: kindest/node:v1.20.15@sha256:45d0194a8069c46483a0e509088ab9249302af561ebee76a1281a1f08ecb4ed3
  • 1.19: kindest/node:v1.19.16@sha256:a146f9819fece706b337d34125bbd5cb8ae4d25558427bf2fa3ee8ad231236f2

NOTE: These node images support amd64 and arm64. It remains possible to build custom images for other architectures (see the docs).

Fixes

  • Fix for detecting new podman network overlap errors
  • Updated metallb docs to current

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.15.0

02 Sep 01:31
Compare
Choose a tag to compare

v0.15.0 contains important fixes for cluster reboots and various other improvements.

Breaking Changes

  • The default node image is a Kubernetes v1.25.0 image: kindest/node:v1.25.0@sha256:428aaa17ec82ccde0131cb2d1ca6547d13cf5fdabcc0bbecf749baa935387cbf

New Features

  • New single letter flag aliases -n for --name and -A for --all, in-line with kubectl etc.
  • Optimized image loading to re-tag images when the image contents are identical to previously loaded images but the tags are different
  • Support for Kubernetes 1.25, fix for handling rootless + 1.25
  • Containerd 1.6.7
  • Go 1.19
  • Updated base image distro to latest, NOTE: depend on the contents of the image at your own risk! our images enable running Kubernetes with KIND, we reserve the right to switch distros etc as needed
  • Support for Podman 4.0 / netavark
  • enhanced pre-release versions to include commit counts

New Node images have been built for kind v0.15.0, please use these exact images (IE like kindest/node:v1.25.0@sha256:428aaa17ec82ccde0131cb2d1ca6547d13cf5fdabcc0bbecf749baa935387cbf including the digest) or build your own as we may need to change the image format again in the future 😅

Images built for this release:

  • 1.25: kindest/node:v1.25.0@sha256:428aaa17ec82ccde0131cb2d1ca6547d13cf5fdabcc0bbecf749baa935387cbf
  • 1.24: kindest/node:v1.24.4@sha256:adfaebada924a26c2c9308edd53c6e33b3d4e453782c0063dc0028bdebaddf98
  • 1.23: kindest/node:v1.23.10@sha256:f047448af6a656fae7bc909e2fab360c18c487ef3edc93f06d78cdfd864b2d12
  • 1.22: kindest/node:v1.22.13@sha256:4904eda4d6e64b402169797805b8ec01f50133960ad6c19af45173a27eadf959
  • 1.21: kindest/node:v1.21.14@sha256:f9b4d3d1112f24a7254d2ee296f177f628f9b4c1b32f0006567af11b91c1f301
  • 1.20: kindest/node:v1.20.15@sha256:d67de8f84143adebe80a07672f370365ec7d23f93dc86866f0e29fa29ce026fe
  • 1.19: kindest/node:v1.19.16@sha256:707469aac7e6805e52c3bde2a8a8050ce2b15decff60db6c5077ba9975d28b98
  • 1.18: kindest/node:v1.18.20@sha256:61c9e1698c1cb19c3b1d8151a9135b379657aee23c59bde4a8d87923fcb43a91

NOTE: These node images support amd64 and arm64. It remains possible to build custom images for other architectures (see the docs).

Fixes

  • Fixed rebooted node certificates
  • Fixed snapshotter selection on ZFS + overlayfs-fuse
  • Podman provider now includes node names in no_proxy env, matching the docker provider
  • Assorted documentation fixes
  • Fixed Kubernetes 1.13 configuration
    • NOTE: This will be the last release supporting Kubernetes versions below v1.15.0

Contributors

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

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

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.14.0

19 May 20:58
Compare
Choose a tag to compare

v0.14.0 is quick follow-up to v0.13.0, upgrading packages and fixing cgroups on some non-systemd-based hosts such as WSL2 and Alpine based tools like colima and rancher-desktop.

Besides the cgroups fix, the update to the latest version of the local-path-provisioner may be a desirable upgrade worth noting with various downstream improvements.

Be sure to see the previous release notes as well!

Breaking Changes

NOTE: The systemd change is from KIND v0.13.0, but we're re-iterating it here since v0.13.0 was so recent.

  • systemd cgroups driver will be used for Kubernetes v1.24.0+ (rather than 1.21.0+ when kubeadm changed the default, which we previously overrode).
    • NOTE: You must use kind v0.13.0+ with Kubernetes v1.24.0+ images, and if you built your own Kubernetes v1.24.0+ image
      with a previous kind version you will need to re-built when switching to kind v0.13.0+.
    • NOTE: You do not need to be using systemd on the host machine, In kind v0.13.0 we had a bug related to this, it should be fixed this release. systemd is used inside the kind node containers but should not be necessary on the host. We are now using it for Kubernetes pods in addition to running kubelet, containerd etc.
    • KIND will continue to use cgroupfs for Kubernetes versions prior to v1.24.0.
  • The default node image is a Kubernetes v1.24.0 image: kindest/node:v1.24.0@sha256:0866296e693efe1fed79d5e6c7af8df71fc73ae45e3679af05342239cdc5bc8e

New Features

  • digest image references should be populated when loading images
  • base image updates
    • crictl v1.24.0
  • kind binary built with Go 1.18.2
  • all kindnetd dependencies updated to latest
  • updated haproxy image
  • latest local-path-provisioner v0.0.22 with updated packaging
  • support for Kubernetes v1.25.0-alpha pre-releases builds without the old kubeadm node taint
  • updated cgroupsv2 CI to Fedora 36

New Node images have been built for kind v0.14.0, please use these exact images (IE like kindest/node:v1.24.0@sha256:0866296e693efe1fed79d5e6c7af8df71fc73ae45e3679af05342239cdc5bc8e including the digest) or build your own as we may need to change the image format again in the future 😅

Images built for this release:

  • 1.24: kindest/node:v1.24.0@sha256:0866296e693efe1fed79d5e6c7af8df71fc73ae45e3679af05342239cdc5bc8e
  • 1.23: kindest/node:v1.23.6@sha256:b1fa224cc6c7ff32455e0b1fd9cbfd3d3bc87ecaa8fcb06961ed1afb3db0f9ae
  • 1.22: kindest/node:v1.22.9@sha256:8135260b959dfe320206eb36b3aeda9cffcb262f4b44cda6b33f7bb73f453105
  • 1.21: kindest/node:v1.21.12@sha256:f316b33dd88f8196379f38feb80545ef3ed44d9197dca1bfd48bcb1583210207
  • 1.20: kindest/node:v1.20.15@sha256:6f2d011dffe182bad80b85f6c00e8ca9d86b5b8922cdf433d53575c4c5212248
  • 1.19: kindest/node:v1.19.16@sha256:d9c819e8668de8d5030708e484a9fdff44d95ec4675d136ef0a0a584e587f65c
  • 1.18: kindest/node:v1.18.20@sha256:738cdc23ed4be6cc0b7ea277a2ebcc454c8373d7d8fb991a7fcdbd126188e6d7

NOTE: these node images support amd64 and arm64. It remains possible to build custom images for other architectures (see the docs).

Fixes

  • fixed running kind with kubernetes v1.24.0+ on some non-systemd-based hosts
  • setting migrated kubelet flags in kubelet config where possible, for now we set both the old flags and the config, in some future release we'll set only kubelet config where possible
  • fixed kong ingress name in docs

Contributors

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

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

A special shoutout to these folks who helped report, test, and review the systemd cgroups fix:

And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏

v0.13.0

10 May 19:40
Compare
Choose a tag to compare

v0.13.0 is all about cgroups -- We're making the switch to the systemd cgroup driver to align with current Kubernetes container runtime recommendations and kubeadm defaults.

Breaking Changes

  • systemd cgroups driver will be used for Kubernetes v1.24.0+ (rather than 1.21.0+ when kubeadm changed the default, which we previously overrode).
    • NOTE: You must use kind v0.13.0+ with Kubernetes v1.24.0+ images, and if you built your own Kubernetes v1.24.0+ image
      with a previous kind version you will need to re-built when switching to kind v0.13.0+.
    • NOTE: You do not need to be using systemd on the host machine, systemd is used inside the kind node containers. We are now using it for Kubernetes pods in addition to running kubelet, containerd etc.
      • UPDATE: There is a bug on hosts that are (cgroupv1, not-systemd) #2765, a fix is pending and the next release will address this. See the linked issue for discussion and workarounds in the meantime.
      • UPDATE: v0.14.0 is released with a fix for this bug. Upgrading should be the preferred solution, but if you need to use v0.13.0 for some reason, see the issue linked above for other workarounds.
    • KIND will continue to use cgroupfs for Kubernetes versions prior to v1.24.0.
  • The default node image is a Kubernetes v1.24.0 image: kindest/node:v1.24.0@sha256:406fd86d48eaf4c04c7280cd1d2ca1d61e7d0d61ddef0125cb097bc7b82ed6a1

New Features

  • Limited support for PPC64LE architecture (you will need to build your own node images)
  • kind export logs now dumps a list of images on each node
  • Base image updates
    • Containerd version 1.6.4
    • CNI plugins 1.1.1
  • kind binary built with Go 1.18
  • General Go dependency updates
  • registry.k8s.io is used as the primary mirror for k8s.gcr.io in kind nodes / image building
    • If registry.k8s.io is not reachable, the node runtime is configured to fallback to k8s.gcr.io directly as the next endpoint

New Node images have been built for kind v0.13.0, please use these exact images (IE like kindest/node:v1.24.0@sha256:406fd86d48eaf4c04c7280cd1d2ca1d61e7d0d61ddef0125cb097bc7b82ed6a1 including the digest) or build your own as we may need to change the image format again in the future 😅

Images built for this release:

  • 1.24: kindest/node:v1.24.0@sha256:406fd86d48eaf4c04c7280cd1d2ca1d61e7d0d61ddef0125cb097bc7b82ed6a1
  • 1.23: kindest/node:v1.23.6@sha256:1af0f1bee4c3c0fe9b07de5e5d3fafeb2eec7b4e1b268ae89fcab96ec67e8355
  • 1.22: kindest/node:v1.22.9@sha256:6e57a6b0c493c7d7183a1151acff0bfa44bf37eb668826bf00da5637c55b6d5e
  • 1.21: kindest/node:v1.21.12@sha256:ae05d44cc636ee961068399ea5123ae421790f472c309900c151a44ee35c3e3e
  • 1.20: kindest/node:v1.20.15@sha256:a6ce604504db064c5e25921c6c0fffea64507109a1f2a512b1b562ac37d652f3
  • 1.19: kindest/node:v1.19.16@sha256:dec41184d10deca01a08ea548197b77dc99eeacb56ff3e371af3193c86ca99f4
  • 1.18: kindest/node:v1.18.20@sha256:38a8726ece5d7867fb0ede63d718d27ce2d41af519ce68be5ae7fcca563537ed

NOTE: these node images support amd64 and arm64. It remains possible to build custom images for other architectures (see the docs).

Fixes

  • In cgroup v1, unmount cgroups that are not supported by the runtime used to create nodes
  • Pinned metallb to a stable version in documentation

Contributors

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

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

Contributors since v0.12.0: