<?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-06-02T00:52:58+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 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><entry><title type="html">Week Ending April 26, 2026</title><link href="https://lwkd.info/2026/20260430" rel="alternate" type="text/html" title="Week Ending April 26, 2026" /><published>2026-04-30T18:00:00+00:00</published><updated>2026-04-30T18:00:00+00:00</updated><id>https://lwkd.info/2026/2026-04-26-update</id><content type="html" xml:base="https://lwkd.info/2026/20260430"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The AI Conformance subproject has <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/bOUBzX4O7HA">moved to the SIG Architecture mailing list</a>; contributors should join <a href="https://groups.google.com/a/kubernetes.io/g/sig-architecture">sig-architecture@kubernetes.io</a> for future AI Conformance meeting invites and announcements.</p>

<p>There is an <a href="https://groups.google.com/a/kubernetes.io/g/steering/c/lyKZlNtt93U">active discussion on the AI usage policy’s interaction with GitHub Copilot and CLA mechanics</a>; contributors using Copilot-generated commits should review the thread before submitting PRs.</p>

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

<p>Kubernetes <a href="https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/">v1.36</a>: ハル (Haru) has been released last week along with Kubernetes <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.33.11</a>, <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md">v1.34.7</a>, and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.35.md">v1.35.4</a> patches.</p>

<p>Kubernetes <a href="https://kubernetes.io/releases/patch-releases/#1-33">1.33</a> entered maintenance mode on Apr 28, 2026.</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/4781-kublet-restart-pod-status/README.md">KEP-4781: Restarting kubelet does not change pod status</a></p>

<p>This KEP proposes improving how kubelet handles Pod readiness during restarts by preserving the existing Started and Ready states instead of resetting them to False. Currently, when kubelet restarts, it loses prior probe results and marks all pods as not ready, even if they were functioning correctly. This can cause unnecessary service disruptions, incorrect health signals, and trigger avoidable alerts or load balancing changes. The goal is to ensure pod status more accurately reflects real runtime conditions, improving reliability and availability during kubelet restarts.</p>

<p>KEP-4781 is currently in the Alpha stage, with the feature implemented behind the <code class="language-plaintext highlighter-rouge">ChangeContainerStatusOnKubeletRestart</code> feature gate. It is not yet scheduled for an active release and is expected to progress in a future release cycle once further validation and iteration are completed.</p>

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

<ul>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/138587">kubelet failure starting on ZFS</a> due to missing cadvisor plugin.</li>
  <li>Fix <a href="https://github.com/kubernetes/kubernetes/pull/138550">regression in kubectl resource printing</a> on bigger data sets (100+ rows).</li>
  <li>Fixed a bug where <a href="https://github.com/kubernetes/kubernetes/pull/138408">Pod <code class="language-plaintext highlighter-rouge">.status.resourceClaimStatuses</code> could flap</a> between partial lists of claims when multiple claims were used in the pod.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/138403">etcd cluster status checks now use a quorum approach</a> instead of requiring all members to be healthy, so the check won’t fail if there are sufficient healthy voting members.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/138390">fix MemberPromote to skip the etcd promote API call</a> when the member is already a voting member, avoiding unnecessary retries and timeout.</li>
  <li>kubeadm: <a href="https://github.com/kubernetes/kubernetes/pull/138250">preflight port checks now bind to the configured component address</a> (via <code class="language-plaintext highlighter-rouge">localAPIEndpoint.address</code> or <code class="language-plaintext highlighter-rouge">--bind-address</code> extraArgs) instead of all interfaces, for kube-apiserver, kube-scheduler, kube-controller-manager, and etcd.</li>
  <li>HorizontalPodAutoscaler resources now <a href="https://github.com/kubernetes/kubernetes/pull/138228">generate <code class="language-plaintext highlighter-rouge">metadata.generation</code> and <code class="language-plaintext highlighter-rouge">status.observedGeneration</code> fields</a>.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138214">Improved error reporting when invoking <code class="language-plaintext highlighter-rouge">kubectl exec</code></a>.</li>
  <li>kube-apiserver now <a href="https://github.com/kubernetes/kubernetes/pull/138102">validates the <code class="language-plaintext highlighter-rouge">--advertise-address</code> IP</a> when using <code class="language-plaintext highlighter-rouge">--endpoint-reconciler-type</code> <code class="language-plaintext highlighter-rouge">master-count</code> or <code class="language-plaintext highlighter-rouge">lease</code>, ensuring the IP can be persisted to an <code class="language-plaintext highlighter-rouge">Endpoints</code> API object.</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/138098">duplicated mount arguments in log string output</a> from <code class="language-plaintext highlighter-rouge">MakeMountArgsSensitiveWithMountFlags</code>.</li>
  <li>kubeadm: added the <a href="https://github.com/kubernetes/kubernetes/pull/138090"><code class="language-plaintext highlighter-rouge">kubeproxydaemonset</code> patch target</a> to allow patching the kube-proxy DaemonSet during <code class="language-plaintext highlighter-rouge">kubeadm init</code> and <code class="language-plaintext highlighter-rouge">kubeadm upgrade</code>, consistent with the existing <code class="language-plaintext highlighter-rouge">corednsdeployment</code> patch target.</li>
  <li>Kubelet now <a href="https://github.com/kubernetes/kubernetes/pull/138088">enforces explicit HTTP method restrictions for logs-related endpoints</a>: read-only server endpoints reject non-GET methods with 405, and NodeLogQuery allows only GET and POST.</li>
  <li>Deprecated <a href="https://github.com/kubernetes/kubernetes/pull/138070"><code class="language-plaintext highlighter-rouge">MultiLock</code>, <code class="language-plaintext highlighter-rouge">UnknownLeader</code>, and <code class="language-plaintext highlighter-rouge">ConcatRawRecord</code></a> in the client-go leader election <code class="language-plaintext highlighter-rouge">resourcelock</code> package.</li>
  <li>The eviction API now <a href="https://github.com/kubernetes/kubernetes/pull/138003">includes structured <code class="language-plaintext highlighter-rouge">CauseType</code> values in PodDisruptionBudget-related <code class="language-plaintext highlighter-rouge">Forbidden</code> errors</a>, so clients can distinguish PDB invalid-state errors without string-matching on the message.</li>
  <li><code class="language-plaintext highlighter-rouge">kubectl get crd</code> now <a href="https://github.com/kubernetes/kubernetes/pull/131599">displays additional columns — GROUP, SCOPE, VERSIONS, and CREATED AT</a> — providing at-a-glance visibility into each CRD’s API group, scope, served versions, and creation timestamp.</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/135964"><code class="language-plaintext highlighter-rouge">kubectl get storageclass</code> to show only the effective default StorageClass as <code class="language-plaintext highlighter-rouge">(default)</code></a> when multiple StorageClasses have the default annotation.</li>
  <li>Image volume validation now <a href="https://github.com/kubernetes/kubernetes/pull/135989">rejects empty <code class="language-plaintext highlighter-rouge">image.reference</code> fields in Pod templates</a> across Deployment, StatefulSet, DaemonSet, Job, and similar resources.</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/136920">CronJob controller failing to adopt existing Jobs</a> due to incorrectly using the empty namespace from the JobTemplate.</li>
  <li>Fixed a v1.35 regression where <a href="https://github.com/kubernetes/kubernetes/pull/137666">StatefulSets with Parallel pod management incorrectly counted unavailable pods from older revisions against the <code class="language-plaintext highlighter-rouge">maxUnavailable</code> budget</a>.</li>
  <li>Added three Pod cluster event subtypes to the scheduler framework — <a href="https://github.com/kubernetes/kubernetes/pull/135905"><code class="language-plaintext highlighter-rouge">AssignedPod</code>, <code class="language-plaintext highlighter-rouge">UnscheduledPod</code>, and <code class="language-plaintext highlighter-rouge">TargetPod</code></a> — allowing plugins to register only for the specific pod events they need, improving performance.</li>
  <li>Removed the GA feature gate <a href="https://github.com/kubernetes/kubernetes/pull/135336"><code class="language-plaintext highlighter-rouge">AnyVolumeDataSource</code></a>, locked and enabled since v1.33.</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/138000">stale remote HNS endpoint cleanup on Windows</a> when a pod IP is reused across nodes in L2Bridge networks, preventing DNS timeouts from traffic being routed to the wrong node.</li>
  <li>Removed the <a href="https://github.com/kubernetes/kubernetes/pull/138002"><code class="language-plaintext highlighter-rouge">--concurrent-service-syncs</code> kube-controller-manager flag</a>, which has been a no-op since v1.31.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138001">Removed <code class="language-plaintext highlighter-rouge">KubeletMinVersion</code> gate from the DRA multiple ResourceClaims e2e test</a>, as the feature is now sufficiently available.</li>
</ul>

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

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138561">golang.org/x/net</a> to v0.53.0</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138393">etcd SDK</a> to v3.6.10, and <a href="https://github.com/kubernetes/kubernetes/pull/138392">etcd image</a> also to v3.6.10</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.1">cluster-api v1.13.1</a>: expands Kubernetes support to v1.36, includes dependency bumps, adds testing for Kubernetes v1.36, and minor documentation updates</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0">cluster-api-provider-vsphere v1.16.0</a>: introduces v1beta2 API, deprecates v1beta1, removes v1alpha3/v1alpha4, enables controller rate limiting and priority queues, improves cache and scale performance, includes multiple breaking changes</li>
  <li><a href="https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v4.14.0">kubebuilder v4.14.0</a>: updates scaffold upgrade workflows, enhances Helm plugin with RBAC restructuring and multi-namespace support, adds multiple controllers per GVK, improves security in CI workflows</li>
  <li><a href="https://github.com/kubernetes-sigs/kubespray/releases/tag/v2.31.0">kubespray v2.31.0</a>: sets Kubernetes v1.35 as default, removes cgroup v1 support by default, drops ingress-nginx and Kubernetes Dashboard, improves validation and upgrades core components</li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.11.3">prometheus v3.11.3</a>: fixes multiple security issues including OAuth secret exposure, remote-read vulnerabilities, and XSS in the UI; also <a href="https://github.com/prometheus/prometheus/releases/tag/v3.5.3">v3.5.3</a></li>
  <li><a href="https://github.com/containerd/containerd/releases/tag/api/v1.11.0">containerd api v1.11.0</a>: adds transfer types for filesystem copy, introduces shim bootstrap protocol, enhances sandbox API</li>
  <li><a href="https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-chart-9.57.0">cluster-autoscaler-chart v9.57.0</a>: updates Helm chart for scaling Kubernetes worker nodes</li>
</ul>

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

<ul>
  <li>Prajyot Parab: Shoutout to @adil, @Keisuke Ishigami, @Tatiana, @Aman Shrivastava, @Dhanisha Phadate, and @Graziano Casto (v1.36 Release Signal Team) for their outstanding work throughout the cycle. From tracking ~60 flaky and failing tests to completing bug triage and meeting every Go/No-Go deadline, truly impressive effort. It was great to see both experienced members and first-time shadows collaborate so effectively and deliver their best—an excellent example of teamwork and dedication.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending April 19, 2026</title><link href="https://lwkd.info/2026/20260423" rel="alternate" type="text/html" title="Week Ending April 19, 2026" /><published>2026-04-23T13:00:00+00:00</published><updated>2026-04-23T13:00:00+00:00</updated><id>https://lwkd.info/2026/2026-04-19-update</id><content type="html" xml:base="https://lwkd.info/2026/20260423"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>Kubernetes 1.36 has been released, with features including fine-grained kubelet API authorization reaching GA, MutatingAdmissionPolicy graduating to stable for declarative request mutation, and new Workload Aware Scheduling features enabling group-based (PodGroup) scheduling; more details are available in the <a href="https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/">official release blog</a>.</p>

<p><a href="https://groups.google.com/a/kubernetes.io/g/dev/c/oR9k24KWHVM">Kernel Module Management (KMM) operator v2.6.0</a> has been released with support for image rebuild triggers, host kernel module mounts, glob patterns for file signing, and hardened container security contexts.</p>

<p>SIG etcd has <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/gvwLzCBx-hA">nominated Josh Berkus (@jberkus) for a new leadership role as a co-chair</a>; lazy consensus is open on the dev mailing list.</p>

<p>The Kubernetes project’s <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/gvwLzCBx-hA">new GitHub Actions security policy</a> is now enforced at the enterprise level, so workflows using mutable action refs like tags, branches, or latest will fail and maintainers need to pin actions to full 40-character commit SHAs.</p>

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

<p>Kubernetes <a href="https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release">v1.36.0</a> has been released 🎉</p>

<p>Kubernetes Patches for <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.33.11</a>, <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md">v1.34.7</a>, and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.35.md">v1.35.4</a> have been built and pushed using Golang version 1.25.9.</p>

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

<p><a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/5538-csi-sa-tokens-secrets-field/README.md">KEP-5538: CSI driver opt-in for service account tokens via secrets field</a></p>

<p>This KEP proposes an opt-in mechanism for CSI drivers to receive service account tokens through the dedicated secrets field in NodePublishVolumeRequest instead of the volume_context field. Currently, when TokenRequests is enabled in the CSIDriver spec, kubelet generates service account tokens and passes them via volume_context, which is intended for non-sensitive metadata like pod name and namespace. This design has led to security issues, including CVE-2023-2878 and CVE-2024-3744, where tokens were exposed in logs because tools like protosanitizer do not treat volume_context as sensitive data. As a result, individual CSI drivers have had to implement inconsistent and error-prone workarounds for sanitization. This proposal addresses the issue by allowing drivers to explicitly opt into receiving tokens via the secrets field, which is designed for sensitive information and ensures proper handling and sanitization, while keeping the default behavior unchanged for backward compatibility.</p>

<p>In Kubernetes v1.35, the feature is in Beta with the <code class="language-plaintext highlighter-rouge">CSIServiceAccountTokenSecrets</code> feature gate enabled by default, introducing the opt-in field in CSIDriver and ensuring backward-compatible behavior.</p>

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

<ul>
  <li>Fixed running of <a href="https://github.com/kubernetes/kubernetes/pull/138318">DRA e2e tests</a> in air-gaped clusters and with test images in private registries.</li>
  <li>Fixed <a href="https://github.com/kubernetes/kubernetes/pull/138324">scheduler bug where replacing a Pod with the same name</a> during a failed scheduling attempt could leave stale in-flight queue state and unbounded growth of in-flight event tracking.</li>
</ul>

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

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138346">go.opentelemetry.io/otel</a> to v1.41.0, also on <a href="https://github.com/kubernetes/kubernetes/pull/138350">release-1.33</a>, <a href="https://github.com/kubernetes/kubernetes/pull/138349">release-1.34</a>, and <a href="https://github.com/kubernetes/kubernetes/pull/138348">release-1.35</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.0-rc.1">cluster-api v1.13.0-rc.1</a>: fixes CVE-2026-39883, fixes KCP deletion when InfraTemplates are missing, marks CAPD docker resources as deprecated</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0-rc.1">cluster-api-provider-vsphere v1.16.0-rc.1</a>: bumps to CAPI v1.13.0-rc.1 and CPI v1.36.0-rc.0, fixes CVE-2026-39883</li>
  <li><a href="https://github.com/kubernetes-csi/csi-driver-nfs/releases/tag/v4.13.2">csi-driver-nfs v4.13.2</a>: fixes CVE-2026-33186, avoids VolumeAttributesClass error logs in CSI sidecar containers</li>
  <li><a href="https://github.com/containerd/containerd/releases/tag/v2.3.0-beta.2">containerd v2.3.0-beta.2</a>: introduces shim bootstrap protocol, adds transfer types for container filesystem copy, supports zstd-wrapped EROFS layers, allows containers to use user namespaces with host networking, propagates OpenTelemetry traces in outgoing RPCs; also <a href="https://github.com/containerd/containerd/releases/tag/v2.2.3">v2.2.3</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.1.7">v2.1.7</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.0.8">v2.0.8</a></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 April 12, 2026</title><link href="https://lwkd.info/2026/20260416" rel="alternate" type="text/html" title="Week Ending April 12, 2026" /><published>2026-04-16T17:24:00+00:00</published><updated>2026-04-16T17:24:00+00:00</updated><id>https://lwkd.info/2026/2026-04-12-update</id><content type="html" xml:base="https://lwkd.info/2026/20260416"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The Steering Committee has <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/7Y9016gdFZw">published an updated AI usage policy</a> where contributors must disclose AI use in PR descriptions, and AI tools may not be listed as co-authors or co-sign commits.</p>

<p><a href="https://groups.google.com/a/kubernetes.io/g/dev/c/awNhgIeMV2c">CVE-2026-3865</a> is a Medium-severity path traversal vulnerability in the CSI Driver for SMB; upgrade to v1.20.1 or later.</p>

<p><a href="https://groups.google.com/a/kubernetes.io/g/dev/c/I9w-3nPm8n4">WG AI Integration has been disbanded</a> after its active projects (agent-sandbox, mcp-lifecycle-operator, kube-agentic-networking) moved to their respective SIGs.</p>

<p>Viktória Spišaková is <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/35fNsXIh4qI">stepping down from WG Checkpoint-Restore</a> with Andrey Velichkevich nominated as her replacement; lazy consensus deadline is April 17 2026.</p>

<p>The <a href="https://www.kubernetes.dev/docs/orientation/">New Contributor Orientation</a> is next week on <a href="https://www.kubernetes.dev/resources/calendar/">Tuesday April 21</a>.  This week is the first of the new SIG-run format; SIG-CLI is offering this one, so if you wanted to get started contributing to kubectl, join them.</p>

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

<p><strong>Next Deadline: Kubernetes v1.36.0 Release, April 22</strong></p>

<p>Kubernetes <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-1.36.md">v1.36.0-rc.0</a> is now available, built with Go 1.26.0.</p>

<p>Docs Freeze for v1.36 landed last week, and the <a href="https://github.com/kubernetes/kubernetes/tree/release-1.36">release-1.36</a> branch has been created as we move into the final stages of the release cycle.</p>

<p>Cherry-picks for the April patch releases closed April 10, with the release targeted for April 14.</p>

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

<p><a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing">KEP-740: Support external signing of service account tokens</a></p>

<p>This KEP allows kube-apiserver to use external key management systems (such as HSMs or cloud KMS) for service account JWT signing instead of static on-disk keys. Currently, keys are loaded at startup and require a restart for rotation, making key management inflexible. By integrating external signers, the system enables seamless key rotation without restarts and improves security by ensuring that sensitive signing material is not stored on disk or exposed, reducing the risk of key exfiltration.</p>

<p>The feature was introduced as alpha in v1.32, promoted to beta in v1.34 and is graduating to GA in v1.36.</p>

<p>The KEP is authored by @micahhausler and @harshaln, with reviews and approvals from contributors in the SIG Auth community.</p>

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

<ul>
  <li>Fixed running of <a href="https://github.com/kubernetes/kubernetes/pull/138318">DRA e2e tests in air-gaped clusters</a> or with test images in private registries.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138244">The device manager now</a> restricts iteration to NUMA nodes that actually host devices for the requested resource, reducing the search space to O(2^k) where k is typically 1–2.</li>
  <li>Fix <a href="https://github.com/kubernetes/kubernetes/pull/137677">apiserver startup failure</a> during upgrade when MultiCIDRServiceAllocator is enabled and the cluster has a large number of namespaces.</li>
</ul>

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

<ul>
  <li>Go <a href="https://github.com/kubernetes/kubernetes/pull/138150">bumped to 1.25.8</a> in Kubernetes v1.34</li>
  <li>Go <a href="https://github.com/kubernetes/kubernetes/pull/138261">bumped to 1.26.2</a> in Kubernetes v1.36</li>
  <li>Pause image to <a href="https://github.com/kubernetes/kubernetes/pull/138199">3.10.2</a></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.2.3">containerd v2.2.3</a>: fixes CVE-2026-35469 (spdystream), preserves cgroup mount options for privileged containers, fixes TOCTOU race in tar extraction, updates runc to v1.3.5, fixes whiteout handling in parallel unpack; also <a href="https://github.com/containerd/containerd/releases/tag/v2.1.7">v2.1.7</a>, <a href="https://github.com/containerd/containerd/releases/tag/v2.0.8">v2.0.8</a>, <a href="https://github.com/containerd/containerd/releases/tag/v1.7.31">v1.7.31</a></li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.13.0-rc.1">cluster-api v1.13.0-rc.1</a>: fixes CVE-2026-39883, fixes KCP deletion when InfraTemplates are missing, marks CAPD docker resources as deprecated</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0-rc.1">cluster-api-provider-vsphere v1.16.0-rc.1</a>: bumps to CAPI v1.13.0-rc.1 and CPI v1.36.0-rc.0, fixes CVE-2026-39883</li>
  <li><a href="https://github.com/kubernetes/cloud-provider-vsphere/releases/tag/v1.36.0-rc.0">cloud-provider-vsphere v1.36.0-rc.0</a>: bumps Kubernetes dependencies to v0.36.0-rc.0 and etcd to v3.6.10; also <a href="https://github.com/kubernetes/cloud-provider-vsphere/releases/tag/v1.35.1">v1.35.1</a></li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.11.2">prometheus v3.11.2</a>: fixes stored XSS via unescaped metric names and labels in UI (CVE-2026-40179), fixes Consul SD filter parameter handling; also <a href="https://github.com/prometheus/prometheus/releases/tag/v3.5.2">v3.5.2</a></li>
  <li><a href="https://github.com/kubernetes-csi/csi-driver-nfs/releases/tag/v4.13.2">csi-driver-nfs v4.13.2</a>: fixes CVE-2026-33186, avoids VolumeAttributesClass error logs in CSI sidecar containers</li>
  <li><a href="https://github.com/kubernetes-sigs/kubespray/releases/tag/v2.26.1">kubespray v2.26.1</a>: defaults to Kubernetes v1.30.6 and containerd v1.7.23, updates runc to v1.1.14 and ingress-nginx to v1.11.5; fixes etcd cert handling and PodSecurity Admission</li>
</ul>

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

<ul>
  <li>pohly: Shoutout to @Antti Kervinen for testing the new 1.36 DRA native resources alpha feature before the release, finding a real issue, tracking down the root cause and submitting <a href="https://github.com/kubernetes/kubernetes/pull/138030">the fix in his first Kubernetes PR</a>.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending April 5, 2026</title><link href="https://lwkd.info/2026/20260409" rel="alternate" type="text/html" title="Week Ending April 5, 2026" /><published>2026-04-09T16:00:00+00:00</published><updated>2026-04-09T16:00:00+00:00</updated><id>https://lwkd.info/2026/2026-04-05-update</id><content type="html" xml:base="https://lwkd.info/2026/20260409"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>The NVIDIA DRA Driver for GPUs has been <a href="https://github.com/kubernetes/community/pull/8921">officially onboarded as a SIG Node
subproject</a> in kubernetes-sigs, formally
moving community governance of the GPU DRA driver that NVIDIA donated at the 2026 KubeCon+CloudNativeCon EU into
upstream Kubernetes.</p>

<p>A <a href="https://github.com/kubernetes-sigs/dra-driver-cpu/releases/tag/v0.1.0">CPU DRA Driver v0.1.0</a> has been released, enabling exclusive CPU pinning for workloads via the DRA framework with support for aligning CPU allocations with other DRA-managed resources such as NICs and GPUs.</p>

