LWKD: Week Ending April 26, 2026
LWKD: Week Ending April 26, 2026
Developer News
The AI Conformance subproject has moved to the SIG Architecture mailing list; contributors should join sig-architecture@kubernetes.io for future AI Conformance meeting invites and announcements.
There is an active discussion on the AI usage policy's interaction with GitHub Copilot and CLA mechanics; contributors using Copilot-generated commits should review the thread before submitting PRs.
Release Schedule
Kubernetes v1.36: ハル (Haru) has been released last week along with Kubernetes v1.33.11, v1.34.7, and v1.35.4 patches.
Kubernetes 1.33 entered maintenance mode on Apr 28, 2026.
KEP of the Week
KEP-4781: Restarting kubelet does not change pod status
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.
KEP-4781 is currently in the Alpha stage, with the feature implemented behind the ChangeContainerStatusOnKubeletRestart 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.
Other Merges
- Fixed kubelet failure starting on ZFS due to missing cadvisor plugin.
- Fix regression in kubectl resource printing on bigger data sets (100+ rows).
- Fixed a bug where Pod
.status.resourceClaimStatusescould flap between partial lists of claims when multiple claims were used in the pod. - kubeadm: etcd cluster status checks now use a quorum approach instead of requiring all members to be healthy, so the check won't fail if there are sufficient healthy voting members.
- kubeadm: fix MemberPromote to skip the etcd promote API call when the member is already a voting member, avoiding unnecessary retries and timeout.
- kubeadm: preflight port checks now bind to the configured component address (via
localAPIEndpoint.addressor--bind-addressextraArgs) instead of all interfaces, for kube-apiserver, kube-scheduler, kube-controller-manager, and etcd. - HorizontalPodAutoscaler resources now generate
metadata.generationandstatus.observedGenerationfields. - Improved error reporting when invoking
kubectl exec. - kube-apiserver now validates the
--advertise-addressIP when using--endpoint-reconciler-typemaster-countorlease, ensuring the IP can be persisted to anEndpointsAPI object. - Fixed duplicated mount arguments in log string output from
MakeMountArgsSensitiveWithMountFlags. - kubeadm: added the
kubeproxydaemonsetpatch target to allow patching the kube-proxy DaemonSet duringkubeadm initandkubeadm upgrade, consistent with the existingcorednsdeploymentpatch target. - Kubelet now enforces explicit HTTP method restrictions for logs-related endpoints: read-only server endpoints reject non-GET methods with 405, and NodeLogQuery allows only GET and POST.
- Deprecated
MultiLock,UnknownLeader, andConcatRawRecordin the client-go leader electionresourcelockpackage. - The eviction API now includes structured
CauseTypevalues in PodDisruptionBudget-relatedForbiddenerrors, so clients can distinguish PDB invalid-state errors without string-matching on the message. kubectl get crdnow displays additional columns — GROUP, SCOPE, VERSIONS, and CREATED AT — providing at-a-glance visibility into each CRD's API group, scope, served versions, and creation timestamp.- Fixed
kubectl get storageclassto show only the effective default StorageClass as(default)when multiple StorageClasses have the default annotation. - Image volume validation now rejects empty
image.referencefields in Pod templates across Deployment, StatefulSet, DaemonSet, Job, and similar resources. - Fixed CronJob controller failing to adopt existing Jobs due to incorrectly using the empty namespace from the JobTemplate.
- Fixed a v1.35 regression where StatefulSets with Parallel pod management incorrectly counted unavailable pods from older revisions against the
maxUnavailablebudget. - Added three Pod cluster event subtypes to the scheduler framework —
AssignedPod,UnscheduledPod, andTargetPod— allowing plugins to register only for the specific pod events they need, improving performance. - Removed the GA feature gate
AnyVolumeDataSource, locked and enabled since v1.33. - Fixed stale remote HNS endpoint cleanup on Windows when a pod IP is reused across nodes in L2Bridge networks, preventing DNS timeouts from traffic being routed to the wrong node.
- Removed the
--concurrent-service-syncskube-controller-manager flag, which has been a no-op since v1.31. - Removed
KubeletMinVersiongate from the DRA multiple ResourceClaims e2e test, as the feature is now sufficiently available.
Version Updates
- golang.org/x/net to v0.53.0
- etcd SDK to v3.6.10, and etcd image also to v3.6.10
Subprojects and Dependency Updates
- cluster-api v1.13.1: expands Kubernetes support to v1.36, includes dependency bumps, adds testing for Kubernetes v1.36, and minor documentation updates
- cluster-api-provider-vsphere v1.16.0: introduces v1beta2 API, deprecates v1beta1, removes v1alpha3/v1alpha4, enables controller rate limiting and priority queues, improves cache and scale performance, includes multiple breaking changes
- kubebuilder v4.14.0: updates scaffold upgrade workflows, enhances Helm plugin with RBAC restructuring and multi-namespace support, adds multiple controllers per GVK, improves security in CI workflows
- kubespray v2.31.0: sets Kubernetes v1.35 as default, removes cgroup v1 support by default, drops ingress-nginx and Kubernetes Dashboard, improves validation and upgrades core components
- prometheus v3.11.3: fixes multiple security issues including OAuth secret exposure, remote-read vulnerabilities, and XSS in the UI; also v3.5.3
- containerd api v1.11.0: adds transfer types for filesystem copy, introduces shim bootstrap protocol, enhances sandbox API
- cluster-autoscaler-chart v9.57.0: updates Helm chart for scaling Kubernetes worker nodes
Shoutouts
- 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.