LWKD: Week Ending September 21
Week Ending September 21, 2025
Developer News
Ray Wainman shared that he is stepping down as co-lead of SIG Autoscaling, and Adrian Moisey will step into the role alongside Jack Francis.
From the SIG K8s Infra leaders Davanum Srinivas (@dims) and Benjamin Elder (@bentheelder) are stepping down and nominating Ciprian Hacman (@hakman) and Dylan Page (@GenPage) as new chairs.
Release Schedule
Next Deadline: PRR Freeze, October 9
The Kubernetes v1.35 release cycle has officially started and we are now collecting enhancements. Work with your SIG leads to get a lead-opted-in label for your KEPs to get them added to the v1.35 cycle.
Please note that the PRR Freeze is a hard deadline starting v1.35. You can read more about the PRR Freeze deadline here and the exception process here.
Other Merges
- Replace HandleCrash with HandleCrashWithContext in apiserver — adds contextual logging
- Add case-insensitive DNS subdomain validation via k8s-long-name-caseless format — lets long names be validated without forcing lower case
- Enable declarative validation for DeviceClass type in resource APIs and resource APIs (v1, v1beta1, v1beta2) — validation-gen tags + tests.
- Ensure cacher and etcd3 use consistent key schema requirements
- Add RunWithContext variant to EstablishingController — enables context-aware cancellation and richer logging for controller actions
- Use iifname in kube-proxy’s nftables mode for interface matching — improves correct filtering by interface name.
- Add k8s-label-key & k8s-label-value formats for declarative validation — enables using those formats in +k8s:format= tags so label keys/values are validated automatically
- Honor KUBEADM_UPGRADE_DRYRUN_DIR during kubeadm upgrades
- Replace WaitForNamedCacheSync with WaitForNamedCacheSyncWithContext in pkg/controller/ and pkg/controller/garbagecollector
- Add fine-grained metrics to distinguish declarative validationmismatches & panics — includes a validation_identifier label for better diagnostics.
- Add metric for StatefulSet MaxUnavailable violations — tracks when availability drops below spec’s threshold
- Enforce API conventions for Conditions fields — ensures
metav1.Condition
is used and markers/tags follow standard format - Make admission & pod-security admission checks respect emulation version
- Add proper goroutine management in kube-controller-manager to prevent leaks
- Update MutatingAdmissionPolicy storage version to use v1beta1
Promotions
- Graduate ControlPlaneKubeletLocalMode to GA in kubeadm
Deprecated
- Set the deprecated version to 1.34.0 for apiserver_storage_objects metric
- Remove automaxprocs workaround now that Go 1.25 manages GOMAXPROCS automatically
Version Updates
- golangci-lint to v2.4.0
- go language version upgraded to v1.25
- system-validators to v1.11.1
- Bump Go to 1.25.1, update dependencies & distroless iptables images
Subprojects and Dependency Updates
- etcd v3.6.5 fixes lease renewals, snapshot/defrag corruption, removes a flag, builds with Go 1.24.7
- kubebuilder v4.9.0 upgrades deps, updates Helm CRDs, fixes Docker builds and CRD handling
- prometheus v3.6.0 adds PromQL duration funcs, new TSDB blocks API, OTLP/tracing tweaks, bug fixes
- vertical-pod-autoscaler v1.5.0 makes In-Place Updates Beta, deprecates Auto mode, adds metrics, supports K8s 1.34
Don't miss what's next. Subscribe to Last Week In Kubernetes Development: