<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://lwkd.info/feed.xml" rel="self" type="application/atom+xml" /><link href="https://lwkd.info/" rel="alternate" type="text/html" /><updated>2026-07-17T13:43:39+00:00</updated><id>https://lwkd.info/feed.xml</id><title type="html">Last Week in Kubernetes Development</title><subtitle>Stay up-to-date on Kubernetes development in 15 minutes a week.</subtitle><entry><title type="html">Week Ending July 12, 2026</title><link href="https://lwkd.info/2026/20260716" rel="alternate" type="text/html" title="Week Ending July 12, 2026" /><published>2026-07-16T22:00:00+00:00</published><updated>2026-07-16T22:00:00+00:00</updated><id>https://lwkd.info/2026/2026-07-12-update</id><content type="html" xml:base="https://lwkd.info/2026/20260716"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p><a href="https://sessionize.com/maintainer-summit-na-2026/">Maintainer Summit North America 2026 CFP</a> CFP closes on July 19. Maintainers, project leaders, and contributors are encouraged to submit session proposals before the deadline. <a href="https://register.linuxfoundation.org/kccnc-na-maintainer-summit-2026">Registration</a> is open for it as well.</p>

<p><a href="https://github.com/kubernetes/community/tree/main/elections/steering/2026">Steering Committee election</a> nominations continue, with Janet Kuo announcing her candidacy and Sean McGinnis receiving a community nomination. Nominations close on August 3.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: <a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#exceptions">Code Freeze</a>, July 23th</strong></p>

<p>If your enhancement is unlikely to be ready by <a href="https://www.kubernetes.dev/resources/release/#timeline">Code Freeze</a>, now is the time to request a Code Freeze Exception. Review the <a href="https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md#exceptions-after-code-freeze-and-test-freeze">Exceptions process</a> to ensure your request meets the requirements and is submitted before the upcoming Code Freeze.</p>

<p>Patch releases for all supported Kubernetes versions are targeted for July 14th.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="140333-update-etcd-to-v370"><a href="https://github.com/kubernetes/kubernetes/pull/140333">140333: Update etcd to v3.7.0</a></h3>

<p>In this pull request <a href="https://github.com/Jefftree">Jefftree</a> updated Kubernetes to use <strong>etcd v3.7.0</strong>, replacing the previous release candidate with the final upstream version and updating both the embedded client libraries and default etcd images. This brings Kubernetes in sync with the latest stable etcd release while enabling new storage capabilities that future Kubernetes features can build upon, including ongoing work around efficient Watch/List operations. See the related upstream discussion in the <a href="https://github.com/etcd-io/etcd/issues/21605">etcd v3.7.0 release</a> and the related Watch/List streaming work in Kubernetes.</p>

<h3 id="138676-dra-device-taints-and-tolerations-graduates-to-ga"><a href="https://github.com/kubernetes/kubernetes/pull/138676">138676: DRA Device Taints and Tolerations Graduates to GA</a></h3>

<p>In this pull request <a href="https://github.com/pohly">pohly</a> advanced the Dynamic Resource Allocation (DRA) <strong>Device Taints and Tolerations</strong> feature to <strong>General Availability</strong> via the <code class="language-plaintext highlighter-rouge">resource.k8s.io/v1</code> API. Linked to <a href="https://github.com/kubernetes/enhancements/issues/5055">KEP-5055</a>, this milestone stabilizes how clusters restrict or allow specialized hardware access, such as GPUs, using dedicated device-level taints. Moving out of the experimental phases means cluster operators and hardware vendors can confidently implement production-ready, fine-grained resource scheduling without worrying about feature gate maintenance.</p>

<h3 id="139993-introduce-node-lifecycle-conditions"><a href="https://github.com/kubernetes/kubernetes/pull/139993">139993: Introduce Node Lifecycle Conditions</a></h3>

<p><a href="https://github.com/rthallisey">rthallisey</a> introduced several critical, well-known node conditions into the core API, including <code class="language-plaintext highlighter-rouge">GracefulNodeShutdownInProgress</code>, <code class="language-plaintext highlighter-rouge">DrainInProgress</code>, <code class="language-plaintext highlighter-rouge">Drained</code>, <code class="language-plaintext highlighter-rouge">MaintenancePlanned</code>, and <code class="language-plaintext highlighter-rouge">MaintenanceInProgress</code>. This foundational change implements the initial phase of <a href="https://github.com/kubernetes/enhancements/pull/6161">KEP-6161</a>, designed to build explicit ecosystem awareness around structural cluster disruptions. By exposing these standardized node states, downstream automation tools, operators, and core controllers can programmatically coordinate edge cases during maintenance workflows to improve overall workload uptime.</p>

<h3 id="137513-core-machinery-for-conditional-authorization"><a href="https://github.com/kubernetes/kubernetes/pull/137513">137513: Core Machinery for Conditional Authorization</a></h3>

<p>In this pull request, <a href="https://github.com/luxas">luxas</a> implemented the core engine logic for the highly anticipated <strong>Conditional Authorization</strong> feature Part of <a href="https://github.com/kubernetes/enhancements/issues/5681">KEP-5681</a>, this foundational work builds directly upon earlier API refinements to establish the machinery required for context-aware access control. By providing these framework hooks, the API server will soon be able to evaluate complex runtime variables and policies before granting client permissions, significantly upgrading security capabilities across multi-tenant clusters.</p>

<h3 id="137981-podgroup-supported-as-preemption-victims"><a href="https://github.com/kubernetes/kubernetes/pull/137981">137981: PodGroup Supported as Preemption Victims</a></h3>

<p><a href="https://github.com/vshkrabkov">vshkrabkov</a> enhanced the default scheduling flow to support <strong>PodGroups as atomic preemption victims</strong> Linked to the Workload-Aware Preemption design under <a href="https://github.com/kubernetes/enhancements/issues/5710">KEP-5710</a>, this change introduces clean interface abstractions for <code class="language-plaintext highlighter-rouge">Victim</code> and <code class="language-plaintext highlighter-rouge">DomainVictim</code> to group node-level state. Rather than evaluating and evicting pods individually, the scheduler can now remove an entire group as a single unit, avoiding partial preemption failures and heavily optimizing gang-scheduled AI or batch workloads.</p>

<h3 id="139674-introduce-podgrouppostfilter-extension-point"><a href="https://github.com/kubernetes/kubernetes/pull/139674">139674: Introduce PodGroupPostFilter Extension Point</a></h3>

<p>In this pull request, <a href="https://github.com/GFilipek">GFilipek</a> introduced the new <strong>PodGroupPostFilter</strong> extension point to the scheduling framework API. Associated with <a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5710-workload-aware-preemption">KEP-5710</a>, this clean architectural change replaces previously hardcoded Workload-Aware Preemption logic with a fully pluggable interface. This enables out-of-tree and custom plugin authors to seamlessly build and configure their own complex preemption and scheduling rules when dealing with multi-pod groups and batch scheduling behaviors.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5963-device-compatibility-groups">KEP-5963: DRA Device Compatibility Groups</a></p>

<p>This KEP extends the Dynamic Resource Allocation (DRA) ResourceSlice API to let device drivers declare mutually exclusive allocation constraints between groups of devices. This addresses hardware (such as GPUs) that support multiple incompatible partitioning or virtualization modes, where selecting one configuration prevents others from being used simultaneously.</p>

<p>Today, DRA cannot express these constraints, causing the scheduler to make invalid allocation decisions. As a result, conflicts are detected only during resource preparation, leading to pod startup failures, repeated scheduling retries, and a poor user experience. This proposal enables the scheduler to understand these constraints upfront, preventing incompatible allocations before scheduling.</p>

<p>This KEP is currently in Alpha stage.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/140063">DRA resourceslice controller bug where an update-after-quick-delete cached stale entries</a>, preventing subsequent updates from taking effect.</li>
  <li>Adds <a href="https://github.com/kubernetes/kubernetes/pull/137981">PodGroup as a preemption victim</a> in the per-pod preemption flow, part of KEP-5710 workload-aware preemption.</li>
  <li>Fixes a bug where <a href="https://github.com/kubernetes/kubernetes/pull/138183">kube-proxy did not restart on node IP changes or deletions</a>, leaving stale network state after Node object mutations.</li>
  <li>Reimplements <a href="https://github.com/kubernetes/kubernetes/pull/139980">Workload-Aware Preemption using in-place filter reprieval</a> to match the design in KEP-5710.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/140267">kubelet bug where burstable pods’ <code class="language-plaintext highlighter-rouge">memory.low</code> cgroup value was ineffective</a> due to missing ancestor cgroup coverage.</li>
  <li>Adds a new <a href="https://github.com/kubernetes/kubernetes/pull/139674"><code class="language-plaintext highlighter-rouge">PodGroupPostFilter</code> scheduler extension point</a> that runs after standard <code class="language-plaintext highlighter-rouge">PostFilter</code> for gang-scheduled workloads.</li>
  <li>kubectl explain: adds a <a href="https://github.com/kubernetes/kubernetes/pull/138809"><code class="language-plaintext highlighter-rouge">--max-depth</code> flag</a> to truncate schema output for deeply nested resources like CRDs and Pod specs.</li>
  <li>kubectl: <a href="https://github.com/kubernetes/kubernetes/pull/140189"><code class="language-plaintext highlighter-rouge">cluster-info dump --output-directory</code> creates output files with owner-only permissions</a>, preventing world-readable exposure of potentially sensitive cluster state.</li>
  <li>Lands the <a href="https://github.com/kubernetes/kubernetes/pull/137513">core Conditional Authorization machinery</a> (Conditional Authz [2/n]), building on the interface rename in <a href="https://github.com/kubernetes/kubernetes/pull/138801">#138801</a> to enable authorizers to evaluate condition-based decisions.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/140183">scheduler bug where <code class="language-plaintext highlighter-rouge">PodGroup.Status</code> was not updated when pods in the group had mismatched <code class="language-plaintext highlighter-rouge">.spec.schedulerName</code> or priority values</a>.</li>
</ul>

<h2 id="promotions">Promotions</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139223">KEP-5207: <code class="language-plaintext highlighter-rouge">metrics.k8s.io</code> API promoted to v1 GA</a>.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138560">KEP-3962: Storage Version Migration (SVM) promoted to GA</a>.</li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/140385"><code class="language-plaintext highlighter-rouge">github.com/google/cadvisor/lib</code> bumped from v0.60.3 to v0.60.4</a>, which pulls in updated <code class="language-plaintext highlighter-rouge">golang.org/x/*</code> module versions across the tree.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/140294">Structured Merge Diff bumped to v6.4.2</a>, reverting an SMD change that had introduced a Server-Side Apply regression for nullable container types.</li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<p><a href="https://etcd.io/blog/2026/announcing-etcd-3.7/">etcd v3.7</a> was released last week.  Highlights include RangeStream (to be supported by Kubernetes v1.37), bootstrapping from v3store, a protobuf overhaul, and multiple performance improvements.  Kubernetes v1.37 will test against etcd v3.7.</p>

