github kubernetes-sigs/kueue v0.19.2

one hour ago

Changes since v0.19.1:

Actions Required Before Upgrading

(No, really, you MUST read this before you upgrade)

  • Minor releases: Review the .0 release notes for each new minor version you cross; see: v0.18.0, v0.19.0.
  • Patch releases: Review the patch release notes leading up to this version, but only within this minor release line; see: v0.19.1.

Changes by Kind

Feature

  • TAS: Reduced CPU time and memory allocations for snapshot creation by reusing cached topology trees when scheduling-relevant Node data is unchanged. Controlled by the TASCacheTopologyTree feature gate, which is Alpha and disabled by default. (#14639, @tenzen-y)
  • WorkloadAwareScheduler: Delegated TAS node readiness and spec.unschedulable checks to the scheduler-library instead of applying them when building the TAS node cache. Controlled by the SchedulerLibraryIntegration feature gate, which is Alpha and disabled by default. (#14613, @alien1403)

Bug or Regression

  • AFS: Fixed entry-penalty accounting leaks that could inflate LocalQueue fair-sharing usage when a Workload was re-admitted or exited before settlement. (#14153, @apullo777)
  • DRA: Fixed a bug where a negative extended-resource request quantity (reachable only when the WorkloadValidateResourcesAreNonNegative validation is disabled, or on a Workload created before that validation existed) could be merged as a negative DRA quota charge, silently offsetting a legitimate charge on the same logical resource. Negative extended-resource requests are now dropped the same way zero-valued ones already are. (#14655, @pujitha24)
  • DRA: Fixed quota undercount when two extended resource names sharing a deviceClassMappings key were requested by different containers in the same PodSet. (#14200, @pujitha24)
  • FairSharing: Collapsed the per-candidate FairSharing preemption log into one entry per ClusterQueue and serialize its DominantResourceShare values, reducing scheduler log volume at verbosity 4. (#14348, @venuchitta)
  • FairSharing: skip the FairSharing preemption tournament when the preemptor's dominant resource share is +Inf, since no candidate can be preempted, avoiding wasted per-candidate evaluation and its V(4) log volume. (#14671, @venuchitta)
  • Importer: Fixed a bug where the Pod importer picked a single ResourceFlavor for the whole Pod, so Pods whose resources map to different flavors could be imported with a wrong flavor assignment. Flavors are now resolved per requested resource. (#14579, @mszadkow)
  • JobFramework: Fixed ancestor resolution to verify that each controller ownerReference's UID matches the referenced object. Previously an object whose ownerReference named a Kueue-managed ancestor with a stale or mismatched UID was treated as managed by that ancestor and was skipped by Kueue (not suspended/gated and no Workload created). (#14658, @vladikkuzn)
  • LeaderWorkerSet: Fixed a bug where Pods of a LeaderWorkerSet admitted before the queue-name write moved into the LWS webhook could stay permanently SchedulingGated after an upgrade, eventually deactivating the Workload. Kueue now sets kueue.x-k8s.io/queue-name on LeaderWorkerSet Pods when adopting them and reconciles it on already-adopted gated Pods. (#14602, @anguszzzz)
  • MPIJob: Fixed TAS defaulting for runLauncherAsWorker jobs with missing or additional replica-spec entries, preventing a webhook panic and preserving rank-based topology placement. (#14527, @thc1006)
  • MultiKueue: Fixed a bug where a stale status.nominatedClusterNames could cause Server-Side Apply field manager conflicts with external dispatchers. Kueue now clears the field through a MutatingAdmissionPolicy when a Workload is admitted or evicted. (#14643, @vic-comm)
  • MultiKueue: Fixed watch establishment to prevent timeouts from blocking indefinitely on delayed watch responses. (#14550, @Dasmat13)
  • Observability: Fixed a bug where the kueue_pod_scheduling_gate_removal_seconds metric was missing the replica_role label (leader, follower, or standalone) carried by the other Kueue metrics. (#14488, @gangadhar-res)
  • PodGroup integration: Fixed a bug where a Pod could bypass ClusterQueue quota by setting kueue.x-k8s.io/pod-group-name to another Workload's name. Kueue now only adopts Workloads created by the pod-group framework (stamped with kueue.x-k8s.io/is-group-workload), and no longer finalizes a foreign Workload that merely shares the pod group name, which previously marked it Finished and released its quota while its pods were still running. (#14630, @vladikkuzn)
  • RayJob, RayCluster, RayService, and SparkApplication: Fixed a bug where removing the kueue.x-k8s.io/queue-name label from an unsuspended job was accepted, so the job stopped being managed by Kueue while its pods kept running and its resources were no longer counted against quota. Removing the label is now rejected, both from an unsuspended job and from a suspended job in a namespace with a default LocalQueue. Controlled by the ValidateRayAndSparkJobUpdates feature gate, which is Beta and enabled by default. (#14666, @ivnovakov)
  • Scheduling: Fix preemption thrashing/loops caused by desynchronized eviction completion times by prioritizing preemptor workloads at the head of the scheduling queue. This is guarded by the PrioritizePreemptorWorkloads Alpha feature gate, disabled by default. (#14682, @Nilsachy)
  • TAS: Fixed a bug where cross-flavor TAS usage was matched against topology domains a ResourceFlavor does not hold, adding redundant per-node work and V(3) log lines to every scheduling cycle. (#14174, @venuchitta)
  • TAS: Fixed a bug where node replacement treated sibling topology domains with a common string prefix as the same domain. (#14452, @tomsen02)
  • TAS: Fixed a bug where replacing an unhealthy node could assign a workload to a node already claimed by another workload in the same scheduling cycle, leaving its pod permanently Unschedulable until the PodsReady timeout evicted it. (#14647, @varunsyal)
  • VisibilityOnDemand: Fixed a bug where the PositionInLocalQueue on the ClusterQueue pendingworkloads was being inflated when two LocalQueues in different namespaces share the same name (for example, the auto-created default LocalQueue). (#14435, @pujitha24)
  • VisibilityOnDemand: Fixed a panic in the pending-workloads endpoints when prebuilt Workloads (BYOW) w/o priority are created (#14418, @thc1006)
  • WaitForPodsReady: Fixed a bug where the kueue_ready_wait_time_seconds, kueue_admitted_until_ready_wait_time, kueue_local_queue_ready_wait_time_seconds and kueue_local_queue_admitted_until_ready_wait_time_seconds metrics were emitted after failure recovery, skewing the metric towards longer wait times. (#14638, @kshalot)

Don't miss a new kueue release

NewReleases is sending notifications on new releases.