<p>The Kubernetes contributor guide has been updated with a new <a href="https://github.com/kubernetes/community/pull/8918">AI usage and disclosure
policy</a>; all contributors should review the changes before using AI tools in their Kubernetes contributions.</p>

<p>The <a href="https://github.com/kubernetes/community/pull/8919">ingress-nginx and ingate Slack channels have been archived</a> following the project’s retirement in March; contributors should migrate to #gateway-api or other relevant channels.</p>

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

<p>The Kubernetes Steering Committee will move all Kubernetes meeting management to the <a href="https://lfx.linuxfoundation.org/tools/">LFX Platform</a> to address broken invites and limited access for subproject leads. The system centralizes scheduling, enables subprojects to manage meetings, and syncs with the Kubernetes calendar. Community leads will be required to create LFX accounts.</p>

<p>Steering <a href="https://github.com/kubernetes/community/pull/8918">added mandatory requirements</a> to the Kubernetes AI policy. Contributors must disclose AI usage in pull requests. AI tools cannot be listed as co-authors or co-sign PRs due to Linux Foundation legal restrictions. Also, do not add mentions like “assisted by AI” in commit trailers, to prevent third-party marketing misuse.</p>

<p>The GitHub Admin Team introduced a per-repo opt-in policy for AI code review tools. It defines the lifecycle: request, security review, 90-day trial, and evaluation. Please <a href="https://github.com/kubernetes/community/pull/8910">review and provide feedback</a>.</p>

<p>To improve onboarding, ContribEx will replace the current <a href="https://www.kubernetes.dev/docs/orientation/">NCO presentations</a> with a SIG-focused format, as they were too general. This updated approach aims to make sessions more relevant and actionable, with SIG leads playing a key role in delivering them.</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 Freeze</a>, 9th April 2026</strong></p>

<p>We’re heading into Docs Freeze for v1.36, landing April 9. The release-1.36 branch will be created alongside Docs Freeze, marking the final stages of the <a href="https://www.kubernetes.dev/resources/release/">release cycle</a>.</p>

<p><a href="https://kubernetes.io/releases/patch-releases/">Cherry-picks</a> for the next round of patch releases are due April 10.</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/5075-dra-consumable-capacity">KEP-5075: DRA Consumable Capacity</a></p>

<p>This KEP introduces support for consumable capacity in Dynamic Resource Allocation (DRA), enabling multiple independent resource claims to allocate and share portions of the same underlying device. Unlike the traditional exclusive allocation model, this approach allows efficient device sharing across unrelated pods and namespaces while ensuring that total allocated capacity remains within device limits through a scheduler-enforced consumable capacity model.</p>

<p>This approach supports shared network devices via CNI, virtual GPU memory allocation, and other multi-allocatable devices. It introduces mechanisms for capacity-aware scheduling, per-request capacity requirements, consumed capacity tracking, and safeguards to prevent unintended duplicate allocations within a single claim.</p>

<p>The feature became alpha in Kubernetes 1.34 should become beta in 1.36.</p>

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

<ul>
  <li>Introducing fine-grained authorization <a href="https://github.com/kubernetes/kubernetes/pull/134947">checks for Dynamic Resource Allocation (DRA)</a> ResourceClaim status updates.</li>
  <li>Add the <a href="https://github.com/kubernetes/kubernetes/pull/135828"><code class="language-plaintext highlighter-rouge">UserNamespacesHostNetwork</code> runtime handler</a> and integrates the <code class="language-plaintext highlighter-rouge">UserNamespacesHostNetworkSupport</code> feature gate with the <code class="language-plaintext highlighter-rouge">NodeDeclaredFeatures</code> feature gate.</li>
  <li>Fix kubelet to preserve <a href="https://github.com/kubernetes/kubernetes/pull/138030">DRA NodeAllocatableResourceClaimStatuses</a> in <code class="language-plaintext highlighter-rouge">Pod.Status</code>.</li>
  <li>Fix <a href="https://github.com/kubernetes/kubernetes/pull/138045">erroneously reporting a pod-level resize</a> in progress on pod creation when <code class="language-plaintext highlighter-rouge">InPlacePodLevelResourcesVerticalScaling</code> is enabled.</li>