<ul>
  <li><a href="https://github.com/coredns/coredns/releases/tag/v1.14.6">coredns v1.14.6</a>: fix ARM/MIPS builds, add forward source_address; also <a href="https://github.com/coredns/coredns/releases/tag/v1.14.5">v1.14.5</a></li>
  <li><a href="https://github.com/containerd/containerd/releases/tag/v2.3.3">containerd v2.3.3</a>: fix NRI nil pointer, reject invalid CreateContainer; also <a href="https://github.com/containerd/containerd/releases/tag/v2.2.6">v2.2.6</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.0.11">v2.0.11</a>, <a href="https://github.com/containerd/containerd/releases/tag/v1.7.34">v1.7.34</a></li>
  <li><a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.36.0">cluster-autoscaler v1.36.0</a>: add DRA partitionable devices, add CapacityQuota CRD; also <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.35.1">v1.35.1</a>, <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.34.4">v1.34.4</a>, <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.33.5">v1.33.5</a></li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.13.1">prometheus v3.13.1</a>: fix TSDB chunk cache bug; also <a href="https://github.com/prometheus/prometheus/releases/tag/v3.5.5">v3.5.5</a> (fixes CVE-2026-53606), <a href="https://github.com/prometheus/prometheus/releases/tag/v3.13.0-rc.0">v3.13.0-rc.0</a></li>
  <li><a href="https://github.com/grpc/grpc/releases/tag/v1.82.1">grpc v1.82.1</a>: bump Python protobuf lower bound</li>
  <li><a href="https://github.com/kubernetes-sigs/node-feature-discovery/releases/tag/v0.19.0">Node Feature Discovery v0.19.0 has been released</a>, introducing faster node re-labeling after rebuilds, configurable owner references, new x86-64 microarchitecture labels, topology updater performance improvements, and reconciliation optimizations.</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>aojea: Shoutout to @adrianmoisey for consistently working to improve components across the project. These contributions often uncover significant opportunities for improvement, such as the major fix documented in <a href="https://github.com/kubernetes/autoscaler/issues/9116">kubernetes/autoscaler#9116</a>.</li>
  <li>jberkus: A big thank you to the more than 150 contributors, including over 100 new contributors, who were part of the etcd v3.7 release cycle.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending July 05, 2026</title><link href="https://lwkd.info/2026/20260711" rel="alternate" type="text/html" title="Week Ending July 05, 2026" /><published>2026-07-11T06:16:20+00:00</published><updated>2026-07-11T06:16:20+00:00</updated><id>https://lwkd.info/2026/2026-07-05-update</id><content type="html" xml:base="https://lwkd.info/2026/20260711"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>Kubernetes v1.37 has reached its mid-cycle milestone with 86 tracked enhancements. Feature blog placeholders are now due, while Code Freeze begins on July 22 ahead of the planned August 26 release.</p>

<p>SIG etcd has released etcd v3.7.0, introducing the long-awaited RangeStream feature, performance improvements, the removal of the legacy v2store, and a major protobuf overhaul.</p>

<p>The Kubernetes <a href="https://github.com/kubernetes/community/tree/main/elections/steering/2026">Steering Committee election</a> process is underway. Community member Tim Hockin has opened a self-nomination and is seeking endorsements from eligible voters to qualify for the 2026 election.</p>

<p>The CFP for the Maintainer Track, ContribFest, and Lightning Talks at <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/">KubeCon North America 2026</a> closes on July 12. Kubernetes SIGs and Working Groups are encouraged to submit session proposals before the deadline.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: <a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#feature-blog-freeze">Feature Blog Freeze</a>, 10th July 2026</strong></p>

<p>Feature Blog Freeze placeholders for Kubernetes v1.37 are due July 10th (AoE). If your enhancement is getting a feature blog, open a placeholder PR before the deadline; the Release Comms team will follow up on delivery and review from there.</p>

<p>Cherry-picks for the July patch releases are due July 10th, with releases targeted for July 14th.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="139142-introduce-hpaoptimizedselectorstore-for-high-concurrency-scaling"><a href="https://github.com/kubernetes/kubernetes/pull/139142">139142: Introduce HPAOptimizedSelectorStore for High-Concurrency Scaling</a></h3>

<p>In this pull request <a href="https://github.com/hakuna-matatah">hakuna-matatah</a> introduced the <strong>HPAOptimizedSelectorStore</strong> feature gate to replace the legacy, lock-heavy bimultimap datastore inside the HorizontalPodAutoscaler controller. This architectural update mitigates extreme Read/Write mutex contention, reducing average lock wait times by 214×. As a result, reconciliation throughput exploded by up to 195× under massive concurrent workloads. This optimization allows the HPA controller to scale linearly with high CPU core counts, eliminating a critical performance bottleneck for dense enterprise clusters.</p>

<h3 id="140140-enable-watchlistcompression-feature-gate"><a href="https://github.com/kubernetes/kubernetes/pull/140140">140140: Enable WatchListCompression Feature Gate</a></h3>

<p>In this pull request <a href="https://github.com/p0lyn0mial">p0lyn0mial</a> enabled the <strong>WatchListCompression</strong> feature gate by default, introducing transparent gzip compression for WatchList responses. By utilizing a recycled pool of writers via <code class="language-plaintext highlighter-rouge">perFlushGzipWriter</code>, this PR resolves previous memory regression bugs. Large-scale benchmarks demonstrate that this change slashes P99 latency by up to 54% and reduces baseline API server memory by 7%. It is a major scalability milestone that trades minor CPU cycles for optimized network throughput.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-autoscaling/2021-scale-from-zero/README.md">KEP-2021: HPA supports scaling to/from zero pods for object/external metrics</a></p>

<p>This KEP enables the Horizontal Pod Autoscaler (HPA) to scale workloads from zero to many replicas and back to zero when using object or external metrics. Since CPU and memory metrics require running pods, scale-to-zero is limited to these metric types. The feature is intended to reduce costs and energy consumption for intermittently idle, resource-intensive workloads (such as GPU-based applications) while still allowing HPA to automatically scale back up when demand returns (for example, when a queue receives new messages). As of now, the KEP is still in Alpha.</p>

<h2 id="other-merges">Other Merges</h2>
<ul>
  <li>Adds a <a href="https://github.com/kubernetes/kubernetes/pull/139240"><code class="language-plaintext highlighter-rouge">PreemptionPolicy</code> field to <code class="language-plaintext highlighter-rouge">PodGroupSpec</code></a> as part of KEP-5710 workload-aware preemption; the field is gated behind the <code class="language-plaintext highlighter-rouge">PodGroupPreemptionPolicy</code> feature gate and follows the same <code class="language-plaintext highlighter-rouge">Never</code> / <code class="language-plaintext highlighter-rouge">PreemptLowerPriority</code> semantics as per-pod preemption.</li>
  <li>kube-scheduler: <a href="https://github.com/kubernetes/kubernetes/pull/140075">adds the <code class="language-plaintext highlighter-rouge">PodGroup</code> API object to <code class="language-plaintext highlighter-rouge">PodGroupInfo</code></a> so scheduler plugins can obtain a consistent PodGroup state throughout the scheduling cycle.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139623">DRA kubelet plugin bug where drivers with names longer than ~30 characters could not enable rolling updates</a> because the plugin registration socket path exceeded the AF_UNIX limit; the socket basename now falls back through pod-UID and hashed-driver-name variants that fit under the configured registry directory.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/139989">improved the warning logic when the user sets a non-default <code class="language-plaintext highlighter-rouge">bindAddress</code> in <code class="language-plaintext highlighter-rouge">KubeProxyConfiguration</code></a>; explicit wildcard binds (<code class="language-plaintext highlighter-rouge">0.0.0.0</code> / <code class="language-plaintext highlighter-rouge">::</code>) no longer trigger contradictory recommendations, invalid addresses now get their own warning, and specific non-wildcard IPs still recommend the per-family wildcard.</li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.5.5">prometheus v3.5.5</a>: fix CVE-2026-53606 in sanitize-html; also <a href="https://github.com/prometheus/prometheus/releases/tag/v3.13.0-rc.0">v3.13.0-rc.0</a></li>
  <li><a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.36.0">cluster-autoscaler v1.36.0</a>: add CapacityQuota CRD, DRA partitionable devices; also <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.35.1">v1.35.1</a>, <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.34.4">v1.34.4</a>, <a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.33.5">v1.33.5</a></li>
  <li><a href="https://github.com/grpc/grpc/releases/tag/v1.82.1">grpc v1.82.1</a>: bump Python protobuf lower bound</li>
  <li><a href="https://github.com/etcd-io/etcd/releases/tag/v3.7.0">etcd v3.7.0</a>: new minor release, see CHANGELOG</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>jberkus: Kudos to new contributor @Nick Nikolakakis(nicknikolakakis) for getting the etcd upgrade and downgrade guides published in time for the release.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending June 28, 2026</title><link href="https://lwkd.info/2026/20260702" rel="alternate" type="text/html" title="Week Ending June 28, 2026" /><published>2026-07-02T00:15:00+00:00</published><updated>2026-07-02T00:15:00+00:00</updated><id>https://lwkd.info/2026/2026-06-28-update</id><content type="html" xml:base="https://lwkd.info/2026/20260702"><![CDATA[<h2 id="developer-news">Developer News</h2>
<p>In <a href="https://kubernetes.io/blog/2026/06/26/open-source-maintainership-in-the-age-of-ai/">Open source maintainership in the age of AI</a>, Kevin Hannon breaks down how Kubernetes is adapting to AI-assisted contributions through contributor policies, human accountability, and AI-powered review tools.</p>

<p>The <a href="https://github.com/kubernetes-retired/cloud-provider-sample">kubernetes/cloud-provider-sample</a> and <a href="https://github.com/kubernetes-retired/cloud-provider-equinix-metal">kubernetes-sigs/cloud-provider-equinix-metal</a> are now archived.</p>

<p><a href="https://sessionize.com/maintainer-summit-na-2026/">Maintainer Summit North America 2026 CFP</a> closes on July 19. Submit a session proposal before the deadline.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: <a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#docs">Docs placeholders</a>, <a href="https://www.kubernetes.dev/resources/release/#timeline">July 2</a></strong></p>

<p>If you are responsible for an enhancement that requires documentation, make sure your placeholder documentation PR is opened by July 2. If your enhancement doesn’t require documentation, make sure to mark it <code class="language-plaintext highlighter-rouge">No Docs Needed</code> on the <a href="https://github.com/orgs/kubernetes/projects/264">Enhancements Tracking Board</a>.</p>

<p>Cherry-picks for the July patch releases are due July 10, with releases targeted for July 14.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="139956-graduate-selinuxmount-to-ga"><a href="https://github.com/kubernetes/kubernetes/pull/139956">139956: Graduate SELinuxMount to GA</a></h3>

<p>In this pull request <a href="https://github.com/jsafrane">jsafrane</a> advanced <strong>SELinuxMount</strong> to <strong>General Availability</strong>, completing the feature’s journey to stable Kubernetes storage behavior as part of <a href="https://github.com/kubernetes/enhancements/issues/1710">KEP-1710</a>. SELinuxMount allows Kubernetes to mount volumes with the appropriate SELinux context instead of relying only on recursive relabeling of files on the volume, which can be slow and expensive for large volumes or high-density nodes. Reaching GA means the feature is now considered production-ready for SELinux-enforcing environments, where it can improve both pod startup performance and operational predictability.</p>

<h3 id="139632-kep-4222-support-cbor-encoding-for-non-resource-endpoints"><a href="https://github.com/kubernetes/kubernetes/pull/139632">139632: KEP-4222: Support CBOR encoding for non-resource endpoints</a></h3>

<p>In this pull request <a href="https://github.com/benluddy">benluddy</a> added support for <strong>CBOR encoding on Kubernetes non-resource endpoints</strong> as part of <a href="https://github.com/kubernetes/enhancements/issues/4222">KEP-4222</a>. While Kubernetes already supports multiple content types for API resources, this work extends encoding support to endpoints outside the standard resource CRUD paths, improving consistency in how the API server can serialize responses. Because it touches API machinery and request/response handling in the control plane, this PR is notable beyond a single feature area and may influence downstream clients, proxies, and ecosystem tooling that interact with those endpoints.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/5532-restart-all-containers-on-container-exits/README.md">KEP-5532: Restart All Containers on Container Exits</a></p>

<p>This KEP extends the container restart rules introduced in <a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/5307-container-restart-policy/README.md">KEP-5307</a> by allowing a container’s exit to trigger an in-place restart of the entire pod. Instead of recreating the pod, Kubernetes restarts all containers—including init and sidecar containers—while preserving the pod’s sandbox, UID, network namespace, IP address, and attached devices. This approach is more efficient for workloads such as AI/ML training, where recreating and rescheduling pods is expensive. It also ensures init containers are re-executed, providing a clean and correctly initialized environment after a restart. Additionally, it supports workflows where init containers prepare or fetch new work items before the main application runs again.</p>

