Last Week In Kubernetes Development

Subscribe
Archives
September 25, 2025

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:
Powered by Buttondown, the easiest way to start and grow your newsletter.