Commit Graph
75 Commits
Author SHA1 Message Date
Kubernetes Prow RobotandGitHub cf59d08193 Merge pull request #751 from HelmutLety/redo_#473
feat: Add DeviationThreshold Paramter for LowNodeUtilization, (Previous attempt - #473 )
2022-03-28 03:53:24 -07:00
HelmutLety 2ea65e69dc feat(LowNodeUtilization): useDeviationThresholds, redo of #473
[751]: normalize Percentage in nodeutilization and clean the tests
2022-03-28 12:35:01 +02:00
Jacob Henner ac3362149b Add RemovePodsViolatingNodeTaints taint exclusion
Add taint exclusion to RemovePodsViolatingNodeTaints. This permits node
taints to be ignored by allowing users to specify ignored taint keys or
ignored taint key=value pairs.
2022-03-27 13:48:40 -04:00
Jan Chaloupka 285523f0d9 RemovePodsViolatingNodeTaints: optionally include PreferNoSchedule taint 2022-03-14 16:46:03 +01:00
babygoat 1529180d70 feat: support eviction of failed bare pods
This patch adds the policy(evictFailedBarePods) to allow the failed
pods without ownerReferences to be evicted. For backward compatibility,
disable the policy by default. Address #644.
2022-01-06 01:07:41 +08:00
Kubernetes Prow RobotandJane Liu L 82201d0e48 Add maxNoOfPodsToEvictPerNamespace policy 2021-12-03 10:58:37 +08:00
Jan Chaloupka 73a7adf572 Drop deprecated flags 2021-11-29 17:12:59 +01:00
Jan Chaloupka 4603182320 Bump go version in go.mod to go1.17 2021-11-29 16:49:35 +01:00
Amir Alavi 0e0e688fe8 Introduce RemoveFailedPods strategy 2021-08-30 14:17:52 -04:00
RyanDevlinandRyan Devlin 41d46d0d3b Working nodeFit feature 2021-05-24 09:03:38 -04:00
Sean Malloy af01b675b0 Update Generated Code
Ran "make gen" using Go 1.16.1. Some changes were merged, but "make gen"
was not run. This fixes the problem.

See below PR for reference:
https://github.com/kubernetes-sigs/descheduler/pull/523
2021-04-01 00:28:20 -05:00
RyanDevlin b5d7219391 Completed evictSystemCriticalPods feature 2021-03-29 23:13:05 -04:00
lixiang 2517268b1f API: Add a new parameter labelSelector to StrategyParameters. 2021-02-26 15:49:00 +08:00
Kubernetes Prow RobotandGitHub 241f1325c9 Merge pull request #481 from damemi/ignore-pvc-pods
Add option to ignore pods with PVCs from eviction
2021-01-26 22:41:40 -08:00
Mike Dame c1a63a557a Add option to ignore pods with PVCs from eviction 2021-01-26 08:47:54 -05:00
lixiang 8ba9cb1df7 Add a parameter to include soft topology spread constraints 2021-01-21 11:33:16 +08:00
Mike Dame 635a40f305 Add Logging field to v1alpha1 componentconfig 2021-01-11 11:21:32 -05:00
lixiang 1303fe6eb9 PodLifeTime: allow custom podStatusPhases 2020-09-11 09:56:45 +08:00
Jan Chaloupka 89541f7545 Deprecate node-selector, max-pods-to-evict-per-node and evict-local-storage-pods flags and promote then to policy v1alpha1 fields 2020-08-21 13:27:40 +02:00
Jan Chaloupka a7c51ffae0 Promote Namespaces field to a pointer 2020-08-13 18:38:46 +02:00
lixiang ae38aa63af StrategyParameters: Add new param ThresholdPriority and ThresholdPriorityClassName 2020-08-07 13:53:29 +08:00
Kubernetes Prow RobotandGitHub d0fbebb77c Merge pull request #337 from damemi/rebase-1.19
Rebase k8s dependencies to 1.19-rc.2
2020-07-28 10:47:47 -07:00
Mike Dame 5bb0389538 Update API scheme registration for 1.19 2020-07-28 10:24:21 -04:00
Jan Chaloupka 11f1333af7 ListPodsOnANode: allow to include/exclude namespaces
Info: field selector is still not properly mocked so it's not possible to unit test it
2020-07-21 15:08:05 +02:00
Jan Chaloupka 5a81a0661b Make DeschedulerStrategy.Params a pointer
To avoid empty params fields when serializing:
  RemoveDuplicates:
    enabled: true
    params: {}
  RemovePodsHavingTooManyRestarts:
    enabled: true
    params:
      podsHavingTooManyRestarts: {}
  RemovePodsViolatingInterPodAntiAffinity:
    enabled: true
    params: {}
  RemovePodsViolatingNodeAffinity:
    enabled: true
    params:
      nodeAffinityType:
      - requiredDuringSchedulingIgnoredDuringExecution
  RemovePodsViolatingNodeTaints:
    enabled: true
    params: {}
2020-05-27 10:31:31 +02:00
Mike Dame c6ff87dbd6 Consider pod image in duplicates strategy
This increases the specificity of the RemoveDuplicates strategy by
removing pods which not only have the same owner, but who also
must have the same list of container images. This also adds a
parameter, `ExcludeOwnerKinds` to the RemoveDuplicates strategy
which accepts a list of Kinds. If a pod has any of these Kinds as
an owner, that pod is not considered for eviction.
2020-05-15 09:37:09 -04:00
Sean Malloy 423ee35846 Add New PodLifeTime Strategy
The new PodLifeTime descheduler strategy can be used to evict pods that
were created more than the configured number of seconds ago.

In the below example pods created more than 24 hours ago will be evicted.
````
apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
  "PodLifeTime":
     enabled: true
     params:
        maxPodLifeTimeSeconds: 86400
````
2020-05-07 23:10:36 -05:00
Mike Dame fa335c782f Switch PodsHavingTooManyRestarts params to pointer 2020-05-06 13:29:05 -04:00
Jan Chaloupka 991eddb691 Turn StrategyParameters.NodeResourceUtilizationThresholds field into a pointer
The field is intended to be omitempty when not set. Without a pointer the strategy
serialized into json string looks like:

```json
strategies:
  LowNodeUtilization:
    enabled: true
    params:
      nodeResourceUtilizationThresholds:
        numberOfNodes: 1
        targetThresholds:
          cpu: 50
          memory: 50
          pods: 20
        thresholds:
          cpu: 50
          memory: 50
          pods: 20
  RemoveDuplicates:
    enabled: true
    params:
      nodeResourceUtilizationThresholds: {}
  RemovePodsViolatingInterPodAntiAffinity:
    enabled: true
    params:
      nodeResourceUtilizationThresholds: {}
  RemovePodsViolatingNodeAffinity:
    enabled: true
    params:
      nodeAffinityType:
      - requiredDuringSchedulingIgnoredDuringExecution
      nodeResourceUtilizationThresholds: {}
  RemovePodsViolatingNodeTaints:
    enabled: true
    params:
      nodeResourceUtilizationThresholds: {}
```

It's preferred to have the following json string instead:
```
strategies:
  LowNodeUtilization:
    enabled: true
    params:
      nodeResourceUtilizationThresholds:
        numberOfNodes: 1
        targetThresholds:
          cpu: 50
          memory: 50
          pods: 20
        thresholds:
          cpu: 50
          memory: 50
          pods: 20
  RemoveDuplicates:
    enabled: true
  RemovePodsViolatingInterPodAntiAffinity:
    enabled: true
  RemovePodsViolatingNodeAffinity:
    enabled: true
    params:
      nodeAffinityType:
      - requiredDuringSchedulingIgnoredDuringExecution
  RemovePodsViolatingNodeTaints:
    enabled: true
```
2020-04-28 15:20:30 +02:00
Mike Dame e7c42794a0 Add RemovePodsHavingTooManyRestarts strategy 2020-04-24 10:48:28 -04:00
Avesh Agarwal 8dc7b475d9 Fix makefile for make gen, and Update hack files and
auto-generated files.
2020-02-07 16:32:55 -05:00
Mike Dame 11044ed89d Run generated scripts 2019-10-21 13:33:39 -04:00
Mike Dame c9e3c63b85 Remove codecgen
Since [1] codecgen has been obsolete.

[1] https://github.com/kubernetes/kubernetes/issues/36120
2019-10-21 13:33:38 -04:00
Mike Dame 5af668e89a Remove old API install patterns 2019-10-12 11:08:46 -04:00
Jan Chaloupka 2e6f14103b Project migrared under kubernetes-sigs, change import path prefix to sigs.k8s.io/descheduler 2019-09-19 14:09:05 +02:00
Shubham Minglani bb25192163 add generated files 2018-02-19 16:21:04 +05:30
Shubham Minglani 40bb490f4c add RemovePodsViolatingNodeAffinity strategy
This commit adds requiredDuringSchedulingIgnoredDuringExecution
for RemovePodsViolatingNodeAffinity strategy.

Also adds unit tests and documentation.
2018-02-19 16:20:59 +05:30
Avesh Agarwal 44752e5e83 Update code and hack dir for kube 1.9 rebase. 2018-01-09 12:41:01 -05:00
Avesh Agarwal 7123f30783 Update auto-generated code. 2018-01-09 11:04:26 -05:00
Avesh Agarwal d634701250 Descheduler related modifications. 2017-09-15 14:13:27 -04:00
Avesh Agarwal 07d24c50c6 Remove auto generated default function file from pkg/api. 2017-08-10 14:22:52 -04:00
Avesh Agarwal 5cbaf9c2f7 Update v1alpha1 api registration implementation. 2017-08-10 14:15:11 -04:00
Avesh Agarwal 46a7de0b50 Clean up install code. 2017-08-10 14:09:39 -04:00
Avesh Agarwal c06c45fdc0 Update v1aplha1 registration update. 2017-08-10 14:01:07 -04:00
Avesh Agarwal 79d783caa9 Undo metav1 api registraton to rescheduler's scheme. 2017-08-07 12:42:12 -04:00
Avesh Agarwal 239121ce17 Update rescheduler's v1alpha1 api code. 2017-08-07 12:32:46 -04:00
Avesh Agarwal 8ffa897b5c Update api install code to use rescheduler's scheme. 2017-08-07 12:32:13 -04:00
Avesh Agarwal 81b37707df Fix a sentence. 2017-08-07 11:10:41 -04:00
Avesh Agarwal 34cf03f106 Update rescheduler's api install to use rescheduler's scheme. 2017-08-06 23:50:11 -04:00
Avesh Agarwal 3b012db6ef Update generated types files. 2017-08-06 16:05:34 -04:00