<p>This KEP is currently graduated to Alpha in Kubernetes v1.35.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/137141">dbus connection leak in the kubelet node shutdown manager</a> that could exhaust threads on long-running nodes.</li>
  <li>kubelet: <a href="https://github.com/kubernetes/kubernetes/pull/139850">reuses the previous context in <code class="language-plaintext highlighter-rouge">startPodSync</code></a> to fix a memory leak regression introduced when each pod sync allocated a new context.</li>
  <li>Fixes the <a href="https://github.com/kubernetes/kubernetes/pull/139918">CronJob controller’s rate-limiter backoff counter not being cleared</a> on the <code class="language-plaintext highlighter-rouge">(nil, nil)</code> sync path, leaving stale backoff state across sync iterations.</li>
  <li>kubelet <a href="https://github.com/kubernetes/kubernetes/pull/138432">only emits <code class="language-plaintext highlighter-rouge">FailedToRetrieveImagePullSecret</code> events when an image pull actually fails</a>, eliminating spurious warnings for pods that pull cleanly with missing optional pull secrets.</li>
  <li>The scheduler <a href="https://github.com/kubernetes/kubernetes/pull/139602">includes <code class="language-plaintext highlighter-rouge">resourceVersion</code> in Pod status patches</a>, preventing lost updates when concurrent components race to patch the same Pod.</li>
  <li>Validation <a href="https://github.com/kubernetes/kubernetes/pull/139698">rejects a zero step in <code class="language-plaintext highlighter-rouge">ResourceSlice</code> <code class="language-plaintext highlighter-rouge">validRange</code></a>, preventing DRA drivers from advertising malformed numeric ranges.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139791">Clarifies the kubelet error message</a> when a probe references a named port that cannot be resolved in the container spec.</li>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/136776">Binding API now validates the target node name</a>, rejecting requests with empty or malformed node names at admission.</li>
  <li>kubelet/DRA: <a href="https://github.com/kubernetes/kubernetes/pull/139845">derives claim names from the claim info cache</a> rather than from runtime arguments, improving consistency for DRA driver lookups.</li>
  <li>kubelet <a href="https://github.com/kubernetes/kubernetes/pull/139870">depends on <code class="language-plaintext highlighter-rouge">github.com/google/cadvisor/lib</code></a>, a slimmer cadvisor subpackage that reduces the kubelet’s overall dependency footprint.</li>
  <li>client-go <a href="https://github.com/kubernetes/kubernetes/pull/138914">defers metrics registration to the runtime entry point</a> via constructor functions, eliminating implicit init-time global state for downstream consumers.</li>
  <li>Adds <a href="https://github.com/kubernetes/kubernetes/pull/139652">Windows CPU affinity tests</a> to the <code class="language-plaintext highlighter-rouge">e2e_node_windows</code> suite, continuing the Windows node-level test coverage build-out.</li>
  <li>Declarative validation: an <a href="https://github.com/kubernetes/kubernetes/pull/139963">ObjectMeta test suite has been wired across the core, apps, networking, storage, and scheduling API groups</a>, extending DV coverage uniformly across the API surface (<a href="https://github.com/kubernetes/kubernetes/pull/139970">companion PR</a>).</li>
  <li>HPA’s <a href="https://github.com/kubernetes/kubernetes/pull/138077"><code class="language-plaintext highlighter-rouge">CrossVersionObjectReference.Kind</code> and <code class="language-plaintext highlighter-rouge">.Name</code> fields have been migrated to declarative validation</a>.</li>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/139863">Authorization API group has been onboarded to declarative validation</a>.</li>
</ul>

<h2 id="subprojects_and_dependency_updates">Subprojects_and_Dependency_Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.14.0-alpha.0">cluster-api v1.14.0-alpha.0</a>: 7 breaking changes, 13 new features, 12 bug fixes</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>No shoutouts this week. Want to thank someone for special efforts to improve Kubernetes? Tag them in the #shoutouts channel.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News In Open source maintainership in the age of AI, Kevin Hannon breaks down how Kubernetes is adapting to AI-assisted contributions through contributor policies, human accountability, and AI-powered review tools.]]></summary></entry><entry><title type="html">Week Ending June 21, 2026</title><link href="https://lwkd.info/2026/20260626" rel="alternate" type="text/html" title="Week Ending June 21, 2026" /><published>2026-06-26T19:00:00+00:00</published><updated>2026-06-26T19:00:00+00:00</updated><id>https://lwkd.info/2026/2026-06-21-update</id><content type="html" xml:base="https://lwkd.info/2026/20260626"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>Naadir Jeewa proposed creating <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/Blxf5Vu22Kk">WG Node Identity</a>, a new Working Group intended to coordinate cross-SIG efforts around secure node identity. The effort aims to develop a common approach to hardware-backed node attestation and node identity verification in Kubernetes.</p>

<p>The 2026 Kubernetes <a href="https://github.com/kubernetes/community/tree/main/elections/steering/2026">Steering Committee election</a> season <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/_yL6ZhQcE_w">has begun</a>, with <a href="https://github.com/kubernetes/community/tree/main/elections/steering/2026#candidacy-process">nominations</a> now open for three Steering Committee seats, each serving a two-year term. It is also time to submit <a href="https://github.com/kubernetes/community/tree/main/elections/steering/2026#voter-exception">voter exception requests</a>.</p>

<p>Mario Fahlandt has been nominated to serve as an additional <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/lSlmpkJiZVw">SIG ContribEx Co-Chair</a>. He has contributed across several community initiatives, including Contributor Summits, New Contributor Orientation, and contributor outreach efforts. The leadership team is being expanded to help share the growing responsibilities of SIG ContribEx.</p>

<p>After serving as <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/3fKiL3P_LPA">co-chair of Kubernetes SIG Storage</a> for over 10 years, Saad has announced that he will be stepping down from the role. Hemant Kumar has been nominated as the new co-chair, bringing long-term involvement with the SIG and a strong understanding of its goals and direction.</p>

<p>Please <a href="https://forms.gle/RXHyhtPtkcfLzePdA">sign-up</a> for the <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/ClmM5_l6xVU">KubeCon NA 2026 Project Pavilion and onsite PR support program.</a>. SIGs, WGs, Committees, and Subprojects planning to showcase their work or announce major updates at KubeCon should apply for participation and communications support before July 19, 2026.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: Docs placeholders, July 2nd</strong></p>

<p>If you are responsible for an enhancement that requires documentation, you must create a placeholder PR by July 2.  If your enhancement doesn’t require docs, make sure to tag that.</p>

<p>Patch releases <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.33.md">v1.33.13</a>, <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md">v1.34.9</a>, <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.35.md">v1.35.6</a>, and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.36.2</a> came out June 12. This includes a golang update and a multitude of bug fixes.</p>

<h2 id="featured-prs">Featured PRs</h2>
<h3 id="139308-introduce-watchlistcompression-beta"><a href="https://github.com/kubernetes/kubernetes/pull/139308">139308: Introduce WatchListCompression (Beta)</a></h3>

<p>In this pull request <a href="https://github.com/p0lyn0mial">p0lyn0mial</a> introduced the new <strong>WatchListCompression</strong> feature gate, bringing gzip compression support to Kubernetes WatchList responses when clients advertise <code class="language-plaintext highlighter-rouge">Accept-Encoding: gzip</code>. Since many controllers and operators perform an initial LIST before transitioning to WATCH, this feature can significantly reduce network bandwidth and improve efficiency in large clusters. Regular WATCH requests remain unchanged, making the rollout low risk for existing clients. This feature is enabled by default in Beta and is an important improvement for API server scalability.</p>

<h3 id="139237-evenly-load-balance-admission-webhook-connections"><a href="https://github.com/kubernetes/kubernetes/pull/139237">139237: Evenly load balance admission webhook connections</a></h3>

<p><a href="https://github.com/aojea">aojea</a> improved how the kube-apiserver communicates with admission webhooks when <code class="language-plaintext highlighter-rouge">--enable-aggregator-routing=true</code> is enabled. Previously, HTTP connection reuse could unintentionally direct most concurrent admission requests to a single webhook backend, creating uneven load across replicas. This PR introduces round-trip load balancing between webhook endpoints through the <strong>WebhookRoundTripLoadBalancing</strong> feature gate (Beta, enabled by default), improving availability and scalability for highly available webhook deployments.</p>

<h3 id="139282-relaxed-dns-names-reaches-general-availability"><a href="https://github.com/kubernetes/kubernetes/pull/139282">139282: Relaxed DNS Names reaches General Availability</a></h3>

<p>In this pull request <a href="https://github.com/adrianmoisey">adrianmoisey</a> advanced <strong>Relaxed DNS Names</strong> to <strong>General Availability</strong>, completing the feature’s journey from Alpha through Beta to a stable Kubernetes API. The work is part of <a href="https://github.com/kubernetes/enhancements/issues/5311">KEP-5311</a>, which expands supported DNS naming rules while maintaining compatibility with existing workloads. Reaching GA signals that the feature is production-ready and no longer experimental, allowing users and downstream projects to rely on it without feature gate concerns.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5471-enable-sla-based-scheduling">KEP-5471: Extended Toleration Operators for Threshold-Based Placement</a></p>

<p>This enhancement extends Kubernetes taints and tolerations by adding numeric comparison operators (<code class="language-plaintext highlighter-rouge">Lt</code>, <code class="language-plaintext highlighter-rouge">Gt</code>) to <code class="language-plaintext highlighter-rouge">core/v1</code> Tolerations, alongside the existing <code class="language-plaintext highlighter-rouge">Equal</code> and <code class="language-plaintext highlighter-rouge">Exists</code> operators. It enables threshold-based scheduling decisions, such as allowing workloads to run only on nodes with an SLA above a specified value (e.g., SLA ≥ 95%). The change only impacts the existing <code class="language-plaintext highlighter-rouge">TaintToleration</code> scheduler plugin and does not introduce new scheduling algorithms or stages.</p>

<p>The primary motivation is to support clusters with mixed-capacity nodes (e.g., on-demand and spot instances) through a node-centric policy model. Unlike NodeAffinity, which requires configuring every workload individually and lacks eviction capabilities, taints allow nodes to advertise risk levels while workloads explicitly opt in. This preserves existing taint semantics, including <code class="language-plaintext highlighter-rouge">NoExecute</code>-based eviction, provides centralized operational control, reduces configuration drift, and aligns with other Kubernetes safety mechanisms such as memory-pressure and disk-pressure taints. The KEP is currently in the Alpha stage.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>The internal Pod conversion refactor advances with a five-PR series (<a href="https://github.com/kubernetes/kubernetes/pull/139851">PodSpec 1–5</a>) reorganizing PodSpec and PodStatus internals: ExpirationSeconds, <a href="https://github.com/kubernetes/kubernetes/pull/139852">Quobyte field order</a>, <a href="https://github.com/kubernetes/kubernetes/pull/139853">PodSecurityContext fields</a>, <a href="https://github.com/kubernetes/kubernetes/pull/139854">field reordering</a>, and <a href="https://github.com/kubernetes/kubernetes/pull/139855">DeprecatedServiceAccount</a> as groundwork for the next phase of declarative-validation generators.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139860">The watchcache interval source is refactored</a> in <code class="language-plaintext highlighter-rouge">apiserver/storage</code>, simplifying how the cacher pulls events from etcd watch streams.</li>
  <li>Introduces the <a href="https://github.com/kubernetes/kubernetes/pull/139308"><code class="language-plaintext highlighter-rouge">WatchListCompression</code> feature gate</a>, enabling compressed responses for streaming <code class="language-plaintext highlighter-rouge">LIST</code> requests served through the watch cache.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139331">scheduler bug where gated pods were not flushed at the same frequency as non-gated pods</a>, eliminating a latency disparity for gated workloads.</li>
  <li>The scheduler now <a href="https://github.com/kubernetes/kubernetes/pull/139572">logs an error when the <code class="language-plaintext highlighter-rouge">GangScheduling</code> plugin is missing from a <code class="language-plaintext highlighter-rouge">GenericWorkload</code> configuration</a>, making misconfiguration easier to diagnose.</li>
  <li>kubelet: <a href="https://github.com/kubernetes/kubernetes/pull/139639">the <code class="language-plaintext highlighter-rouge">--event-burst</code> CLI flag description is updated to match its actual default</a>, correcting documentation drift.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139814">DRA allocator bug where widening config was incorrectly scoped at the subrequest level</a>, restoring expected allocation semantics for DRA requests with subrequests.</li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://github.com/containerd/containerd/releases/tag/v2.3.2">containerd v2.3.2</a>: fix CVE-2026-50195, fix CVE-2026-53488/53492/53489/47262, fix Windows shim
  log race, fix concurrent startup failures; also <a href="https://github.com/containerd/containerd/releases/tag/v2.2.5">v2.2.5</a>,
  <a href="https://github.com/containerd/containerd/releases/tag/v2.1.9">v2.1.9</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.0.10">v2.0.10</a>,
  <a href="https://github.com/containerd/containerd/releases/tag/v1.7.33">v1.7.33</a></li>
  <li><a href="https://github.com/containerd/nerdctl/releases/tag/v2.3.3">nerdctl v2.3.3</a>: fix CVE-2026-53488, update to containerd v2.3.2, compose run honors –workdir</li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.13.0-rc.1">prometheus v3.13.0-rc.1</a>: fix XSS CVE-2026-44990, credentials no longer forwarded on
cross-host redirects, add experimental metric search API; also <a href="https://github.com/prometheus/prometheus/releases/tag/v3.5.4">v3.5.4</a></li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.14.0-alpha.0">cluster-api v1.14.0-alpha.0</a>: alpha release, 13 new features, 12 bug fixes, 7
breaking changes; also <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.13.3">v1.13.3</a>,
<a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.12.9">v1.12.9</a></li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.17.0-alpha.0">cluster-api-provider-vsphere v1.17.0-alpha.0</a>: alpha release</li>
  <li><a href="https://github.com/kubernetes-sigs/vsphere-csi-driver/releases/tag/v3.7.2">vsphere-csi-driver v3.7.2</a>: upgrade Go 1.26.3, fix CVE-2026-42504, fix CVE-2026-42501</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>subhasmita: Shoutout to @Karim Farid, @Lauri Apple, @Dhanisha Phadate, @ChengHao Yang (tico88612), and @Ofir Cohen (ofirc) for helping make the Enhancements Freeze a success. Their thorough reviews, timely follow-ups, and steady coordination with SIGs and enhancement owners ensured every enhancement was tracked, reviewed, and in the right state before the deadline. Notably, three of them were first-time shadows who did an amazing job. Great teamwork and dedication all.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending June 7, 2026</title><link href="https://lwkd.info/2026/20260611" rel="alternate" type="text/html" title="Week Ending June 7, 2026" /><published>2026-06-11T22:00:00+00:00</published><updated>2026-06-11T22:00:00+00:00</updated><id>https://lwkd.info/2026/2026-06-07-update</id><content type="html" xml:base="https://lwkd.info/2026/20260611"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>SIG-ContribEx will be <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/R7JA1NXdTyk">managing all SIG/WG involvement in KubeCon NA</a> this year, including Project Pavillion kiosks and onsite PR support for Kubernetes project groups. Interested SIGs, WGs, Committees, and Subprojects <a href="https://forms.gle/RXHyhtPtkcfLzePdA">should apply using the form</a> by July 19.</p>

<p>Next Tuesday is the monthly <a href="https://www.kubernetes.dev/docs/orientation/">New Contributor Orientation</a>. Join at <a href="https://www.kubernetes.dev/resources/calendar/">one of two times</a> to learn all about starting your contribution journey.</p>

<h2 id="steering-committee-meeting">Steering Committee Meeting</h2>

<p>This month’s <a href="https://docs.google.com/document/d/1qazwMIHGeF3iUh5xMJIJ6PDr-S3bNkT8tNLRkSiOkOU/edit?tab=t.0#heading=h.5gstfx3y3p7i">Steering Committee Meeting</a> started out by discussing the 2026 Steering Committee Elections. Based on the feedback from last year’s election retro, we are starting the process earlier this year. Antonio Ojea, Benjamin Elder and Sascha Grunert will be stepping down this year and there will be 3 spots to be elected. One feedback from the steering committee was to announce the elections earlier before folks are out for their summer vacations. Keep a lookout for the steering committee elections anouncement soon!</p>

<p>The details of the Maintainer Summit was also discussed. The Maintainer Summit event will happen on the day before the colocated events and will only be happening at KubeCon EU and NA. If you want to have a booth in the project pavillion for a SIG or a subproject, you can request this via SIG ContribEx. The CFP announcement for the Maintainer Summit at KubeCon NA 2026 is not out yet, but is expected to be announced soon.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: <a href="https://github.com/kubernetes/sig-release/tree/master/releases/release-1.37">Enhancements Freeze</a>, 17th June 2026</strong></p>

<p>Kubernetes <a href="https://github.com/kubernetes/sig-release/tree/master/releases/release-1.37">v1.37</a> enters Enhancements Freeze on June 17th. Ensure all <a href="https://github.com/kubernetes/enhancements">enhancement tracking issues</a>, <a href="https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template">KEP requirements</a>, and <a href="https://github.com/kubernetes/community/blob/main/sig-architecture/production-readiness.md">Production Readiness Review</a> requirements are completed before the deadline.</p>

<p><a href="https://kubernetes.io/releases/patch-releases/">June patch releases</a> were targeted for June 9th for all supported Kubernetes versions.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="138488-dra-extended-resource-promote-to-ga-in-137"><a href="https://github.com/kubernetes/kubernetes/pull/138488">138488: DRA Extended Resource: promote to GA in 1.37</a></h3>

<p>In this pull request, <a href="https://github.com/yliaog">yliaog</a> promoted Dynamic Resource Allocation (DRA) Extended Resources to GA for the v1.37 milestone to establish a stable interface for managing specialized hardware accelerators. Driven and approved by contributors like <a href="https://github.com/pohly">pohly</a> , <a href="https://github.com/liggitt">liggitt</a> , and <a href="https://github.com/bart0sh">bart0sh</a> , the PR resolves tracking issue <a href="https://github.com/kubernetes/kubernetes/issues/138376">#138376</a> and aligns with the <code class="language-plaintext highlighter-rouge">wg/device-management</code> working group.</p>

<h3 id="139466-kep-961-maxunavailable-feature-on-by-default"><a href="https://github.com/kubernetes/kubernetes/pull/139466">139466: KEP-961: MaxUnavailable Feature On By Default</a></h3>

<p>In this pull request, <a href="https://github.com/soltysh">soltysh</a> advanced a long-awaited capability by enabling the <code class="language-plaintext highlighter-rouge">maxUnavailable</code> rolling update strategy configuration by default for <a href="https://github.com/kubernetes/enhancements/issues/961">KEP-961</a>. This change allows for tighter control over application availability and faster rollout tempos during workload updates without relying on manual feature gate activation.</p>

<h3 id="139397-introduce-feature-gate-for-ipvs"><a href="https://github.com/kubernetes/kubernetes/pull/139397">139397: Introduce Feature Gate for IPVS</a></h3>

<p><a href="https://github.com/adrianmoisey">adrianmoisey</a> introduced a brand-new feature gate structurally isolating IPVS (IP Virtual Server) logic within <code class="language-plaintext highlighter-rouge">kube-proxy</code> for <a href="https://github.com/kubernetes/enhancements/issues/5495">KEP-5495</a>. This lays the crucial architectural groundwork for how the networking subsystem is managed, configured, and potentially decoupled in future releases, affecting both contributors modifying proxy code and users leveraging high-performance IPVS routing modes. Please test that this feature gate functions correctly in your networking setup.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Adds the <a href="https://github.com/kubernetes/kubernetes/pull/136915"><code class="language-plaintext highlighter-rouge">EtcdRangeStream</code> feature gate</a> which initializes the watch cache via a single server-streaming etcd RangeStream RPC instead of paginated range requests, reducing apiserver memory pressure during bootstrap as part of KEP-5966.</li>
  <li>Adds the <a href="https://github.com/kubernetes/kubernetes/pull/139397"><code class="language-plaintext highlighter-rouge">KubeProxyIPVS</code> feature gate</a> as Phase 2 of KEP-5495, gating IPVS mode in kube-proxy on an opt-in basis ahead of full removal in a future release.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/136016">removed the v1beta3 configuration API and the <code class="language-plaintext highlighter-rouge">PublicKeysECDSA</code> feature gate</a>; users still on v1beta3 must migrate to v1beta4 before upgrading.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139330">scheduler bug where gated pods retained <code class="language-plaintext highlighter-rouge">WasFlushedFromUnschedulable</code> after a flush event</a>, causing them to be repeatedly re-evaluated.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139418">DRA shared in-flight allocation accounting bug</a> where error paths left stale entries that could lead to scheduling deadlocks.</li>
  <li>Handles <a href="https://github.com/kubernetes/kubernetes/pull/138856">corrupted subpath mount points during container restart</a>, allowing kubelet to recover automatically instead of failing the restart.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/138139">MemoryQoS bug where BestEffort pods received an incorrect <code class="language-plaintext highlighter-rouge">memory.high</code> cgroup value</a>, affecting memory-pressure behaviour for those workloads.</li>
  <li>kubelet now <a href="https://github.com/kubernetes/kubernetes/pull/139377">clears stale <code class="language-plaintext highlighter-rouge">memory.high</code> on containers when MemoryQoS is disabled</a>, preventing residual cgroup configuration when the feature is toggled off.</li>
  <li>Adds a <a href="https://github.com/kubernetes/kubernetes/pull/138235">new Windows node-level e2e test suite</a> under <code class="language-plaintext highlighter-rouge">test/e2e_node_windows</code>, closing a long-standing Windows test coverage gap.</li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://github.com/coredns/coredns/releases/tag/v1.14.4">CoreDNS v1.14.4</a>: DoH3/DoQ transport improvements, DNSSEC signing fix, loong64 support, auto zone</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>No shoutouts this week. Want to thank someone for special efforts to improve Kubernetes? Tag them in the #shoutouts channel.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending May 31, 2026</title><link href="https://lwkd.info/2026/20260605" rel="alternate" type="text/html" title="Week Ending May 31, 2026" /><published>2026-06-05T03:00:00+00:00</published><updated>2026-06-05T03:00:00+00:00</updated><id>https://lwkd.info/2026/2026-05-31-update</id><content type="html" xml:base="https://lwkd.info/2026/20260605"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The Kubernetes Node Lifecycle Working Group is seeking <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/1IhNQulVkO8">community feedback</a> on node lifecycle use cases where components need node-state information that is not currently available through a common API. The collected feedback will help the group scope KEPs for the next Kubernetes release cycle.</p>

<p><a href="https://groups.google.com/a/kubernetes.io/g/dev/c/wv3wLL2e9Qk">SIG-etcd</a> has nominated Fu Wei as a co-Tech Lead, recognizing his sustained technical contributions, leadership, and commitment to the etcd project and community</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: Production Readiness Freeze, 10th June 2026</strong></p>

<p><a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze">Production Readiness Freeze</a> for Kubernetes v1.37 lands on 10th June. Ensure all
required Production Readiness Reviews are completed and any outstanding issues
are addressed before the deadline.</p>

<p>Cherry-picks for the June patch releases are due June 5th.  The release is expected on the 9th.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="139218-wrap-errors-from-pod-group-preemption"><a href="https://github.com/kubernetes/kubernetes/pull/139218">139218: Wrap errors from pod group preemption</a></h3>

<p><a href="https://github.com/Argh4k">Argh4k</a> has landed a reader-facing improvement to kube-scheduler error messages: every error emitted by the pod-group preemption path is now prefixed with <code class="language-plaintext highlighter-rouge">pod group preemption:</code> so operators can immediately tell which preemption flow produced a given <code class="language-plaintext highlighter-rouge">SchedulerError</code>. This mirrors the <a href="https://github.com/kubernetes/kubernetes/blob/ea692abff6bb8ed2b7e20d7e27de76f77bf083d6/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go#L158-L164">existing behavior</a> of the default per-pod preemption path, which already prefixes errors with <code class="language-plaintext highlighter-rouge">preemption:</code>, and is part of the v1.37 milestone under SIG Scheduling.</p>

<p>The change is part of <a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5710-workload-aware-preemption#delayed-preemption">KEP-5710: Workload-Aware Preemption</a>, which introduces a parallel preemption path for pod groups (gang-scheduled workloads) alongside the existing per-pod preemption. With two preemption flows now writing into the same <code class="language-plaintext highlighter-rouge">SchedulerError</code> stream, error logs that previously could only have come from default per-pod preemption can now come from either path, and without a prefix, it was effectively impossible to tell which one. This is especially painful when triaging gang-scheduling failures in batch and AI/ML workloads, where pod-group preemption is the common case.</p>

<p><a href="https://github.com/kubernetes/kubernetes/pull/139251">139251: Rename Signal enum keys in CRI API</a></p>

<p><a href="https://github.com/SergeyKanzhelev">SergeyKanzhelev</a> has renamed all enum keys in the <code class="language-plaintext highlighter-rouge">Signal</code> type within <code class="language-plaintext highlighter-rouge">api.proto</code> to carry a <code class="language-plaintext highlighter-rouge">SIGNAL_</code> prefix (e.g., <code class="language-plaintext highlighter-rouge">SIGABRT</code> becomes <code class="language-plaintext highlighter-rouge">SIGNAL_SIGABRT</code>). This resolves a <a href="https://github.com/kubernetes/kubernetes/issues/138826">long-standing naming collision</a> between the CRI API’s enum identifiers and standard C signal macros, which caused build failures in environments where C signal headers were present.</p>

<p>The change is part of <a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4960-container-stop-signals/README.md">KEP-4960: ContainerStopSignals</a> (introduced in v1.33, currently Alpha). Because the feature hasn’t yet reached Beta, the rename was done directly without a deprecation period. While this is a breaking change for developers, anyone building against cri-api will need to update their code and rebuild binaries; the underlying integer values are unchanged, so the wire format remains compatible and cross-version communication is unaffected. Downstream projects like <a href="https://github.com/containerd/containerd">containerd</a> and <a href="https://github.com/cri-o/cri-o">CRI-O</a> will need to update their internal references to match the new names.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2535-ensure-secret-pulled-images">KEP-2535: Ensure Secret Pulled Images</a></p>

<p>This enhancement improves Kubernetes image security by ensuring that access to container images is authenticated even when images are already present on a node. It introduces kubelet-based image verification for <code class="language-plaintext highlighter-rouge">IfNotPresent</code> and <code class="language-plaintext highlighter-rouge">Never</code> pull policies, allowing administrators to enforce authorization checks without requiring the <code class="language-plaintext highlighter-rouge">Always</code> pull policy. The feature provides configurable verification modes, strengthens control over private image access, and addresses long-standing security concerns around image reuse while reducing dependence on registry availability during container startup.</p>

<p>KEP-2535 graduated to Beta in Kubernetes v1.35, strengthening image access security through credential-aware verification of previously pulled images and enhanced kubelet credential caching.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/139466">MaxUnavailableStatefulSet feature</a> is now enabled by default.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/139339">fixed kubeadm init phase certs –dry-run</a> to correctly copy existing CA files.</li>
  <li>Errors coming from pod group preemption are now prefixed with <a href="https://github.com/kubernetes/kubernetes/pull/139218"><code class="language-plaintext highlighter-rouge">pod group preemption:</code> message</a>.</li>
  <li>Enum keys of <a href="https://github.com/kubernetes/kubernetes/pull/139251">Signal are now prefixed with <code class="language-plaintext highlighter-rouge">SIGNAL_</code></a> in api.proto definition to avoid conflicts with C++ macroses.</li>
  <li>Fixed a regression in 1.36 where modifications to scheduling directives (nodeSelector, tolerations, node affinity) on suspended <a href="https://github.com/kubernetes/kubernetes/pull/139287">Jobs were rejected if the JobSuspended condition</a> had not yet been set by the job controller.</li>
  <li>Fixed a <a href="https://github.com/kubernetes/kubernetes/pull/139162">race condition in preemption</a>, where a preemptor pod could get stuck in unschedulable state.</li>
  <li>Fixed a bug where <a href="https://github.com/kubernetes/kubernetes/pull/139017">Pods that share multi-node claims and also have per-node claims</a> can get stuck in Pending.</li>
  <li>Kubelet now <a href="https://github.com/kubernetes/kubernetes/pull/138856">recovers from corrupted subpath mount points</a> (e.g. stale NFS file handle) during container restart instead of leaving the pod stuck in CreateContainerConfigError.</li>
  <li>kube-scheduler: <a href="https://github.com/kubernetes/kubernetes/pull/138274">Added <code class="language-plaintext highlighter-rouge">PlacementCycleState</code> to the scheduling framework</a>, providing per-placement state to <code class="language-plaintext highlighter-rouge">PlacementScore</code> plugins under the alpha <code class="language-plaintext highlighter-rouge">TopologyAwareWorkloadScheduling</code> feature gate.</li>
</ul>

<h2 id="promotions">Promotions</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139452">WatchCacheInitializationPostStartHook to GA</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138488">GA in 1.37</a></li>
</ul>

<h2 id="deprecated">Deprecated</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139217">Remove RelaxedDNSSearchValidation feature gate</a></li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139427">etcd image to v3.7.0-rc.0</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139380">go.opentelemetry.io/otel to v1.44.0</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139139">etcd to v3.7.0-rc.0</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138871">upgrade go to 1.26.4</a></li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li>SIG-etcd has <a href="https://etcd.io/blog/2026/etcd-370-rc/">released v3.7-rc.0</a> to allow users to test the next version of the Kubernetes database.</li>
  <li><a href="https://github.com/etcd-io/etcd/releases/tag/v3.4.45">etcd v3.4.45</a> will be the final update to v3.4, which is now EOL.  v3.5 and v3.6 have <a href="https://etcd.io/blog/2026/june-patch-release/">also been patched</a>, closing a number of golang upstream security vulnerabilities.</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>No shoutouts this week. Want to thank someone for special efforts to improve Kubernetes? Tag them in the #shoutouts channel.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending May 24, 2026</title><link href="https://lwkd.info/2026/20260524" rel="alternate" type="text/html" title="Week Ending May 24, 2026" /><published>2026-05-24T22:00:00+00:00</published><updated>2026-05-24T22:00:00+00:00</updated><id>https://lwkd.info/2026/2026-05-24-update</id><content type="html" xml:base="https://lwkd.info/2026/20260524"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>wg-batch co-chair Kevin Hannon <a href="http://groups.google.com/a/kubernetes.io/g/dev/c/cDLfhtB2E-E">is stepping down</a> to focus on workload-aware scheduling efforts and will become co-chair of wg-workload-aware-scheduling. He has nominated Amy Chen (@amy) as the new wg-batch co-chair, citing her work on Kueue observability, end-user advocacy, and community engagement.</p>

<p>KubeCon North America <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/program/cfp/">Maintainer Track CFP</a> is open until July 12. Maintainer Track speaking slots are reserved for SIG Chairs and Tech Leads; contributors interested in presenting should coordinate with their SIG Chair to submit through the SIG’s allocated slot.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Kubernetes v1.37 Release Schedule is out!</strong></p>

<p>The <a href="https://github.com/kubernetes/sig-release/tree/master/releases/release-1.37">v1.37 release schedule</a> is now available. The cycle began May 18 and is targeting August 26 for the final release. Key milestones include Enhancements Freeze on June 17 and Code Freeze on July 23.</p>

<p>Dipesh Rawat will serve as Release Lead for v1.37 alongside the <a href="https://github.com/kubernetes/sig-release/blob/master/releases/release-1.37/release-team.md">release team</a> and shadows. The Call for Enhancements is now open, and SIGs should begin preparing KEPs for the upcoming cycle.</p>

<p>The cherry-pick deadline for the June patch releases is June 5.</p>

<h2 id="featured-pr">Featured PR</h2>

<p><a href="https://github.com/kubernetes/kubernetes/pull/139232">139232: validation-gen: elide RegisterValidations for packages with no TypeMeta validations</a></p>

<p>The declarative-validation toolchain has been graduating quickly over the past several weeks, first the introduction of the <code class="language-plaintext highlighter-rouge">+k8s:eachVal</code> tag chain in <a href="https://github.com/kubernetes/kubernetes/pull/138629">#138629</a>, then the coverage guardrail in <a href="https://github.com/kubernetes/kubernetes/pull/138872">#138872</a>. One side effect of running <code class="language-plaintext highlighter-rouge">validation-gen</code> across every API package was a long tail of generated files that registered nothing; empty <code class="language-plaintext highlighter-rouge">RegisterValidations</code> functions whose bodies were just <code class="language-plaintext highlighter-rouge">return nil</code>. They added no behaviour, but they did add review burden, vendor noise, and confusion for contributors trying to understand which packages actually participate in declarative validation.</p>

<p>This change moves a <code class="language-plaintext highlighter-rouge">hasRootTypesWithValidations()</code> check into <code class="language-plaintext highlighter-rouge">emitRegisterFunction</code> itself so the generator simply no-ops when there’s nothing to register, removing 26 empty generated files across <code class="language-plaintext highlighter-rouge">pkg/apis/admission</code>, <code class="language-plaintext highlighter-rouge">pkg/apis/apps</code>, <code class="language-plaintext highlighter-rouge">pkg/apis/policy</code>, and other API package directories. It is also a prerequisite now, for <a href="https://github.com/kubernetes/kubernetes/pull/139101">#139101</a>, the next step in the same series. This is scoped to SIG API Machinery, and is targeted at the v1.37 milestone.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/5237-watch-based-route-controller-reconciliation/README.md">KEP-5237: Convert route controller to watch-based reconciliation</a></p>

<p>This enhancement introduces a watch-based reconciliation mechanism for the Kubernetes route controller using informers, replacing the previous fixed 10-second polling loop. The change reduces unnecessary API requests to infrastructure providers, improves responsiveness when nodes are added or updated, and aligns the route controller with other informer-driven Kubernetes controllers. Additional work also introduced route synchronization metrics along with supporting documentation and feature blog updates.</p>

