LWKD: Week Ending July 26, 2026
Week Ending July 26, 2026
Developer News
Kubernetes v1.36.3 has been released, built with Go 1.26.5. This patch release includes fixes for DRA scheduling and allocator bugs, a kubelet memory leak regression introduced in 1.36, server-side apply regressions, kubeadm etcd learner promotion and join resiliency improvements, and reduced kubelet log noise for missing optional container annotations.
Kubernetes v1.37.0-beta.0 has been released, built with Go 1.26.5. Highlights include a new Recreate strategy for StatefulSets, ClusterTrustBundle moving to stable, metrics.k8s.io promoted to v1, PersistentVolumeClaimUnusedSinceTime enabled by default in beta, new scheduler and workload-aware preemption capabilities, default etcd 3.7.0, and numerous fixes across DRA, scheduling, CEL, kubelet, kube-proxy, and API machinery.
Nominations are now open for the 2026 Kubernetes Steering Committee election, with three seats available for two-year terms. Self-nominations and community nominations must be submitted via a GitHub issue by August 3, with candidate bios due August 4. Prospective candidates are also invited to a public Steering Committee Q&A session on August 5, where current committee members will discuss what serving on the Steering Committee is like and answer questions from candidates.
client-go enhancements in Kubernetes v1.37 introduce a new type-safe informer event handler API, reducing boilerplate and making deletion event handling safer and easier. The release also adds a client-go CHANGELOG.md for documenting breaking Go API changes, expands context handling and contextual logging support, and introduces tooling to help contributors track and document API compatibility changes.
Release Schedule
Next Deadline: Feature Blogs Ready, August 3; Docs Freeze August 5
We are in Code Freeze. If you are working on a feature blog post for v1.37, remember that you need that ready for editing by Monday. If you are responsible for an Enhancement, please have your documentation finalized by Wednesday.
Cherry-pick deadline for the next patch releases is next week, August 7.
Featured PRs
140856: Add 'allocatedPods' Kubelet endpoint for dynamic container resource allocations
In this pull request, tallclair introduced the KubeletAllocatedPodsEndpoint feature gate and the corresponding /allocatedPods endpoint on the Kubelet. Linked to the Dynamic Containers proposal (KEP-6030), this endpoint allows the API server to query an on-demand /allocated subresource directly from the node without inflating storage overhead in etcd. By serving the Kubelet's locally assigned pod specifications, this change provides a lightweight way to track when a running pod's allocated spec diverges from its desired state, laying critical groundwork for in-place resizing and dynamic container features in v1.37.
140366: Add CheckpointPod and RestorePod CRI API
In this pull request, rst0git introduced pod-level checkpoint and restore RPCs (CheckpointPod and RestorePod) to the v1.RuntimeService CRI interface. Driven by KEP-5823, this establishes a standardized contract between the Kubelet and container runtimes (such as CRI-O and containerd) to save and recover entire pod sandbox states without requiring Kubernetes to manage or interpret runtime-specific state files. This update lays the core API foundation for native stateful pod migration and fast-booting workloads across Kubernetes clusters.
140805: Graduate PLEGOnDemandRelist to GA
In this pull request, tallclair promoted PLEGOnDemandRelist to General Availability, making the optimized kubelet relist behavior the permanent default in Kubernetes v1.37 after proving stable throughout v1.36. This graduation removes the feature gate and confirms the implementation is production-ready for all users. The change improves kubelet reliability and simplifies long-term maintenance for SIG Node while signaling confidence that no emergency rollback path is needed.
KEP of the Week
KEP-6164: SIG API Machinery: Eliminating Internal API Types
KEP-6164, authored by @jpbetz, @michaelasp, and @yedou37 in June 2026, eliminates Kubernetes' long-standing internal
(__internal) API types in favor of stable versioned API types. By removing unnecessary conversions inside the kube-apiserver, the enhancement reduces conversion overhead, with benchmarks showing up to 5.8x faster conversions and significantly lower memory allocations for large Pod list operations. The implementation follows a phased approach: first making internal and versioned types memory-identical, then replacing internal types with Go type aliases before eventually removing them entirely. Targeting Stable in Kubernetes v1.37, the enhancement improves control plane performance and simplifies API maintenance without changing any user-facing APIs or wire formats.
Other Merges
- Fixes a DRA structured allocator bug where
allocationMode: Allrequests did not properly fail when a matching device was capacity-exhausted underDRAConsumableCapacity. - kubectl: includes the group name in the resource-not-found error message when a resource type is requested with a group qualifier it doesn't belong to.
- Adds finer-grained buckets to the
watch_list_duration_secondsmetric for better observability of watch-list operations. - Fixes the error message in
PodGroupPostFilterplugins which incorrectly referenced "PostFilter plugins" instead of "PodGroupPostFilter plugins". - Adds a
storage_to_cachestage to the watch dispatch metric for finer-grained latency observability of the watch pipeline. - An
allocatedPodsKubelet endpoint gated by theKubeletAllocatedPodsEndpointfeature gate is added; this surfaces allocated-pod information from the Kubelet and backs the/allocatedPod subresource proposed under KEP-5972 Dynamic Containers. - Adds a
cache_to_watcherstage to the watch dispatch metric, complementing the newstorage_to_cachestage for end-to-end latency visibility. - The PVC protection controller now skips
Unusedcondition evaluation for unbound PVCs, since the condition only applies to bound PVCs under thePersistentVolumeClaimUnusedSinceTimefeature. - Fixes DRA scheduler queuing hints for deleted
ResourceClaimevents, ensuring pods are re-queued when aResourceClaimallocation is removed. - Adds an
erroroutcome to the cloud-providerroute_sync_totalmetric, which previously only counted successful syncs. - kube-proxy/nftables: avoids using a
numgenmap for single-endpoint service DNAT, reducing per-rule scan cost in clusters with many Services.
Promotions
AllowUnsafeMalformedObjectDeletionto Beta under KEP-3926.PLEGOnDemandRelistto GA.InPlacePodVerticalScalingInitContainersto GA.- KEP-5304 metadata/downward API to Beta.
Version Updates
- google.golang.org/grpc to v1.82.1, a security release.
Subprojects and Dependency Updates
- cluster-api v1.14.0-beta.1: allow ClusterClass metadata patches, add cluster-api-provider-kubeswift to built-in providers; fixes clusterctl rejecting incomplete GitHub release asset URLs
Shoutouts
- No shoutouts this week. Want to thank someone for special efforts to improve Kubernetes? Tag them in the #shoutouts channel.