Releases: kubernetes-sigs/kind
v0.26.0
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
).
Breaking Changes
- Removed two deprecated flags that had been printing usage warnings for many releases.
- Removed long-deprecated
--kube-root
flag fromkind build node-image
, use--type=source
and pass the path as an argument instead. - Removed long-deprecated
--loglevel
flag, use-v
/--verbosity
instead (seekind help
)
- Removed long-deprecated
- 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 #2718
Fixes
- Fixed
kind build node-image --type=url
andkind build node-image --type=release
where Kubernetes version is less thanv1.31.0
- E.G.
kind build node-image v1.30.0
andkind 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
- E.G.
Contributors
Thank you to everyone who contributed to this kind over the years!
Commiters for this release:
v0.25.0
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 #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
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
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
- 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 #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
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!
v0.23.0
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 thekind
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+
- Prebuilt binaries are available as an alternative to
New Features
- Initial support for nodes created with 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. 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 #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!
v0.22.0
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:
- 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 #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
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:
- 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 #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+
- NOTE:
- Assorted docs fixes
Contributors
Thank you to everyone who contributed to this release! ❤️
Users whose commits are in this release (alphabetically by user name)
- @adelton
- @ameukam
- @AkihiroSuda
- @AryanSharma9917
- @BenTheElder
- @bpfoster
- @corneliusroemer
- @dependabot[bot]
- @k8s-ci-robot
- @kir4h
- @liangyuanpeng
- @lixin963
- @matzew
- @mausearce
- @ronaldpetty
- @roman-kiselenko
- @saschagrunert
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
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 withoutpath_alias
).
- Now searches in this order:
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:
- 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 #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
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 importkind
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:
- 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 #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)
- @aojea
- @BenTheElder
- @cpanato
- @daman1807
- @k8s-ci-robot
- @m-Bilal
- @orange-guo
- @pohly
- @RijulGulati
- @rjsadow
- @VibhorChinda
- @wzshiming
- @yanggangtony
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! 🐳
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
- k8s.gcr.io is partially redirected already now, and being phased out. Please update your references to use registry.k8s.io directly instead! See: https://registry.k8s.io, https://kubernetes.io/blog/2023/03/10/image-registry-redirect/
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:
- 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 #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 notgo 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)
- @AaronFriel
- @AkihiroSuda
- @aojea
- @BenTheElder
- @carslen
- @daman1807
- @devenes
- @dex4er
- @dlipovetsky
- @elmiko
- @em-r
- @howardjohn
- @jonas
- @k8s-ci-robot
- @ktKongTong
- @liggitt
- @lixin963
- @mattcary
- @mweibel
- @mengjiao-liu
- @nr-dbuckwalter
- @oxr463 (thank you for your patience!)
- @RijulGulati
- @rmfitzpatrick
- @saschagrunert
- @VannTen
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!
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
orkind 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).
- When using
- 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.
- currently, kind does not explicitly have support for adding or removing nodes
Contributors
Thank you to everyone who contributed to this release! ❤️
Users whose commits are in this release (alphabetically by user name)
- @aude
- @BenTheElder
- @chrischdi
- @converge
- @curtbushko
- @flash-me
- @hrittikhere
- @k8s-ci-robot
- @mdurand54
- @raphaelauv
- @Vlatombe
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. 🙏