<p>The watch-based route controller reconciliation enhancement is currently in Alpha stage.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Exposes the error reason when <a href="https://github.com/kubernetes/kubernetes/pull/139182">invalid service CIDRs</a> are configured.</li>
  <li>Fixes a <a href="https://github.com/kubernetes/kubernetes/pull/139168/changes">1.34+ regression handling containers</a> with environment values set from Secret API objects containing binary non-utf8 data.</li>
  <li>Fixed queue hint for <a href="https://github.com/kubernetes/kubernetes/pull/139161">inter-pod anti-affinity</a> in case there are multiple terms, which might have caused delays in scheduling.</li>
  <li>The <code class="language-plaintext highlighter-rouge">apiserver_storage_list_*</code> metrics now include <a href="https://github.com/kubernetes/kubernetes/pull/139125"><code class="language-plaintext highlighter-rouge">storage</code> and <code class="language-plaintext highlighter-rouge">index</code> labels</a> to distinguish the storage backend and lookup path used to serve LIST requests.</li>
  <li>kubectl: filter top <a href="https://github.com/kubernetes/kubernetes/pull/139107">pod metrics using pod field selectors</a></li>
  <li>kubeadm: the preflight check <code class="language-plaintext highlighter-rouge">ContainerRuntimeVersion</code> validates if the <a href="https://github.com/kubernetes/kubernetes/pull/139122">installed container runtime supports the <code class="language-plaintext highlighter-rouge">RuntimeConfig</code> gRPC method</a>.</li>
  <li>Fixed duplicate logs when trying to <a href="https://github.com/kubernetes/kubernetes/pull/139091">attach to a pod fails</a>.</li>
  <li>kube-controller-manager: The HPA controller now <a href="https://github.com/kubernetes/kubernetes/pull/139025">defers syncing an HPA object</a> when the controller has not yet observed HPA status writes from the last time the object was synced.</li>
  <li>Once group-level preemption succeeds, each pod in the PodGroup gets a <a href="https://github.com/kubernetes/kubernetes/pull/138967">tentative node assignment</a> through <code class="language-plaintext highlighter-rouge">nominatedNodeName</code>, just like a normal preempting pod does.</li>
  <li>kubeadm: fixed a <a href="https://github.com/kubernetes/kubernetes/pull/138939">panic in kubeadm PKI key loading</a> when the private key type and public key type mismatch.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138771">Optimized CEL admission policy evaluation</a> by adopting a lazy zero-allocation reflection-based utility for object traversal, significantly reducing CPU usage and garbage collection overhead during request processing.</li>
  <li>Fixed a kube-proxy IPVS-mode <a href="https://github.com/kubernetes/kubernetes/pull/138927">performance bug where <code class="language-plaintext highlighter-rouge">syncProxyRules</code> could take tens of seconds in clusters</a> with many Services because <code class="language-plaintext highlighter-rouge">GetAllLocalAddressesExcept</code> issued one full netlink address dump per interface. The function now issues a single dump per address family, reducing <code class="language-plaintext highlighter-rouge">syncProxyRules</code> latency by orders of magnitude on large clusters.</li>
  <li>Fixed a panic in the <a href="https://github.com/kubernetes/kubernetes/pull/138736">endpoint controller when processing services</a> with empty IPFamilies field.</li>
  <li>Converts the <a href="https://github.com/kubernetes/kubernetes/pull/138572"><code class="language-plaintext highlighter-rouge">DisruptionMode</code> enum field to struct to support future extensibility</a>.</li>
  <li>Fixed a <a href="https://github.com/kubernetes/kubernetes/pull/138367">bug where pods with multiple subPath volume mounts on Windows would get stuck</a> in Terminating state because file handles from subPath preparation were leaked, preventing volume cleanup.</li>
  <li>Added <a href="https://github.com/kubernetes/kubernetes/pull/138103"><code class="language-plaintext highlighter-rouge">AnnotatedEventf</code> method to the new events API (<code class="language-plaintext highlighter-rouge">EventRecorder</code> and <code class="language-plaintext highlighter-rouge">EventRecorderLogger</code> interfaces in <code class="language-plaintext highlighter-rouge">client-go/tools/events</code>)</a>,</li>
  <li>Added <a href="https://github.com/kubernetes/kubernetes/pull/137547/changes">ServiceName, PodManagementPolicy, and PersistentVolumeClaimRetentionPolicy</a> to <code class="language-plaintext highlighter-rouge">kubectl describe statefulset</code> output.</li>
  <li>Fixed a <a href="https://github.com/kubernetes/kubernetes/pull/139040">DRA scheduling bug that could allow two Pods to be assigned conflicting partitions</a> of the same shared device. The scheduler now correctly remembers shared device usage across scheduling cycles, preventing accidental double-allocation, potentially causing device conflicts, workload failures, crashes, or data loss.</li>
</ul>

<h2 id="deprecated">Deprecated</h2>
<ul>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/139154">deprecated ALPHA metrics</a> <code class="language-plaintext highlighter-rouge">apiserver_cache_list_total</code>, <code class="language-plaintext highlighter-rouge">apiserver_cache_list_fetched_objects_total</code>, and <code class="language-plaintext highlighter-rouge">apiserver_cache_list_returned_objects_total</code> are no longer exposed by default. Should migrate to the unified <code class="language-plaintext highlighter-rouge">apiserver_storage_list_*</code> metrics with <code class="language-plaintext highlighter-rouge">storage="watchcache"</code> label.</li>
  <li>The no-op <a href="https://github.com/kubernetes/kubernetes/pull/134151"><code class="language-plaintext highlighter-rouge">DefaultWatchCacheSize</code> field of <code class="language-plaintext highlighter-rouge">k8s.io/apiserver/pkg/server/options.EtcdOptions</code> is now removed</a>.</li>
</ul>

<h2 id="promotions">Promotions</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137116"><code class="language-plaintext highlighter-rouge">apiserver_watch_events_total</code> and <code class="language-plaintext highlighter-rouge">apiserver_watch_events_sizes</code> to BETA</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137072"><code class="language-plaintext highlighter-rouge">serviceaccount_legacy_tokens_total</code>, <code class="language-plaintext highlighter-rouge">serviceaccount_stale_tokens_total</code>, <code class="language-plaintext highlighter-rouge">serviceaccount_valid_tokens_total</code> to beta</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136894">apiserver webhook <code class="language-plaintext highlighter-rouge">apiserver_webhooks_x509_missing_san_total</code> and <code class="language-plaintext highlighter-rouge">apiserver_webhooks_x509_insecure_sha1_total</code> metrics to BETA</a>.</li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/139248">golang.org/x/crypto to v0.52.0</a></li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes-sigs/vsphere-csi-driver/releases/tag/v3.7.1">vsphere-csi-driver v3.7.1</a>: fix PVC provisioning failures, fix CVE-2026-27140, CVE-2026-27143, CVE-2026-27144, CVE-2026-32281, CVE-2026-32283</li>
  <li><a href="https://github.com/containerd/containerd/releases/tag/v2.3.1">containerd v2.3.1</a>: fix CVE-2026-46680, block AF_ALG seccomp, fix gRPC plugin startup, fix sandbox task API; also <a href="https://github.com/containerd/containerd/releases/tag/v2.2.4">v2.2.4</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.0.9">v2.0.9</a>, <a href="https://github.com/containerd/containerd/releases/tag/v1.7.32">v1.7.32</a></li>
  <li><a href="https://github.com/containerd/nerdctl/releases/tag/v2.3.1">nerdctl v2.3.1</a>: promote to GA, add Compose healthcheck support, fix CNI config panic, update BuildKit v0.30.0</li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.12.0-rc.0">prometheus v3.12.0-rc.0</a>: fix remote write DoS, fix STACKIT secret exposure, add DigitalOcean/Outscale SD, add PromQL start/end/range/step functions, improve TSDB chunk lookup performance</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending May 17, 2026</title><link href="https://lwkd.info/2026/20260522" rel="alternate" type="text/html" title="Week Ending May 17, 2026" /><published>2026-05-22T15:00:00+00:00</published><updated>2026-05-22T15:00:00+00:00</updated><id>https://lwkd.info/2026/2026-05-17-update</id><content type="html" xml:base="https://lwkd.info/2026/20260522"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/xjVxuEGyK7U">2026 Steering Election cycle</a> has officially begun, with ContribEx appointing Nina Polshakova, Sreeram Venkitesh, and Rey Lejano as this year’s Election Officers. Xander Grzywinski and Christopher Tineo will serve as Alternate Officers.</p>

<p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/program/cfp/">KubeCon North America CFP</a> closes on May 31. Submit your talks before the deadline.</p>

<p>KubeCon North America <a href="https://sessionize.com/project-benefits-kubecon-na-2026/">Maintainer Track CFP</a> is open until July 12. Maintainer Track speaking slots are reserved for SIG Chairs and Tech Leads; contributors interested in presenting should coordinate with their SIG Chair to submit through the SIG’s allocated slot.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Kubernetes v1.37 Release Cycle Kicks Off, 18th May 2026</strong></p>

<p>The <a href="https://github.com/kubernetes/sig-release/pull/3016/">v1.37 release schedule</a> has been posted, with the release cycle beginning May 18.</p>

<p>Applications for the Kubernetes v1.37 Release Team shadow program closed on May 15, with selected applicants announced on May 22.</p>

<p>Kubernetes Patches <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.33.md">v1.33.12</a>, <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md">v1.34.8</a>, <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.35.md">v1.35.5</a>, and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.36.1</a> have been released.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="139010-reduce-numbers-of-conversions-in-cel-evaluation-pipeline"><a href="https://github.com/kubernetes/kubernetes/pull/139010">139010: Reduce numbers of conversions in CEL evaluation pipeline</a></h3>

<p>Common Expression Language (CEL) admission evaluation pipeline has been optimized to avoid repeatedly converting the same API object during policy evaluation.  The CEL admission plugin backs ValidatingAdmissionPolicy and related features, and converts each <code class="language-plaintext highlighter-rouge">runtime.Object</code> into a CEL-evaluable representation before a policy expression can run against it. When a request is subject to multiple policies or webhooks, the same object was being converted again for every evaluation, and that conversion became a measurable CPU bottleneck on busy API servers. Under a 200 QPS load test with five ValidatingAdmissionPolicies, the change reduces API server CPU usage from roughly 1.10 cores to 0.93 cores, an approximately 15% reduction, while leaving light-policy workloads functionally unchanged.</p>

<p>The fix introduces a <code class="language-plaintext highlighter-rouge">LazyObject</code> abstraction wrapping <code class="language-plaintext highlighter-rouge">VersionedObject</code> and <code class="language-plaintext highlighter-rouge">VersionedOldObject</code> in <code class="language-plaintext highlighter-rouge">VersionedAttributes</code>. <code class="language-plaintext highlighter-rouge">LazyObject</code> caches the CEL <code class="language-plaintext highlighter-rouge">ref.Val</code> representation on first use and automatically clears it whenever the underlying object is mutated via <code class="language-plaintext highlighter-rouge">Set()</code>, so the conversion cost is paid at most once per object per request,  and not at all when CEL evaluation is skipped, such as for empty expression groups. Encapsulating the cache this way also resolves a class of desynchronization bugs where an object mutated during mutating admission could leave a stale CEL representation behind. The PR is scoped to SIG API Machinery, and is targeted at the v1.37 milestone.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/2258-node-log-query">KEP-2258: Node log query</a></p>

<p>This enhancement simplifies Kubernetes node troubleshooting by allowing cluster administrators to securely stream logs from control-plane and worker nodes through a kubelet API or <code class="language-plaintext highlighter-rouge">kubectl</code> plugin, eliminating the need to SSH into nodes or build custom log readers. In the past, debugging components such as the kubelet, kube-proxy, or API server often requires direct node access just to inspect logs, which can be cumbersome and operationally inefficient. This feature provides centralized access to logs from Linux nodes using <code class="language-plaintext highlighter-rouge">systemd/journald</code>, services writing to <code class="language-plaintext highlighter-rouge">/var/log/</code>, and supported Windows worker nodes logging to <code class="language-plaintext highlighter-rouge">C:\var\log</code> and Application logs. Since node logs may contain sensitive information, access would be restricted to cluster administrators. The KEP does not cover support for non-systemd Linux distributions, nodes with cluster connectivity or configuration issues, or services that do not log to standard locations like <code class="language-plaintext highlighter-rouge">/var/log/</code>.</p>

