Skip to content

Releases: kubernetes-sigs/scheduler-plugins

v0.28.9

15 Apr 07:16
a5e854b
Compare
Choose a tag to compare

🎉 scheduler-plugins v0.28.9 is released!


New Images

  • registry.k8s.io/scheduler-plugins/kube-scheduler:v0.28.9
  • registry.k8s.io/scheduler-plugins/controller:v0.28.9

Changes by Kind

Feature

  • Adds ability to change NodeSelector, affinity, and tolerance to Helm Chart. (#697, @mochizuki875)
  • Introduce new Scoring plugin called SySched that will rank feasible nodes based on the relative risks of pods' system call usage. (#568, @salmanyam)
  • Performance fix to eliminate unnecessary re-queue actions in coscheduling plugin (#700, @Huang-Wei)
  • Release helm chart as artifact (#692, @zwpaper)

Bug or Regression

Other (Cleanup or Flake)

  • +kubebuilder:metadata:annotations is recommended but no longer mandatory to be defined in CRD types.go (#699, @Huang-Wei)
  • Bump k8s deps to v1.28.8

v0.27.8

17 Nov 18:00
51aeff6
Compare
Choose a tag to compare

🎉 scheduler-plugins v0.27.8 is released!


New Images

  • registry.k8s.io/scheduler-plugins/kube-scheduler:v0.27.8
  • registry.k8s.io/scheduler-plugins/controller:v0.27.8

Changes by Kind

Highlights

One major change completed in this release is #485 which migrates from typed client to generic controller-runtime client.

  • Impact to end-users: N/A
  • Impact to developers:
    • for CR object's manipulation, new plugin's development should stick to current codebase convention to use controller-runtime's client or informer
    • for core API object's manipulation, esp. Pods and Nodes, it's still recommended to read/watch from frameworkHandle's sharedInformerFactory; for other core API objects, it's up to plugin developers to choose which client to use
    • ⚠️ generated typed client/informer under pkg/generated will be removed after 3 releases (v0.30.x). External repos that vendor this repo's typed generation code should either generate typed client/informer themselves or start migrating to generic controller-runtime client. Updated: generated typed client/informer libs will still be maintained rather than removal due to demands from external community like kubeflow.

Documentation

Bug or Regression

  • Fix findSuitableCombination calculation logic for selecting a combination when it contains NUMA nodes without memory modules (#627, @283713406)
  • Fix incorrect score calculation for NodeResourceTopology LeastNUMANodes scoring strategy when NUMA nodes ids are not sorted. (#623, @PiotrProkop)

Other (Cleanup or Flake)

  • Bump go version to 1.20 and k8s deps to 1.27 (#608, @Huang-Wei)
  • Fixing minor bugs:
    • correctly printing the value of a variable instead of the type of the value of a variable
    • removing unnecessary intermediate variable assignment (#612, @knarayan)
  • Migrate coscheduling to use controller-runtime client (#652, @Huang-Wei)
  • Migrate appGroup and networkTopology client to ctrl runtime (#522, @zwpaper)
  • Migrate noderesourcetopology to ctrl runtime client (#655, @zwpaper)
  • Migrate elasticquota/capacityscheduling to controller-runtime (#665, @Huang-Wei)

Uncategorized

  • Add a new coscheduling plugin argument podGroupBackoffSeconds to configure backoff timer for failed PodGroup. User needs to explicitly specify a positive integer to enable this feature. (#559, @KunWuLuan)
  • Bump builder image to go1.20 (#611, @zwpaper)
  • Bump k8s deps to 1.27.6 (#639, @zwpaper)

🎉 Thanks everyone who contributed to this release!

v0.26.7

26 Jul 18:39
fb9bf41
Compare
Choose a tag to compare

🎉 scheduler-plugins v0.26.7 is released!


New Images

  • registry.k8s.io/scheduler-plugins/kube-scheduler:v0.26.7
  • registry.k8s.io/scheduler-plugins/controller:v0.26.7

Changes by Kind

Feature

  • Trimaran: implementation for low-risk overcommitment scheduler plugin. (#412, @atantawi)
  • Add new DiscardReservedNodes cache type for NodeResourceTopologyPlugin. (#504, @PiotrProkop)
  • Migrate ElasticQuota to use controller-runtime controllers (#527, @nayihz)
  • Update LeastNUMANodes ScoringStrategy for NodeResourceTopologyMatch to take distance between topology zones into consideration. (#500, @PiotrProkop)
  • Add a new coscheduling plugin argument podGroupBackoffSeconds to configure backoff timer for failed PodGroup. User needs to explicitly specify a positive integer to enable this feature. (#559, @KunWuLuan)

Bug or Regression

  • Upgrade the controller image version of the all-in-one.yaml. (#555, @tenzen-y)

Other (Cleanup or Flake)

  • Delete kubeConfig/incluster/masterUrl options in controller. Implemented --worker option. (#569, @nayihz)
  • Nodetopologymatch: track only pods with exclusive resources. Reduces churn and improves the resync latency. (#590, @ffromani)
  • Remove the PostBind implementation from the coscheduling plugin. (#554, @nayihz)
  • Kubernetes dependency bumped to v1.26.7. (#601, @PiotrProkop)

🎉 Thank you to everyone who contributed to this release!

v0.25.7

08 Mar 21:43
3d7104e
Compare
Choose a tag to compare

🌷 scheduler-plugins v0.25.7 images are available at registry.k8s.io:

  • registry.k8s.io/scheduler-plugins/kube-scheduler:v0.25.7
  • registry.k8s.io/scheduler-plugins/controller:v0.25.7

Highlighted below are the changes made since the previous release (v0.24.9):

⚠️ BREAKING CHANGES

  • The API Group of CRD PodGroup and ElasticQuota is migrated to scheduling.x-k8s.io. The brand new installations don't need to do anything. Users migrating to this release need to do the following steps:
    • use kubectl replace -f <crds> to ensure new CRDs function well
    • migrate the labels - new label is using a style of *.scheduling.x-k8s.io/<label-name>, e.g., scheduling.x-k8s.io/pod-group
  • Helm chart now leverages --namespace scheduler-plugins --create-namespace to consolidate both Helm release meta info and chart artifacts in the same namespace. Moreover, it enables users to customize the installation namespace.

⭐ Major changes:

  • new ScoringStrategy LeastNUMANodes for NodeResourceTopologyMatch plugin that will score nodes based on how many NUMA nodes are required to satisfy resource requirements of given pod
  • refactoring in NodeResourceTopologyMatch plugin
  • support scheduler component config v1
  • PodGroup and ElasticQuota now serve /status as a standard subresrouce
  • (WIP) migrate to controller-runtime to replace typed clientset
  • bumped the Kubernetes dependency to v1.25.7

🎉 Thank you to everyone who contributed to this release!

v0.24.9

19 Dec 21:02
a64627b
Compare
Choose a tag to compare

☃️ scheduler-plugins v0.24.9 images are available at registry.k8s.io:

  • registry.k8s.io/scheduler-plugins/kube-scheduler:v0.24.9
  • registry.k8s.io/scheduler-plugins/controller:v0.24.9

Below are highlighted changes since the previous release (v0.23):

  • Images point to registry.k8s.io now
  • PluginConfig is now configurable in Helm charts
  • Fine-tuned resource reservation design for NodeResouceTopology scheduler plugin
  • KEP: System Call based scheduling
  • Network cost aware scheduling plugin
  • Bumped the Kubernetes dependency to v1.24.9

🎉 Thank you to everyone who contributed to this release!

v0.23.10

22 Aug 19:19
7d62b92
Compare
Choose a tag to compare

📢 scheduler-plugins v0.23.10 images are available at k8s.gcr.io:

  • k8s.gcr.io/scheduler-plugins/kube-scheduler:v0.23.10
  • k8s.gcr.io/scheduler-plugins/controller:v0.23.10

Below are highlighted changes since the previous release (v0.22):

  • Simplified Helm chart based on scheduler config v1beta3.
  • Optimized coscheduling logic in PreFilter to refrain from early backing off for a PodGroup.
  • Bug fixes and improvements to NodeResourceTopology and TargetLoadPacking plugins.
  • Scheduler config gets bumped to v1beta3.
  • Bumped the Kubernetes dependency to v1.23.10.

🎉 Thank you to everyone who contributed to this release!

v0.22.6

08 Feb 20:41
d4adbb9
Compare
Choose a tag to compare

📢 scheduler-plugins v0.22.6 images are available at k8s.gcr.io:

  • k8s.gcr.io/scheduler-plugins/kube-scheduler:v0.22.6
  • k8s.gcr.io/scheduler-plugins/controller:v0.22.6

Below are highlighted changes since the previous release (v0.21):

  • kubeConfigPath is no longer needs to be configured in plugin arguments #287
  • A new "Preemption Toleration" plugin which provides flexible preemption behavior by introducing a preemption toleration policy in PriorityClass resources #205 #224
  • Improvements on coscheduling plugin:
    • The plugin now proactively activate sibling pods of a PodGroup that improves the performance dramatically #299
    • PostFilter now handles both Filter and PreFilter #307
    • Refine controller reconcile logic on PodGroup status #308
  • Improvements on Helm chart:
    • Now you can easily specify plugin/pluginConfig via Helm CLI arguments #326
    • Create a RoleBinding to obtain delegated authentication #272
  • General enhancements:
    • Register custom resource events for efficient pod enqueuing #317
  • A "Network Aware" scheduler KEP is merged #282
  • Bug fixes:
    • Avoid instantiating core resource's informers duplicately #302
    • Handle best-effort pods NodeResourceTopology's score plugin properly #318
    • Incorrect resource calculation in node resource topology #312
  • Version update:
    • Scheduler config gets bumped to v1beta2 #290
    • Bumped the Kubernetes dependency to v1.22.6

🎉 Thank you to everyone who contributed to this release!

v0.21.6

05 Nov 22:43
418ff2c
Compare
Choose a tag to compare

📢 scheduler-plugins v0.21.6 images are available at k8s.gcr.io:

  • k8s.gcr.io/scheduler-plugins/kube-scheduler:v0.21.6
  • k8s.gcr.io/scheduler-plugins/controller:v0.21.6

Below are highlighted changes since the last release:

  • Introduced a score plugin to be aware of node resource topology #220
  • Optimized the preemption algorithm of capacityscheduling plugin #213
  • Bumped the Kubernetes dependency to v1.21.6
  • All plugins implemented new EventsToRegister() interface #226
  • Structured logging in place #120

v0.20.10

18 Aug 17:52
95d7362
Compare
Choose a tag to compare

📢 scheduler-plugins v0.20.10 images are available at k8s.gcr.io:

  • k8s.gcr.io/scheduler-plugins/kube-scheduler:v0.20.10
  • k8s.gcr.io/scheduler-plugins/controller:v0.20.10

Below are highlighted changes since the last release:

  • ElasticQuota controller is added #212
  • A helm chart is introduced to install scheduler-plugins as a secondary scheduler - install.md

v0.19.9

09 Apr 19:42
896444c
Compare
Choose a tag to compare

scheduler-plugins v0.19.9 images are available at k8s.gcr.io:

  • k8s.gcr.io/scheduler-plugins/kube-scheduler:v0.19.9
  • k8s.gcr.io/scheduler-plugins/controller:v0.19.9

Please refer to install doc to try out the plugins.

Below is a list of available plugins: (🆕 means it's newly introduced in v0.19.9)