Week Ending June 29, 2025
https://lwkd.info/2025/20250704
Developer News
Kubernetes is auditing and cleaning up inactive GitHub organization members in the first week of July 2025 to ensure active and accurate community representation. Contributors who are still active but not tracked by Dev-Stats can request an exception by commenting on the cleanup issue before the deadline on July 18, 2025.
The KubeCon North America 2025 Project Lightning Talk and Maintainer Track CFP is now open and closes soon on July 7th. Make sure to submit your talks before the deadline!
Ongoing discussion in the Kubernetes community regarding Slack migration is closed now. Since Salesforce has postponed the downgrade. Any future conversations about potential migration will take place later on a more relaxed timeline.
Release Schedule
Next Deadline: Feature Blog Placeholders, July 11th
1.34-alpha.2 was released this week, in case you want to play around with the new version.
Featured PRs
12937: feature(kubectl): support –cpu, –memory flag to kubectl autoscale
This PR introduces support for the --cpu and --memory flags in the kubectl autoscale command; The new flags allow users to specify CPU and Memory metrics for horizontal pod autoscaling; The update supports both percentage-based utilization and fixed resource values, thus streamlining resource management; This PR also deprecates the --cpu-percent flag, following the new approach for defining resource targets.
132351: bugfix(hpa): introduce buildQuantity helper for consistent resource quantity
This PR introduces the buildQuantity helper function in the Horizontal Pod Autoscaler (HPA) controller to ensure consistent handling of resource quantities; Before this change, resource quantities were created inline, which causes inconsistencies in handling CPU and memory metrics; With this update, the buildQuantity function standardizes the process by converting raw memory values to KiB and use BinarySI and handling CPU and other resources in milli-units with DecimalSI; Memory metrics are now displayed correctly in Ki, instead of incorrectly appending the “m” suffix thus improving consistency in metric calculations and display.
131837: Deny pod admission for static pods referencing API objects
Static pods that reference API objects are now denied admission by the kubelet. This is to prevent static pods silently running even after the mirror pod creation fails. Currently, mirror pod reconciliation for static pods which reference API objects will fail. However the pod itself is not denied admission and the node would be silently running the static pod’s container. A new feature gate PreventStaticPodAPIReferences is introduced to enable stricter validation for static pods. Enabling this feature gate ensures that the static pod container is not created when the mirror pod creation fails.
KEP of the Week
KEP-3902: Decouple Taint-based Pod Eviction from Node Lifecycle Controller
This KEP splits the existing NodeLifecycleController into two controllers: NodeLifecycleController (to add taints to unhealthy nodes) and TaintEvictionController (to evict pods from tainted nodes). Previously, both tainting and eviction were handled by a single controller, but the main goal of this change is to separate responsibilities for better clarity, organization, and maintainability. The new TaintEvictionController is created from existing taint-manager code and now runs separately. A feature gate called SeparateTaintEvictionController lets you enable or disable the new setup. From Kubernetes v1.29, the taint-based eviction is still enabled by default, but cluster admins can disable the default TaintEvictionController using the --controllers=-taint-eviction-controller flag in kube-controller-manager if needed.
This KEP is tracked as stable in v1.34.
Other Merges
Commonize filtering of Pods by Owner with all orphans in namespace
Fix validation for Job with suspend=true, and completions=0 to set the Complete condition
DRA: the v1alpha4 kubelet gRPC API is no longer supported
Bug fix for replica set failing to be created when a deployment name is too long
Deprecated package ‘k8s.io/utils/pointer’ replaced with ‘k8s.io/utils/ptr’ for the kube-apiserver
More usages of deprecated function ExtractCommentTags migrated to ExtractFunctionStyleCommentTags
Defunct make vet target removed
New SchedulerAsyncAPICalls feature gate added
Code coverage increased for kubelet_client
Validation error message for required fields simplified by removing redundant messages
Flags added to kube-apiserver to make coordinated leader election timers configurable
SizeBasedListCostEstimate feature gate to allow apiserver to estimate sizes of objects to calculate cost of LIST requests
HPA status now displays memory metrics with proper units
ClusterEvent type moved to staging repo
Code and status moved from pkg/scheduler/framework to staging repo
DRA: the kubelet now also cleans up ResourceSlices in some additional failure scenarios
Objects are transformed prior to storage in SharedInformers if a transformer is provided and WatchList is activated
kubectl debug: label added for debugger pod for making cleanup easier
podSpec validation added during StatefulSet creation
Promotions
StreamingCollectionEncodingToJSON and StreamingCollectionEncodingToProtobuf to GA
WaitForAllControlPlaneComponents to GA
Deprecated
StreamingConnectionIdleTimeout field of the kubelet config deprecated
Version Updates
etcd to v3.6.1
kube-openapi bumped
Shoutouts
Jenny Shu (@Jenny Shu) : A little belated, but I want to give a big shout-out to the 1.34 Enhancements Shadows: Drew Hagen(@Drew Hagen), Faeka Ansari (@Faeka Ansari), Josh Michielsen (@jmickey), Rayan Das (@rayandas), Sean McGinnis (@Sean McGinnis), for all their hard work leading up to Enhancements Freeze last week! Keep up the great work!
via Last Week in Kubernetes Development https://lwkd.info/
July 04, 2025 at 02:49AM