<p>KEP-2258 (Node Log Query) was introduced in Alpha in v1.27, moved to Beta in v1.30, and has now graduated to GA in v1.36.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Fixed a bug in <a href="https://github.com/kubernetes/kubernetes/pull/138951">ImageLocality scoring</a> where image volumes could receive a higher score than equivalent regular container images.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/138939">fixed a panic in kubeadm PKI key loading</a> when the private key type and public key type mismatch.</li>
  <li>Fixed a regression where kubelet did not clear <a href="https://github.com/kubernetes/kubernetes/pull/138903">stale cgroup v2 memory.min and memory.low values</a> when the MemoryQoS feature gate was disabled after being previously enabled.</li>
  <li>kubelet: <a href="https://github.com/kubernetes/kubernetes/pull/138854">the eviction manager’s monitoring goroutine</a> now exits promptly when the kubelet’s context is cancelled, fixing a goroutine leak on shutdown.</li>
  <li>Fixed a theoretical issue where <a href="https://github.com/kubernetes/kubernetes/pull/138792/changes">nodes might have been denied access</a> to synthesized ResourceClaims for pods using extended resources (e.g. nvidia.com/gpu), causing containers to get stuck in ContainerCreating. Not observed in practice.</li>
  <li>Add metric <a href="https://github.com/kubernetes/kubernetes/pull/138767"><code class="language-plaintext highlighter-rouge">apiserver_watch_cache_initialization_duration_seconds</code> </a>recording the duration of the most recent watch cache initialization, labeled by group and resource.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138710/changes">The scheduler now avoids redundant preemption attempts during PodGroup scheduling</a> when terminating victim pods are already present on the nominated nodes.</li>
  <li>kube-controller-manager and kube-scheduler now both expose <a href="https://github.com/kubernetes/kubernetes/pull/138542"><code class="language-plaintext highlighter-rouge">dynamic_resource_allocation_resourceclaim_creates_total</code></a> as metric for number of ResourceClaims created, replacing differently names metrics in each component.</li>
  <li>Added <a href="https://github.com/kubernetes/kubernetes/pull/138389"><code class="language-plaintext highlighter-rouge">net.ipv4.tcp_slow_start_after_idle</code> and <code class="language-plaintext highlighter-rouge">net.ipv4.tcp_notsent_lowat</code></a> to the allowed safe sysctls list.</li>
  <li>API Go types switched the json tag for inlined TypeMeta fields from <a href="https://github.com/kubernetes/kubernetes/pull/138260"><code class="language-plaintext highlighter-rouge">",inline"</code> to simply <code class="language-plaintext highlighter-rouge">""</code></a>.</li>
  <li>Removed an <a href="https://github.com/kubernetes/kubernetes/pull/137582">edge case that could allow malformed object deletion</a> to bypass admission and graceful deletion of well-formed objects.</li>
  <li>Changed the <code class="language-plaintext highlighter-rouge">PatchPodStatus</code> API in the scheduler framework to accept a [slice of Pod conditions (<code class="language-plaintext highlighter-rouge">[]*v1.PodCondition</code>)(https://github.com/kubernetes/kubernetes/pull/135160) instead of a single condition (<code class="language-plaintext highlighter-rouge">*v1.PodCondition</code>). This allows scheduler plugins to update multiple Pod conditions in a single API call, preventing newer calls from overwriting older ones when multiple conditions need to be updated concurrently.</li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138746">etcd to v3.6.11</a></li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://etcd.io/blog/2026/etcd-370-beta/">etcd v3.7.0-beta.0</a> includes RangeStream RPC.  Please test!</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>Rey Lejano: Huge thanks to @Seokho Son for supporting the Persian localization team!</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending May 10, 2026</title><link href="https://lwkd.info/2026/20260514" rel="alternate" type="text/html" title="Week Ending May 10, 2026" /><published>2026-05-14T15:00:00+00:00</published><updated>2026-05-14T15:00:00+00:00</updated><id>https://lwkd.info/2026/2026-05-10-update</id><content type="html" xml:base="https://lwkd.info/2026/20260514"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p><a href="https://groups.google.com/a/kubernetes.io/g/dev/c/NQCmTWNnXX4">SIG Autoscaling</a> has nominated Jack Francis as a new SIG Chair as Guy Templeton steps down from the role after years of leadership and contributions to the SIG. Thank you, Guy Templeton, for everything you’ve done for SIG Autoscaling. The proposal also names Omer Aplatony as Tech Lead and adds dedicated Node Autoscaling and Workload Autoscaling Tech Lead roles.</p>

<p>Next Tuesday is the monthly <a href="https://www.kubernetes.dev/docs/orientation/">New Contributor Orientation</a>. As part of a new SIG-focused format for NCOs, next week’s AMER session will be focused on SIG Release, hosted by @Kat Cosgrove. Join the <a href="https://www.kubernetes.dev/resources/calendar/">AMER session</a> to learn how SIG Release helps deliver Kubernetes releases and how you can get involved.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline: 1.37 Release Team Shadow Program, May 15th</strong></p>

<p>Applications for the Kubernetes v1.37 <a href="https://forms.gle/6zQLR5mcd2WKixam7">Release Team shadow program</a> closes on <strong>May 15</strong>, with selected applicants announced on May 22. If you want to learn how Kubernetes release team work and contribute to the release process, this is a great opportunity to get involved. Learn more in the <a href="https://git.k8s.io/sig-release/release-team/README.md">Release Team Overview</a>, <a href="https://git.k8s.io/sig-release/release-team/shadows.md">Shadows Guide</a>, <a href="https://git.k8s.io/sig-release/release-team/role-handbooks">Role Handbooks</a>, and <a href="https://git.k8s.io/sig-release/release-team/release-team-selection.md">Selection Criteria</a>.</p>

<p>Kubernetes Patches <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.33.md">v1.33.12</a>, <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md">v1.34.8</a>, <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.35.md">v1.35.5</a>, and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.36.1</a> have been released.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="138872-feat-add-declarative-validation-test-coverage-guardrail"><a href="https://github.com/kubernetes/kubernetes/pull/138872">138872: feat: Add declarative-validation test coverage guardrail</a></h3>

<p><a href="https://github.com/yongruilin">yongruilin</a> has landed an in-process <strong>coverage gate for declarative-validation rules</strong> that fails CI when a <code class="language-plaintext highlighter-rouge">+k8s:</code> DV tag has no test exercising it. The PR spans SIG API Machinery, SIG Scheduling, and SIG Testing, and is targeted at the v1.37 milestone. Declarative validation moves API field validation rules out of hand-written Go code and into struct-tag annotations on the API types, generated into validators by <code class="language-plaintext highlighter-rouge">validation-gen</code>. The benefit is enormous; co-located rules, version-consistent validation, and a clear audit surface but until now there was no way to prove that every declared rule was actually being exercised by tests. A contributor could add a <code class="language-plaintext highlighter-rouge">+k8s:maxBytes=64</code> tag to a field, regenerate validators, and merge a green PR even if no test ever fed that field a value over 64 bytes. This guardrail closes that gap.</p>

<h3 id="138801-conditional-authz-05-rename-all-usages-of-the-authorizerauthorizer-interface-to-authorizerunconditionalauthorizer"><a href="https://github.com/kubernetes/kubernetes/pull/138801">138801: Conditional Authz [0/5]: Rename all usages of the <code class="language-plaintext highlighter-rouge">authorizer.Authorizer</code> interface to <code class="language-plaintext highlighter-rouge">authorizer.UnconditionalAuthorizer</code></a></h3>

<p><a href="https://github.com/luxas">luxas</a> has landed the kickoff of a five-part series introducing <strong>conditional authorization</strong> to Kubernetes by renaming every existing usage of <code class="language-plaintext highlighter-rouge">authorizer.Authorizer</code> to <code class="language-plaintext highlighter-rouge">authorizer.UnconditionalAuthorizer</code>, and renaming <code class="language-plaintext highlighter-rouge">initializer.WantsAuthorizer</code> to <code class="language-plaintext highlighter-rouge">initializer.WantsUnconditionalAuthorizer</code>. The PR spans SIG Auth, SIG API Machinery, SIG Node, SIG Scheduling, and WG Device Management, and is targeted at the v1.37 milestone. Today, the <code class="language-plaintext highlighter-rouge">authorizer.Authorizer</code> interface is the only authorization contract in tree, and any function that takes one can issue arbitrary authorization decisions even if it only ever needs to ask simple “is this principal allowed to do X” questions. The refactor splits this into two contracts: a small <code class="language-plaintext highlighter-rouge">UnconditionalAuthorizer</code> that callers ask for when they only need traditional unconditional decisions, and a fuller <code class="language-plaintext highlighter-rouge">Authorizer</code> interface (extended in <a href="https://github.com/kubernetes/kubernetes/pull/137204">#137204</a>) that callers must explicitly opt into when they need to evaluate conditions on the request. This narrows the API surface receivers can use and makes it visible in the type system which call sites can take conditional logic.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/127-user-namespaces/README.md">KEP-127: Support User Namespaces</a></p>

<p>The Kubernetes User Namespaces KEP introduces support for Linux user namespaces to improve pod security and isolation by allowing processes inside containers to run with different user and group IDs than on the host system. This means a process can run as <code class="language-plaintext highlighter-rouge">root</code> inside the container while remaining an unprivileged user on the host, significantly reducing the impact of container breakout vulnerabilities. The feature strengthens defense-in-depth, improves multi-tenant security, and helps mitigate several known and future container escape vulnerabilities by limiting host-level privileges even if a workload escapes the container boundary.</p>

<p>User Namespaces became GA in 1.36.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li>Use stable curl download for <a href="https://github.com/kubernetes/kubernetes/pull/138879">windows busybox testing image</a></li>
  <li>Switch <a href="https://github.com/kubernetes/kubernetes/pull/138874"><code class="language-plaintext highlighter-rouge">StorageVersionMigration</code></a> to use merge patch over SSA</li>
  <li>Add retrying for <a href="https://github.com/kubernetes/kubernetes/pull/138855">Bind API calls</a></li>
  <li>kubeadm: kubeadm join now returns a clear error message when the <a href="https://github.com/kubernetes/kubernetes/pull/138853">TLS bootstrap kubeconfig</a> has a current-context that does not appear in the contexts list, instead of panicking with a nil pointer dereference.</li>
  <li>kubeadm: when fetching cluster-info over <a href="https://github.com/kubernetes/kubernetes/pull/138852">HTTPS during discovery</a>, the HTTP response status code is now checked, so a non-200 response produces a clear error instead of a confusing kubeconfig parse failure.</li>
  <li>Functions and structs that take in <a href="https://github.com/kubernetes/kubernetes/pull/138801"><code class="language-plaintext highlighter-rouge">authorizer.Authorizer</code></a> might now choose to accept only a smaller interface, <code class="language-plaintext highlighter-rouge">authorizer.UnconditionalAuthorizer</code>, in case only the receiver only needs to perform unconditional authorization requests and wants to signal this in the code for clarity. Any authorizer implementation must still implement the full <code class="language-plaintext highlighter-rouge">authorizer.Authorizer interface</code>.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138757">Workload-aware preemption</a> now preempts victims so that as many as possible of the preemptor pods can be scheduled.</li>
  <li>Fix the inconsistency between opportunistic batching and PodGroups that made the batching hints always infeasible during <a href="https://github.com/kubernetes/kubernetes/pull/138754/changes">PodGroup scheduling cycle</a>.</li>
  <li>Fix nil pointer dereference in <a href="https://github.com/kubernetes/kubernetes/pull/138727">Windows memory eviction threshold notifier</a> when <code class="language-plaintext highlighter-rouge">GetPerformanceInfo()</code> fails.</li>
  <li>Added an alpha feature gate, <code class="language-plaintext highlighter-rouge">[ConsistentListFromCacheSkipTimeoutFallback</code>](https://github.com/kubernetes/kubernetes/pull/138701/changes) .When enabled, kube-apiserver returns HTTP 429 for consistent LIST requests that cannot be served from watch cache within the timeout window, instead of falling back to storage.</li>
  <li>Ensure <a href="https://github.com/kubernetes/kubernetes/pull/138698/changes">stale cache does not impact the marking of nodes as unhealthy</a>by checking with a live get.</li>
  <li>kubectl now sets its path in the <a href="https://github.com/kubernetes/kubernetes/pull/138694"><code class="language-plaintext highlighter-rouge">KUBECTL_PATH</code> environment variable</a> when executing a plugin.</li>
  <li>kubeadm: skip <a href="https://github.com/kubernetes/kubernetes/pull/138692">LocalAPIEndpoint defaulting on ‘kubeadm join’</a> for worker nodes.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138655">kubelet no longer generates an event once per second</a> for every image volume in a pod.</li>
  <li>client-go will <a href="https://github.com/kubernetes/kubernetes/pull/138271">request <code class="language-plaintext highlighter-rouge">v2</code> for aggregated discovery and not fall back to <code class="language-plaintext highlighter-rouge">v2beta1</code></a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138294">HPA controller</a> now reconciles newly created and spec-changed HPAs immediately instead of waiting for the full resync period (default 15s).</li>
  <li>kubelet: <a href="https://github.com/kubernetes/kubernetes/pull/138462">enforce ephemeral-storage limits</a> on restartable init containers.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138482">Metrics are now decremented for pods removed from the active or backoff queues</a> before scheduling.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138590">kubelet no longer fails to start on ZFS</a> due to a missing cadvisor plugin.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137543"><code class="language-plaintext highlighter-rouge">kubectl drain --disable-eviction --dry-run=server</code></a> no longer hangs indefinitely.</li>
  <li>StatefulSet with <a href="https://github.com/kubernetes/kubernetes/pull/136833"><code class="language-plaintext highlighter-rouge">OnDelete</code> update strategy now correctly updates <code class="language-plaintext highlighter-rouge">Status.CurrentRevision</code></a> after all pods are recreated with the new revision.</li>
</ul>

<h2 id="promotions">Promotions</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136189">Volume Metrics to beta</a></li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138864">GO to 1.26.3</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138786">grpc to v1.81.0, grpc-gateway/v2 to v2.29.0, containerd/api to v1.11.0, ttrpc to v1.2.8, genproto googleapis updated</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138786">golang.org/x/mod to v0.35.0, oauth2 to v0.36.0, time to v0.15.0, tools to v0.44.0</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138747">etcd sdk to  v3.6.11</a></li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.13.2">cluster-api v1.13.2</a>: fixes KCP in-place update with InfraMachine immutability webhooks, cleans up etcd members after machine remediation, bumps corefile-migration to v1.0.32; also <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.12.8">v1.12.8</a>, <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.11.11">v1.11.11</a></li>
  <li><a href="https://github.com/kubernetes/cloud-provider-aws/releases/tag/v1.36.0">cloud-provider-aws v1.36.0</a>: fixes ELB target deregistration ordering, adds nil check for instance state, adds AWS API metrics middleware for status codes and error tracking, adds explicit HTTP request timeouts to all AWS SDK clients, fixes security group leak on Service update; also <a href="https://github.com/kubernetes/cloud-provider-aws/releases/tag/v1.35.2">v1.35.2</a>, <a href="https://github.com/kubernetes/cloud-provider-aws/releases/tag/v1.34.3">v1.34.3</a>, <a href="https://github.com/kubernetes/cloud-provider-aws/releases/tag/v1.33.4">v1.33.4</a>, <a href="https://github.com/kubernetes/cloud-provider-aws/releases/tag/v1.32.8">v1.32.8</a></li>
  <li><a href="https://github.com/kubernetes/cloud-provider-openstack/releases/tag/openstack-cloud-controller-manager-2.36.0">openstack-cloud-controller-manager v2.36.0</a>: new Helm chart release; also <a href="https://github.com/kubernetes/cloud-provider-openstack/releases/tag/openstack-cinder-csi-2.36.0">openstack-cinder-csi v2.36.0</a>, <a href="https://github.com/kubernetes/cloud-provider-openstack/releases/tag/openstack-manila-csi-2.36.0">openstack-manila-csi v2.36.0</a></li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>Seokho Son: Shoutout to @xirehat, @Moh0ps, @mamrezb, and @Behdin Talebi for initiating and driving the Persian (Farsi) localization of k8s.io, the first Right-To-Left language supported on the site. Thanks also to @LMKTFY for his support, and to SIG Docs leads @Natali, @Rey Lejano, and @Divya for their official backing. The Farsi localization site is live at kubernetes.io/fa, and there is still plenty of room to contribute — join #kubernetes-docs-fa to get involved.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending May 3, 2026</title><link href="https://lwkd.info/2026/20260507" rel="alternate" type="text/html" title="Week Ending May 3, 2026" /><published>2026-05-07T17:27:07+00:00</published><updated>2026-05-07T17:27:07+00:00</updated><id>https://lwkd.info/2026/2026-05-03-update</id><content type="html" xml:base="https://lwkd.info/2026/20260507"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/N5vStXDDqPIx">Agent Sandbox subproject</a> has published a Kubernetes blog post, Running Agents on Kubernetes with Agent Sandbox, and progressed to v0.4.3 since v0.1.1. Updates include default network isolation, persistent storage support, Python SDK improvements, a new Go client, and controller stability enhancements.</p>

<p>The Kubernetes v1.37 Release Team <a href="https://docs.google.com/forms/d/e/1FAIpQLSc8P_QueppZyw8pbt8h2D7-PcjCFFfYVWTtP3-aVyhB8A8b1Q/viewform">shadow application</a>  is open until May 15, 2026, with results announced on May 22. The release cycle is expected to run from May 18 to August 26. Learn more in the <a href="https://git.k8s.io/sig-release/release-team/README.md">Release Team Overview</a>, <a href="https://git.k8s.io/sig-release/release-team/shadows.md">Shadows Guide</a>, <a href="https://git.k8s.io/sig-release/release-team/role-handbooks">Role Handbooks</a>, and <a href="https://git.k8s.io/sig-release/release-team/release-team-selection.md">Selection Criteria</a>. Updates will be shared in the <a href="https://kubernetes.slack.com/archives/C2C40FMNF">#sig-release</a> Slack channel and kubernetes/sig-release repository.</p>

<p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/program/cfp/">KubeCon North America CFP</a> closes on May 31. Submit your talks before the deadline.</p>

<p>KubeCon North America <a href="https://sessionize.com/project-benefits-kubecon-na-2026/">Maintainer Track CFP</a> is also open. Submit your sessions by July 12.</p>

<h2 id="release-schedule">Release Schedule</h2>

<p><strong>Next Deadline:  Release Cycle Starts, soon</strong></p>

<p>Cherry-picks for the next patch releases are due this Friday, May 8.</p>

<h2 id="featured-prs">Featured PRs</h2>

<h3 id="138629-featvalidation-gen-add-eachval--maxbytes-validation-for-resource-string-values"><a href="https://github.com/kubernetes/kubernetes/pull/138629">138629: feat(validation-gen): add eachVal + maxBytes validation for resource string values</a></h3>

<p><a href="https://github.com/aaron-prindle">aaron-prindle</a> has migrated handwritten per-item byte-length validation for <code class="language-plaintext highlighter-rouge">ResourceSlice.spec.devices[*].attributes[*].strings[*]</code> to declarative validation as part of <a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen">KEP-5073: Declarative Validation with validation-gen</a>. The PR was reviewed and approved by <a href="https://github.com/thockin">thockin</a> and contributors from SIG API Machinery and WG Device Management, and is the first use of the <code class="language-plaintext highlighter-rouge">+k8s:eachVal</code> tag in the kubernetes/kubernetes API surface.</p>

<p>Declarative validation moves API field validation from hand-written Go code into machine-generated code driven by struct-tag annotations on the API types themselves. The benefit for contributors is that validation rules become co-located with the field they validate, far easier to audit, and consistent across all API versions. The benefit for users is reduced surface area for subtle validation drift between API versions and improved API server performance over time.</p>

<p>This PR adds the <code class="language-plaintext highlighter-rouge">+k8s:alpha(since: "1.37")=+k8s:eachVal=+k8s:maxBytes=64</code> tag chain to the <code class="language-plaintext highlighter-rouge">v1</code>, <code class="language-plaintext highlighter-rouge">v1beta1</code>, and <code class="language-plaintext highlighter-rouge">v1beta2</code> resource API types, regenerates the declarative validation code, and adds equivalence coverage tests verifying the byte-count semantics on both create and update boundary cases. Notably, the PR uses <code class="language-plaintext highlighter-rouge">+k8s:maxBytes</code> rather than <code class="language-plaintext highlighter-rouge">+k8s:maxLength</code> because the existing handwritten validation enforces a byte limit via Go’s <code class="language-plaintext highlighter-rouge">len(string)</code> and <code class="language-plaintext highlighter-rouge">field.TooLong</code>, so the tests use the two-byte UTF-8 character <code class="language-plaintext highlighter-rouge">é</code> to confirm byte-count behaviour. The handwritten validation remains authoritative; this migration begins the soak period required to graduate the <code class="language-plaintext highlighter-rouge">+k8s:eachVal</code> tag to <code class="language-plaintext highlighter-rouge">StabilityLevelBeta</code>.</p>

<h2 id="kep-of-the-week">KEP of the Week</h2>

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/5710-workload-aware-preemption/README.md">KEP-5710: Workload-aware preemption</a></p>

<p>This KEP proposes enhancing the Kubernetes scheduler with workload-aware preemption, shifting from a pod-centric to a workload-centric approach. Building on KEP-4671’s Workload and PodGroup APIs, it introduces concepts like pod group priority and defining preemption units at the workload level, starting with a simple implementation based on existing pod preemption. The motivation stems from tightly coupled workloads such as AI training and multihost inference that depend on continuous coordination across multiple pods, where disruption of even a single pod halts overall progress. Current preemption mechanisms fail to account for this, especially in resource constrained environments where prioritization and efficient hardware utilization are critical. By standardizing workload-aware preemption within core Kubernetes, this proposal aims to better support such workloads, improve resource utilization, and enable deeper integration with other features like autoscaling and disruption management.</p>

<p>This KEP is currently in Alpha stage for Kubernetes v1.36.</p>

<h2 id="other-merges">Other Merges</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138571">kube-proxy does not perform full-sync operations</a> when operating in large cluster mode (more than 1000 endpoints)</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/138587">kubelet failure starting on ZFS</a> due to missing cadvisor plugin</li>
  <li>kubeadm: during <a href="https://github.com/kubernetes/kubernetes/pull/138449"><code class="language-plaintext highlighter-rouge">kubeadm init</code></a>, if the default <code class="language-plaintext highlighter-rouge">admin.conf</code> and <code class="language-plaintext highlighter-rouge">super-admin.conf</code> paths are used, load the files but construct in-memory kubeconfigs that point to the <code class="language-plaintext highlighter-rouge">InitConfiguration.localAPIEndpoint</code> instead of the <code class="language-plaintext highlighter-rouge">ClusterConfiguration.controlPlaneEndpoint</code>, resolving issues with delayed load balancers provisioned only after the first kube-apiserver instance starts</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138205">Introduce Deferred Gen concept</a> to the Validation-gen framework</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136709">Improved CEL error messages in Dynamic Resource Allocation</a> to provide guidance when accessing non-existent device attributes, with links to documentation on handling optional fields using <code class="language-plaintext highlighter-rouge">orValue()</code> and <code class="language-plaintext highlighter-rouge">has()</code></li>
</ul>

<h2 id="promotions">Promotions</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138703">Several declarative validation tags to beta and GA</a></li>
</ul>

<h2 id="version-updates">Version Updates</h2>

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138613">cri-tools to v1.36.0</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138536">CoreDNS to v1.14.3</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138393">etcd SDK to v3.6.10</a></li>
</ul>

<h2 id="subprojects-and-dependency-updates">Subprojects and Dependency Updates</h2>

<ul>
  <li>etcd released <a href="https://etcd.io/blog/2026/may-patch-release/">updates 3.6.11, 3.5.30, and 3.4.44</a>, including a security fix for etcd auth, and allowing adding members with one member down</li>
</ul>

<h2 id="shoutouts">Shoutouts</h2>

<ul>
  <li>Sayan Chowdhury: As I complete the final off-boarding steps for the v1.36 release, I would like to thank the whole team that was part of this journey with me to handle the Docs for the v1.36 release – I could not have asked for a more knowledgeable and brilliant team. We handled close to 70 KEPs this cycle and it was no easy feat. The team relentlessly made sure that we closed each deadline without any trouble and kept the release timeline on track – from making sure the dev-1.36 branch is synced, to the utmost care and eye for detail in the release notes PR creation and review. The team also made sure that everyone works collaboratively and no one ever falls behind and helping each other during followups and reminders phases.
I’m absolutely happy to have been part of this team and to work among such amazing team members – a big hurrah to the v1.36 release, and thank you again @anshuman @Émile Savard @kernel-kun @Saurabh.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry></feed>