Sourced from sigs.k8s.io/kind's releases.
v0.32.0
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 upgradekindto this release or newer to usekind load ...with the newly published node images. As always, we cannot gurantee full compatibility of node images between kind releases. You can use the digests from previous releases, upgrade kind, or build your own node-images.- kubeadm v1beta4 config format is now used for Kubernetes 1.36.0+ If you are using versioned config patches, you must update to target v1beta4. Unversioned patches kind will attempt to convert as needed (more below in New Features). This change is required for Kubernetes 1.37+ which drops kubeadm v1beta3 config.
- Adoption of Envoy for Load Balancing in multi-control-plane node clusters: HAProxy has been replaced by Envoy (
docker.io/envoyproxy/envoy:v1.36.2) as the load balancer in multi-control-plane (HA) clusters. If you rely on custom HAProxy loadbalancer configurations or images, please note that Envoy is now used.- cgroup v1 warning: A warning is now printed if cgroup v1 is detected on the host. Kubernetes has deprecated support for cgroup v1, and at some point in the future KIND releases / node-images will also drop support for cgroup v1.
New Features
- kubeadm v1beta4 configuration support: KIND now uses the
v1beta4config format for Kubernetesv1.36.0+while maintainingv1beta3forv1.23.0up tov1.35.x, andv1beta2for older versions.- Custom Merging & Version-Awareness for Kubeadm Config Patches:
- KIND now automatically translates old-style map-based
extraArgs/kubeletExtraArgspatches to the list-basedv1beta4format when targetingv1beta4configs.- Config patches now append to
extraArgs/kubeletExtraArgs/certSANsreliably. 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 loadand 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.txtor CI build prefixes).- Support for containerd version-aware containerd config patching: Like kubeadmConfigPatches, containerd config patching is now aware of
versionand 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:3f5c8443c620245e4d355cfe09e96a91ead32ceaa569d3f1ca9edf0cb2fe2ff4NOTE: You must use the
@sha256digest 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/mappermount on rootless Docker.- Assorted documentation fixes and improvements.
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
Contributors
Committers for this release:
... (truncated)
Sourced from sigs.k8s.io/kind's changelog.
kind Release Process
This document describes the steps to cut a new kind release. It is intended for maintainers who have push access to the upstream repository and the staging image registry.
Prerequisites
- GNU sed (macOS:
brew install gnu-sed)- Docker with buildx support
craneinstalled (for image promotion to Docker Hub)- Push access to
github.com/kubernetes-sigs/kind- Push access to
gcr.io/k8s-staging-kind- Push access to
kindeston Docker Hub
Phase 1 - Publish Node Images
Node images must be built, tested, and promoted to Docker Hub before the kind release so their digest hashes are known and can be embedded in the release binary.
1.1 Build and push to staging
Use
hack/release/push-node.shfor Kubernetes v1.31 and later:./hack/release/push-node.sh v1.35.0This builds
amd64andarm64node images and pushes them togcr.io/k8s-staging-kind/node:v1.35.0, then creates a multi-arch manifest list.You can override the registry or add architectures:
REGISTRY=gcr.io/k8s-staging-kind ARCHES="amd64 arm64" ./hack/release/push-node.sh v1.35.01.2 Test with the staging image
Update the default image in
pkg/apis/config/defaults/image.goto point to the staging image with its digest, then run CI to validate:const Image = "gcr.io/k8s-staging-kind/node:v1.35.0@sha256:<digest-from-push>"
... (truncated)
cda67ef
version v0.32.0a335a9e
Merge pull request #4182
from stmcginnis/kindest/node-v1.36.1645b868
bump default image to kindest/node:v1.36.1d1b84e8
Merge pull request #4181
from BenTheElder/base-fix25d94fa
bump staging node image088013a
update base image with permissions fix995e8fa
Fix: Permission error when creating pod with hostUsers: false (#4179)b029a2b
Merge pull request #4149
from BenTheElder/bump-images-asdf140186f
Merge pull request #4174
from BenTheElder/ci-builds811ea84
Merge pull request #4173
from BenTheElder/kubeadm-v1beta4-special-patch