</ul>

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

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/138035">cdi spec</a> to 0.5.0</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.0-rc.0">cluster-api v1.13.0-rc.0</a>: bumps to Go 1.25, controller-runtime v0.23, and k8s.io/* v0.35; improves KCP failure recovery and controller memory footprint; removes v1alpha3 and v1alpha4 apiVersions; also <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.12.5">v1.12.5</a>, <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.11.8">v1.11.8</a></li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0-rc.0">cluster-api-provider-vsphere v1.16.0-rc.0</a>: bumps to CAPI v1.13.0-rc.0; adds v1beta2 API support for govmomi and supervisor; enables priority queue and rate limiting by default; removes v1alpha3 and v1alpha4 apiVersions</li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.11.1">prometheus v3.11.1</a>: fixes startup failure for OTLP HTTP tracing with insecure mode</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 March 29, 2026</title><link href="https://lwkd.info/2026/20260401" rel="alternate" type="text/html" title="Week Ending March 29, 2026" /><published>2026-04-01T23:50:00+00:00</published><updated>2026-04-01T23:50:00+00:00</updated><id>https://lwkd.info/2026/2026-03-29-update</id><content type="html" xml:base="https://lwkd.info/2026/20260401"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p>A new <a href="https://github.com/kubernetes/community/blob/main/github-management/github-actions-policy.md">Kubernetes policy</a> requires GitHub Actions workflows to pin actions using full 40-character commit SHAs instead of mutable references like latest or main. Non-compliant workflows will fail after April 15, 2026, so maintainers should update workflows and use Dependabot to keep them up to date, see <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/gvwLzCBx-hA">details</a>.</p>

<p>The default branch of the kubernetes/community repository has been renamed from master to main. Open PRs were automatically retargeted and existing /master/ links will continue to work, but contributors should update local branches and forks to stay aligned, see <a href="https://github.com/kubernetes/community/issues/6290">tracking issue</a>.</p>

<p>SIG Release has updated platform support tiers and artifacts documentation with clearer, measurable criteria and a simplified structure, with no changes to supported platforms or artifacts, see <a href="https://github.com/kubernetes/sig-release/pull/2974">PR</a>.</p>

<p>A high-severity ingress-nginx vulnerability (CVE-2026-4342) enables configuration injection and potential code execution, affecting versions below v1.13.9, v1.14.5, and v1.15.1 as outlined in the <a href="https://github.com/kubernetes/kubernetes/issues/137893">issue</a>. With ingress-nginx now EOL, users should upgrade and migrate.</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 Freeze</a>, 9th April 2026</strong></p>

<p>Code Freeze for v1.36 is now in effect. Enhancements that did not meet the freeze criteria have been removed from the milestone. <a href="https://kubernetes.io/docs/contribute/new-content/new-features/#pr-ready-for-review">Docs PRs</a> and <a href="https://github.com/kubernetes/sig-release/discussions/2958">Release Highlights</a> were due March 31, with Docs Freeze landing April 9 (AoE April 8).</p>

<p><strong>Patch Releases</strong></p>

<p>Kubernetes <a href="https://github.com/kubernetes/kubernetes/releases/tag/v1.36.0-beta.0">v1.36.0-beta.0</a>,  <a href="https://github.com/kubernetes/kubernetes/releases/tag/v1.35.3">v1.35.3</a>, <a href="https://github.com/kubernetes/kubernetes/releases/tag/v1.34.6">v1.34.6</a>, <a href="https://github.com/kubernetes/kubernetes/releases/tag/v1.33.10">v1.33.10</a> were released last week, delivering the latest fixes and updates.</p>

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

<h3 id="137544-promote-nodelogquery-to-ga-in-v136-and-lock-default-to-true"><a href="https://github.com/kubernetes/kubernetes/pull/137544">137544: Promote NodeLogQuery to GA in v1.36 and lock default to true</a></h3>

<p><a href="https://github.com/jrvaldes">jrvaldes</a> has promoted the <strong>NodeLogQuery</strong> feature to General Availability in Kubernetes v1.36 as part of <a href="https://github.com/kubernetes/enhancements/issues/2258">KEP-2258: Node Log Query Enhancements</a>. The PR was reviewed and approved by maintainers including <a href="https://github.com/liggitt">liggitt</a> and contributors from SIG Node and SIG Windows.</p>

<p>NodeLogQuery allows cluster administrators to retrieve node-level system and service logs directly through the Kubernetes API by proxying requests through the kubelet. Instead of logging into nodes with SSH or RDP and manually searching logs with tools such as <code class="language-plaintext highlighter-rouge">journalctl</code> or the Windows Event Viewer, operators can query logs with a single <code class="language-plaintext highlighter-rouge">kubectl</code> command.</p>

<p>The feature was originally introduced in Kubernetes 1.27 as an alpha capability and progressed to beta in Kubernetes 1.30 before graduating to GA in v1.36. During this time the implementation matured with improvements to filtering, cross-platform support for both Linux and Windows nodes, and security hardening after the discovery of CVE-2024-9042 affecting the Windows implementation.</p>

<p>Under the hood, the kubelet exposes a <code class="language-plaintext highlighter-rouge">/logs/</code> HTTP endpoint that queries the operating system’s native logging infrastructure (<code class="language-plaintext highlighter-rouge">journalctl</code> on Linux and <code class="language-plaintext highlighter-rouge">Get-WinEvent</code> on Windows), allowing Kubernetes to provide a unified interface for retrieving node logs regardless of operating system.</p>

<p>The feature originated from work led by <a href="https://github.com/aravindhp">Aravindh Puthiyaparambil</a> and contributors across SIG Windows and SIG Node. With the GA promotion, the <code class="language-plaintext highlighter-rouge">NodeLogQuery</code> feature gate is now locked to enabled, making node log queries a stable part of the Kubernetes debugging and observability toolkit.</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/4815-dra-partitionable-devices">KEP-4815: DRA: Add support for partitionable devices</a></p>

<p>This KEP restores the ability of Dynamic Resource Allocation (DRA) to support on-demand device partitioning within the newer “structured parameters” framework, enabling more efficient utilization of resources like GPUs and other accelerators. It introduces mechanisms for vendors to represent both full devices and overlapping partitions compactly, allowing the scheduler to safely allocate non-conflicting partitions while enabling dynamic creation of those partitions after allocation—without changing the existing user-facing ResourceClaim workflow.</p>

<p>The proposal is driven by use cases such as GPU partitioning, multi-host TPU scheduling, SR-IOV, and ensuring valid device topologies across single and multi-node environments, while also supporting logical devices composed of multiple physical resources.</p>

<p>The feature is currently under proposal stage, with ongoing discussions focused on restoring lost flexibility from “classic” DRA and aligning it with structured parameters, and is expected to evolve through standard Kubernetes release stages (alpha, beta, GA) based on implementation maturity and community feedback.</p>

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

<ul>
  <li>Switch <a href="https://github.com/kubernetes/kubernetes/pull/137909">PLEGOnDemandRelist</a> default to false for 1.36</li>
  <li>Fixes a 1.35 regression in StatefulSet Parallel pod management by <a href="https://github.com/kubernetes/kubernetes/pull/137904">disabling the MaxUnavailableStatefulSet feature by default</a>.</li>
  <li>Added alpha support for tracking PVC unused status via a <a href="https://github.com/kubernetes/kubernetes/pull/137862">new <code class="language-plaintext highlighter-rouge">Unused</code> condition on PersistentVolumeClaimStatus</a>.</li>
  <li>Fix bug where users <a href="https://github.com/kubernetes/kubernetes/pull/137856">can’t update HPAv2 resources</a> that use object metrics with averageValue via the v1 HPA API.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137827">cri-client helper method NewLogOptions was removed</a> and LogOptions must be constructed directly.</li>
  <li>Enables Prometheus native histogram support in <a href="https://github.com/kubernetes/kubernetes/pull/137781">kube-proxy</a>,<a href="https://github.com/kubernetes/kubernetes/pull/137780">kubelet</a>, <a href="https://github.com/kubernetes/kubernetes/pull/137779">KCM</a> when feature gate is enabled.</li>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/137753">“Failed to update lease optimistically”</a> log message may not be shown to users anymore, depending on the log level they have set.</li>
  <li>Add <a href="https://github.com/kubernetes/kubernetes/pull/137719">tiered cgroup v2 memory protection</a> for <code class="language-plaintext highlighter-rouge">MemoryQoS: memory.min</code> for Guaranteed pods, <code class="language-plaintext highlighter-rouge">memory.low</code> for Burstable pods, with node-level metrics and rollback reconciliation (KEP-2570).</li>
  <li>Writes to the <a href="https://github.com/kubernetes/kubernetes/pull/137715">ServiceCIDR main resource</a> now ignore status field changes in the request, consistent with all other Kubernetes APIs.</li>
  <li>Fixed a bug preventing <a href="https://github.com/kubernetes/kubernetes/pull/137647">Pods sharing ResourceClaims</a> from being scheduled with GangScheduling.</li>
  <li>Added a deletion protection mechanism for PodGroup objects <a href="https://github.com/kubernetes/kubernetes/pull/137641">KEP-5832</a>.</li>
  <li>Fixed how image names are compared to the values from <a href="https://github.com/kubernetes/kubernetes/pull/137629"><code class="language-plaintext highlighter-rouge">preloadedImagesVerificationAllowlist</code> in Kubelet’s configuration</a>.</li>
  <li>kube-scheduler now updates <a href="https://github.com/kubernetes/kubernetes/pull/137611">PodGroup status with a <code class="language-plaintext highlighter-rouge">PodGroupScheduled</code></a> condition reflecting whether the group was successfully scheduled or is unschedulable.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137607">DRA allocation timeouts are now surfaced</a> as visible scheduling failures and retried with per-pod exponential backoff, instead of silently skipping nodes or incorrectly marking pods unschedulable.</li>
  <li>When <a href="https://github.com/kubernetes/kubernetes/pull/137606">WorkloadAwarePreemption Feature Gate</a> is enabled, and the Pod Group scheduling fails to find a place for the Pod Group, instead of running default preemption for each pod from the pod group, the workload aware preemption will be run for the whole group.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137584">MemoryReservationPolicy cgroup v2 MemoryQoS</a> support to KubeletConfiguration for memory.min protection (KEP-2570).</li>
  <li>TAS logic to the pod group scheduling cycle behind <a href="https://github.com/kubernetes/kubernetes/pull/137489">TopologyAwareWorkloadScheduling feature gate</a>. This feature supports scheduling pod groups on nodes with matching topology domains (KEP 5723).</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137488"><code class="language-plaintext highlighter-rouge">PodGroupPodsCount</code> scheduler plugin</a> to support workload-aware scheduling by prioritizing placements with higher pod counts within a group.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137464">admission plugin</a> that validates PodGroup resources reference an existing Workload and match the declared PodGroupTemplate spec.</li>
  <li>Disallow setting a resize restart <a href="https://github.com/kubernetes/kubernetes/pull/137458">policy of <code class="language-plaintext highlighter-rouge">RestartContainer</code> on non-sidecar initContainers</a>, as the resize of such containers has never been supported.</li>
  <li>DRA ResourceSlice controller: new optional <a href="https://github.com/kubernetes/kubernetes/pull/137365"><code class="language-plaintext highlighter-rouge">ReconcilePoolWithName</code></a> allows per-pool reconciliation without setting NodeName on slices.</li>
  <li>Support <a href="https://github.com/kubernetes/kubernetes/pull/137352">in-place pod resize</a> of running non-sidecar initContainers.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137326">Fixed an issue where zero-valued PSI (Pressure Stall Information) metrics</a> were emitted by the kubelet when the OS does not support PSI, even if the KubeletPSI feature gate was enabled.</li>
  <li>Warnings and deprecation for <a href="https://github.com/kubernetes/kubernetes/pull/137293">Service.spec.externalIPs</a></li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137271">SchedulingConstraints to express TAS constraints</a> for pod group scheduling behind TopologyAwareWorkloadScheduling feature gate (KEP-5732).</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137190">Alpha Introduce List Types</a> for Attributes in DRA (KEP-5491).</li>
  <li>Fixed a bug where <a href="https://github.com/kubernetes/kubernetes/pull/137146">regular containers in a pod with a sidecar</a> (initContainer with restartPolicy: Always) and a startupProbe failed to restart after crashing following a kubelet restart, leaving affected pods stuck with RestartCount: 0 indefinitely.</li>
  <li>Opt-in alpha support in <a href="https://github.com/kubernetes/kubernetes/pull/137086">kubeletplugin framework for DRA drivers</a> to publish DRA Device metadata in pod CDI mounts.</li>
  <li>Integrate <a href="https://github.com/kubernetes/kubernetes/pull/137032">Workload and PodGroup APIs</a> with the Job controllers to support gang-scheduling.</li>
  <li>ResourcePoolStatusRequest API (v1alpha1) for <a href="https://github.com/kubernetes/kubernetes/pull/137028">querying DRA resource pool availability</a>.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137002">Capped <code class="language-plaintext highlighter-rouge">nf_conntrack_max</code> to 1,048,576</a> to prevent excessive memory consumption on high-core machines when using automatic calculation.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137001">Fixed redundant SSH command executions</a> in the etcd failure e2e test.</li>
  <li>DRA: PodGroup resources can now make requests with <a href="https://github.com/kubernetes/kubernetes/pull/136989">ResourceClaims through a <code class="language-plaintext highlighter-rouge">spec.resourceClaims</code> field</a> which can refer to ResourceClaims and ResourceClaimTemplates.</li>
  <li>New <a href="https://github.com/kubernetes/kubernetes/pull/136987">RuntimeService streaming RPCs</a> (<code class="language-plaintext highlighter-rouge">StreamPodSandboxes</code>, <code class="language-plaintext highlighter-rouge">StreamContainers</code>, <code class="language-plaintext highlighter-rouge">StreamContainerStats</code>, <code class="language-plaintext highlighter-rouge">StreamPodSandboxStats</code>, <code class="language-plaintext highlighter-rouge">StreamPodSandboxMetrics</code>) and New ImageService streaming RPC (<code class="language-plaintext highlighter-rouge">StreamImages</code>).</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136652">Extended NodeResourcesFit</a> to implement the PlacementScore extension point.</li>
  <li>Introduce <a href="https://github.com/kubernetes/kubernetes/pull/136641">index-based naming in ResourceSlice controller</a> and ensure ResourceSlices and pools are sorted lexicographically before allocation, allowing users to control allocation priority.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136589"><code class="language-plaintext highlighter-rouge">DisruptionMode</code>, <code class="language-plaintext highlighter-rouge">PriorityClassName</code> and <code class="language-plaintext highlighter-rouge">Priority</code> fields</a> to Workload and PodGroup APIs to support workload-aware preemption when <code class="language-plaintext highlighter-rouge">WorkloadAwarePreemption</code> feature gate is enabled.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136483">Renamed metric</a> ‘etcd_bookmark_counts’ to ‘etcd_bookmark_total’.</li>
  <li>Introduce <a href="https://github.com/kubernetes/kubernetes/pull/136725">support of DRA</a> for Native Resources.</li>
  <li>An admission plugin to perform the <a href="https://github.com/kubernetes/kubernetes/pull/136043">OS and node capacity checks</a></li>
  <li>The <a href="https://github.com/kubernetes/kubernetes/pull/135828"><code class="language-plaintext highlighter-rouge">UserNamespacesHostNetwork</code> runtime handler</a> and integrates the <code class="language-plaintext highlighter-rouge">UserNamespacesHostNetworkSupport</code> feature gate with the <code class="language-plaintext highlighter-rouge">NodeDeclaredFeatures</code> feature gate.</li>
  <li>DRA (Dynamic Resource Allocation) drivers and controllers now require <a href="https://github.com/kubernetes/kubernetes/pull/134947">granular RBAC permissions</a> to update ResourceClaim statuses when the <code class="language-plaintext highlighter-rouge">DRAResourceClaimGranularStatusAuthorization</code> feature gate is enabled (Beta in 1.36).</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/134660">Kubelet now sets <code class="language-plaintext highlighter-rouge">PodReadyToStartContainers</code> condition immediately after sandbox creation</a> rather than after image pull, reducing the time to condition True.</li>
  <li>A <a href="https://github.com/kubernetes/kubernetes/pull/134627">new gRPC service is added to the Kubelet</a> that provides information about pods running on the node.</li>
  <li>kubectl: <a href="https://github.com/kubernetes/kubernetes/pull/131744"><code class="language-plaintext highlighter-rouge">kubectl describe node</code></a> now lists aggregated ResourceSlices when the <code class="language-plaintext highlighter-rouge">ResourceSlice</code> API is present, detailing slice name, driver, and pool.</li>
</ul>

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

<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137609">Constrained impersonation</a> to beta.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137544">NodeLogQuery</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137795">Device Binding Conditions (KEP #5007)</a> to beta.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137684">InPlacePodLevelResourcesVerticalScaling feature</a> to beta.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137454">ProcMountType</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137350">DRAPartitionableDevices</a> to beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136548">KubeletPSI FeatureGate</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136367">Job controller metrics</a> to beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136314">etcd metric ‘apiserver_storage_events_received_total</a> to beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136155">scheduler metrics</a> to beta</li>
</ul>

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

<ul>
  <li><a href="https://github.com/etcd-io/etcd/releases/tag/v3.6.10">etcd v3.6.10</a>: patch release; also <a href="https://github.com/etcd-io/etcd/releases/tag/v3.5.29">v3.5.29</a>, <a href="https://github.com/etcd-io/etcd/releases/tag/v3.4.43">v3.4.43</a>: fixes <a href="https://github.com/etcd-io/etcd/security/advisories/GHSA-rfx7-8w68-q57q">several security</a> <a href="https://github.com/etcd-io/etcd/security/advisories/GHSA-q8m4-xhhv-38mg">vulnerabilities</a> reported by community members; these vulns do not affect the Kubernetes control plane, but affect users of etcd Auth feature.</li>
  <li><a href="https://github.com/containerd/nerdctl/releases/tag/v2.2.2">nerdctl v2.2.2</a>: updates BuildKit to v0.28.1 and CNI plugins to v1.9.1 with security fixes; full distribution includes containerd v2.2.1, runc v1.4.0, and RootlessKit v2.3.6</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.13.0-beta.1">cluster-api v1.13.0-beta.1</a>: adds DevMachinePools for CAPD, optimizes cache configuration for core and KCP controllers, tunes concurrency for scale; fixes KCP label handling and ClusterRole conflicts; bumps cert-manager to v1.20.1</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0-beta.1">cluster-api-provider-vsphere v1.16.0-beta.1</a>: adds crypto configuration support, tunes controller concurrency for scale, fixes zone info fetch from VM conditions; bumps to CAPI v1.13.0-beta.1 and fixes gRPC CVE</li>
  <li><a href="https://github.com/prometheus/prometheus/releases/tag/v3.11.0-rc.0">prometheus v3.11.0-rc.0</a>: adds AWS Elasticache/RDS SD roles, Azure Workload Identity auth, new PromQL histogram operators and histogram_quantiles function, experimental fast-startup and ST storage flags; fixes EC2 SD endpoint regression, alert state reset bug, and multiple TSDB memory leaks</li>
  <li><a href="https://github.com/kubernetes/cloud-provider-vsphere/releases/tag/v1.35.1">cloud-provider-vsphere v1.35.1</a>: fixes CVE-2026-33186 (CVSS 9.1) and CVE-2026-24051 (CVSS 7.0)</li>
  <li><a href="https://github.com/grpc/grpc/releases/tag/v1.80.0">gRPC v1.80.0</a>: implements TLS private key offload, adds InMemoryCertificateProvider, enables EventEngine for Python by default with fork support, adds Ruby 4.0 build support; fixes PHP infinite recursion and Python AsyncIO concurrent RPC enforcement</li>
</ul>

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

<ul>
  <li>pohly: Shoutout to @everpeace for getting their first KEP implemented as alpha.</li>
  <li>pohly: Shoutout to @Noureldin for another alpha DRA KEP implementation.</li>
  <li>pohly: Shoutout to @nojnhuh for getting their first KEP implementation merged as alpha for v1.36.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Developer News]]></summary></entry><entry><title type="html">Week Ending March 15, 2026</title><link href="https://lwkd.info/2026/20260313" rel="alternate" type="text/html" title="Week Ending March 15, 2026" /><published>2026-03-13T19:00:00+00:00</published><updated>2026-03-13T19:00:00+00:00</updated><id>https://lwkd.info/2026/2026-03-15-update</id><content type="html" xml:base="https://lwkd.info/2026/20260313"><![CDATA[<h2 id="developer-news">Developer News</h2>

<p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/">Kubecon Europe 2026</a> is next week!  The KubeCon EU Maintainer Summit is now sold out, and the CNCF will not allow unregistered contributors to attend due to high demand.  Regardless, do join us for the <a href="https://www.kubernetes.dev/events/2026/kcseu/meet-and-greet/">Kubernetes Meet &amp; Greet</a> on Wednesday, March 25, which is <em>not</em> sold out.</p>

<p>The NFS CSI Driver <a href="https://github.com/kubernetes/kubernetes/issues/137797">patched a security vulnerability</a> which could allow unauthorized users to modify or delete files.</p>

<p>KubeCon Japan CFP <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-japan/features-add-ons/project-opportunities/">(Maintainer Track + Lightning Talks)</a> closes April 12.  <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-japan/program/cfp/">KubeCon Japan Regular CFP</a> is open until 29 March 2026. KubeCon + CloudNativeCon + OpenInfra Summit + PyTorch Conference China CFP <a href="https://www.lfopensource.cn/kubecon-cloudnativecon-openinfra-summit-pytorch-conference-china/features-add-ons/project-opportunities/#dates-to-remember">(Maintainer Track + Lightning Talks)</a> closes May 3, 23:59 CST / 21:29 IST / 15:59 UTC / 11:59 EDT</p>

<p><a href="https://github.com/kubernetes/ingress-nginx">ingress-nginx</a> will reach End of Life (EOL) on March 31, concluding its best-effort maintenance period.</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#code-freeze">Code &amp; Test Freeze</a>, 19th March 2026</strong></p>

<p>Code &amp; Test Freeze for v1.36 starts tomorrow. Make sure your feature
work is completed and merged before the deadline. After the freeze, only
critical fixes will be accepted, and other changes will require an <a href="https://git.k8s.io/sig-release/releases/EXCEPTIONS.md">exception</a>.</p>

<p>The March Kubernetes patch releases are <a href="https://groups.google.com/a/kubernetes.io/g/dev/c/RqVkcwfENgg/m/HhP0qL9EAQAJ?utm_medium=email&amp;utm_source=footer">delayed</a> and are currently
expected to be cut early this week.</p>

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

<p><strong><a href="https://github.com/kubernetes/kubernetes/pull/137454">137454: KEP-4265: promote ProcMountType to GA</a></strong></p>

<p><a href="https://github.com/haircommander">Joe Beda</a> has promoted the <strong>ProcMountType</strong> feature to General Availability as part of <a href="https://github.com/kubernetes/enhancements/issues/4265">KEP-4265</a>. The change was reviewed and approved by contributors including <a href="https://github.com/liggitt">Jordan Liggitt</a> and members of SIG Auth, SIG Node, and SIG CLI.</p>

<p><code class="language-plaintext highlighter-rouge">ProcMountType</code> allows Kubernetes workloads to control how the Linux <code class="language-plaintext highlighter-rouge">/proc</code> filesystem is mounted inside containers. The <code class="language-plaintext highlighter-rouge">/proc</code> filesystem exposes information about running processes on a host, which can be useful for debugging and monitoring but may also reveal sensitive host details. The feature allows containers to run with a more restricted <code class="language-plaintext highlighter-rouge">/proc</code> mount, helping isolate workloads from host process information and improving container security.</p>

<p>With this PR, the feature is considered stable and the associated feature gate has been removed from the API documentation. This means contributors and users can rely on the functionality as part of the core Kubernetes API going forward, without needing to enable experimental flags.</p>

<p>The work builds on earlier implementation and stabilization efforts, including related PRs such as <a href="https://github.com/kubernetes/kubernetes/pull/136792">#136792</a>, which promoted the <code class="language-plaintext highlighter-rouge">UserNamespacesSupport</code> feature to GA and removed remaining feature-gate references across the codebase. These changes collectively advance Kubernetes’ support for stronger container isolation features in the Linux kernel.</p>

<p>The feature is relevant to multiple parts of the Kubernetes project, including kubelet behavior, container runtime interactions, and workload security configuration. Contributors working in areas such as pod security, container runtime integration, and node lifecycle management may encounter this functionality when configuring process namespace and <code class="language-plaintext highlighter-rouge">/proc</code> access within pods.</p>

<p>For more details, see the enhancement proposal in <a href="https://github.com/kubernetes/enhancements/issues/4265">KEP-4265</a> and the discussion in the pull request above.</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/4671-gang-scheduling/README.md">KEP-4671: Gang Scheduling using Workload Object</a></p>

<p>This KEP implements gang scheduling in kube-scheduler, proposed by SIG Scheduling, enabling Kubernetes to schedule groups of Pods as a single unit using an all-or-nothing model. It introduces the Workload and PodGroup APIs, allowing the scheduler to wait until a minimum number of Pods can be scheduled together before binding them, improving support for distributed workloads like AI/ML and batch jobs.</p>

<p>SIG Scheduling contributors are actively working on API refinements and scheduler behavior, with ongoing discussions around evolving toward a more workload-aware scheduling model.</p>

<p>KEP-4671 reached alpha in Kubernetes v1.35 behind the <code class="language-plaintext highlighter-rouge">GenericWorkload</code> feature gate, and is expected to progress to beta in a future release, subject to API stability and testing.</p>

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

<ul>
  <li>Fixes the total <a href="https://github.com/kubernetes/kubernetes/pull/137683">pod resources computation</a></li>
  <li>Explicitly <a href="https://github.com/kubernetes/kubernetes/pull/137637">writes memory.min=0 for QoS cgroups</a> when the calculated requests are zero.</li>
  <li>Truncates the <a href="https://github.com/kubernetes/kubernetes/pull/137615">watch cache RV metric</a> to 15 digits to ensure precision.</li>
  <li>Improve stability by sorting containers by create time and ID in <a href="https://github.com/kubernetes/kubernetes/pull/137566">kubeGenericRuntimeManager.GetPods() and GetPod()</a></li>
  <li>Allow the CRI (and NRI) to <a href="https://github.com/kubernetes/kubernetes/pull/137555">block pod-level resizes</a>.</li>
  <li>Slow requests that use impersonation can now be tracked via the <a href="https://github.com/kubernetes/kubernetes/pull/137523"><code class="language-plaintext highlighter-rouge">apiserver.latency.k8s.io/impersonation</code></a> audit event annotation when the ConstrainedImpersonation feature is enabled.</li>
  <li>Enables <a href="https://github.com/kubernetes/kubernetes/pull/137466">Prometheus native histogram support</a> in scheduler when feature gate is enabled.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137398">Fix goroutine hot-loop in client-go</a> StartEventWatcher when the event broadcaster shuts down before the cancellation context fires.</li>
  <li>With DRABindingConditions enabled, <a href="https://github.com/kubernetes/kubernetes/pull/137371">reusing the same claim across different Pods</a> could rarely trigger a scheduler panic during parallel de-allocation due to a race condition.</li>
  <li>Add <a href="https://github.com/kubernetes/kubernetes/pull/137346">alpha support for manifest-based admission control</a> configuration (KEP-5793).</li>
  <li>Allow users to opt-in to <a href="https://github.com/kubernetes/kubernetes/pull/137343">scheduling behaviour for CSI volume</a></li>
  <li>Fix link file ownership of <a href="https://github.com/kubernetes/kubernetes/pull/137332">projected serviceAccountToken</a>.</li>
  <li>Validation messages for a Pod’s <code class="language-plaintext highlighter-rouge">status.resourceClaimStatuses[].resourceClaimName</code> now refer correctly to the <a href="https://github.com/kubernetes/kubernetes/pull/137321"><code class="language-plaintext highlighter-rouge">resourceClaimName</code> field instead of the <code class="language-plaintext highlighter-rouge">name</code></a> field.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137300">Update <code class="language-plaintext highlighter-rouge">kubectl kuberc set</code></a> with options for setting <code class="language-plaintext highlighter-rouge">credentialPluginPolicy</code> and <code class="language-plaintext highlighter-rouge">credentialPluginAllowlist</code>.</li>
  <li>Introduces new <a href="https://github.com/kubernetes/kubernetes/pull/137298">staging modules <code class="language-plaintext highlighter-rouge">k8s.io/streaming</code> and <code class="language-plaintext highlighter-rouge">k8s.io/cri-streaming</code></a> for Kubernetes streaming transport and CRI streaming server code.</li>
  <li>Added two scheduler metrics for Device Binding Conditions, covering <a href="https://github.com/kubernetes/kubernetes/pull/137284">allocation attempts and PreBind duration</a> with status and driver labels.</li>
  <li>Added <a href="https://github.com/kubernetes/kubernetes/pull/137201">PlacementScore extension point</a> to the scheduler.</li>
  <li>For performance reasons, <a href="https://github.com/kubernetes/kubernetes/pull/137145"><code class="language-plaintext highlighter-rouge">kubectl describe</code></a> now defaults to showing related events only when describing a single object.</li>
  <li>Add <a href="https://github.com/kubernetes/kubernetes/pull/137115">–tls-curve-preferences flag</a> for configuring TLS key exchange mechanism.</li>
  <li>Introduce <a href="https://github.com/kubernetes/kubernetes/pull/136976">scheduling.k8s.io/v1alpha2 Workload and PodGroup</a> API.</li>
  <li>Reflecting the expected replica count to the output of <a href="https://github.com/kubernetes/kubernetes/pull/136945">kubectl scale command</a>.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136817">Garbage collector</a> now correctly handles objects deleted externally, preventing spurious error logs.</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136640">Add tlsServerName field to EgressSelectorConfiguration TLSConfig</a> to allow overriding the server name used for TLS certificate verification.</li>
  <li>Add <a href="https://github.com/kubernetes/kubernetes/pull/136279">ControllerManagerReleaseLeaderElectionLockOnCancel feature gate to gate leader election</a> lock release on exit for kube-controller-manager.</li>
  <li>Extend <a href="https://github.com/kubernetes/kubernetes/pull/136256">WebSocket Streaming Protocol</a> to the Kubelet for Exec/Attach/PortForward.</li>
  <li>Remove <a href="https://github.com/kubernetes/kubernetes/pull/135297">CRD stored versions</a> from status upon SVM migration.</li>
  <li>Reduced get <a href="https://github.com/kubernetes/kubernetes/pull/134290">PV request from KCM pv-controller</a> for CSI volumes.</li>
  <li>k8s.io/client-go/transport now <a href="https://github.com/kubernetes/kubernetes/pull/132922">automatically reloads certificate</a> authority roots from disk when they are supplied via a file path.</li>
  <li>Allow the <a href="https://github.com/kubernetes/kubernetes/pull/134768">Topology, CPU, and Memory managers</a> to recognize and act upon <code class="language-plaintext highlighter-rouge">pod.spec.resources</code>, enabling two flexible resource management models</li>
</ul>

<h2 id="promotions">Promotions</h2>
<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137454">ProcMountType feature</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137386">ComponentFlagz feature</a> gate to Beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137384">ComponentStatusz feature</a> gate to Beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137170">DRA device taints</a> to Beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136924">DRAPrioritizedList</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136792">UserNamespacesSupport</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136728"><code class="language-plaintext highlighter-rouge">KubeletPodResourcesDynamicResources</code> and <code class="language-plaintext highlighter-rouge">KubeletPodResourcesGet</code></a> feature gates to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136711">ImageVolume</a> to GA</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136681">RestartAllContainers</a> to beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136178">HPA metrics</a> to beta</li>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/136042"><code class="language-plaintext highlighter-rouge">NodeDeclaredFeatures</code></a> to beta.</li>
</ul>

<h2 id="version-updates">Version Updates</h2>
<ul>
  <li><a href="https://github.com/kubernetes/kubernetes/pull/137605">coredns</a> to v1.14.2</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.0-beta.0"><strong>Cluster API v1.13.0-beta.0</strong></a>: introduces significant updates with 25 new features and multiple breaking changes, including removal of deprecated APIs, adoption of v1beta2 contracts, improved ClusterClass and Machine handling, and enhanced rollout and caching mechanisms. The release also upgrades dependencies such as controller-runtime and Go, alongside extensive bug fixes and testing improvements. Additionally, <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.12.4"><strong>v1.12.4</strong></a> and <a href="https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.11.7"><strong>v1.11.7</strong></a> provide backported bug fixes, CVE patches, and stability improvements across supported branches.</li>
  <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/tag/v1.16.0-beta.0"><strong>Cluster API Provider vSphere v1.16.0-beta.0</strong></a>: delivers major API alignment with Cluster API v1beta2, including multiple breaking changes, improved VM and infrastructure handling, enhanced testing, and support for new features like Node Auto Placement and extended VM configuration options. The release also includes dependency upgrades, improved caching, and stability fixes.</li>
  <li><a href="https://github.com/containerd/containerd/releases/tag/v2.3.0-beta.0"><strong>containerd v2.3.0-beta.0</strong></a>: marks the next minor release aligned with Kubernetes cadence and introduces LTS support, improved CRI functionality, enhanced image handling (including EROFS support), expanded Node Resource Interface capabilities, and runtime improvements such as updated cgroup stats and OOM handling. The release also includes broad dependency updates and new plugin capabilities.</li>
  <li><a href="https://github.com/grpc/grpc/releases/tag/v1.80.0-pre1"><strong>gRPC v1.80.0-pre1</strong></a>: a pre-release focused on incremental improvements, refinements, and bug fixes in the gRPC core.</li>
  <li><a href="https://github.com/kubernetes/kops/releases/tag/v1.35.0"><strong>kOps v1.35.0</strong></a>: introduces improvements such as warm pool enhancements, dependency upgrades (including Go and etcd-manager), networking and bootstrap fixes, and updated Kubernetes component integrations. Patch releases <a href="https://github.com/kubernetes/kops/releases/tag/v1.34.2"><strong>v1.34.2</strong></a>, <a href="https://github.com/kubernetes/kops/releases/tag/v1.33.2"><strong>v1.33.2</strong></a>, and <a href="https://github.com/kubernetes/kops/releases/tag/v1.32.4"><strong>v1.32.4</strong></a> provide backported fixes, dependency bumps, Kubernetes component updates, and stability improvements across earlier supported versions.</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></feed>