1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 21:31:18 +01:00
Commit Graph

41 Commits

Author SHA1 Message Date
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
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
5cbaf9c2f7 Update v1alpha1 api registration implementation. 2017-08-10 14:15:11 -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
81b37707df Fix a sentence. 2017-08-07 11:10:41 -04:00
Avesh Agarwal
3b012db6ef Update generated types files. 2017-08-06 16:05:34 -04:00
Avesh Agarwal
a36e9f2de8 Update generated conversion files. 2017-08-06 16:04:33 -04:00
Avesh Agarwal
a6b75a2fd5 Fix compilation issue by importing time. 2017-08-06 16:02:13 -04:00
Avesh Agarwal
718efe69e1 Move ReschedulingInterval to rescheduler's configuration out of
rescheduler's policy.
2017-08-06 15:58:30 -04:00
Avesh Agarwal
d1023e0d00 Update doc.go in api and apis v1alpha1 packages to remove open-api tag. 2017-08-05 16:34:45 -04:00
Avesh Agarwal
e8b4c67e27 Fix regiserting default functions. 2017-08-05 16:24:51 -04:00
Avesh Agarwal
b58be3318b Create autogenerated default function files. 2017-08-05 16:23:09 -04:00
Avesh Agarwal
7e22d01692 Create autogenerated deep copies files. 2017-08-05 16:04:29 -04:00
Avesh Agarwal
ed21529915 Auto generated conversion files. 2017-08-05 15:51:24 -04:00
Avesh Agarwal
c4c303e5b5 Add type.generated.go generated file for pkg/api/v1alpha1. 2017-08-05 09:34:04 -04:00
Avesh Agarwal
2caa5ed1de Create doc.go files for auto generated files. 2017-08-05 00:29:20 -04:00
Avesh Agarwal
1d184448fc Update group name. 2017-08-05 00:26:05 -04:00
Avesh Agarwal
6178d99993 Modify percentage type to float64 2017-08-04 14:05:14 -04:00
Avesh Agarwal
b2bfb0e24f Add number of nodes thershold to node utilization strategies. 2017-08-04 14:01:55 -04:00
Avesh Agarwal
79985395d5 Update rescheduler's implementation. 2017-08-04 11:55:20 -04:00
Avesh Agarwal
b9e60d8030 Implment reading of rescheduler's policy. 2017-08-04 11:11:55 -04:00
Avesh Agarwal
02382b61f7 Update rescheduler strategies types. 2017-08-04 09:59:40 -04:00
Avesh Agarwal
198dfc8a2e Update rescheduler policy version implementation. 2017-07-29 15:14:00 -04:00
Avesh Agarwal
e715d5718a Implement defaulting of policy functions. 2017-07-29 11:42:35 -04:00
Avesh Agarwal
0290142ed5 Implement policy's versioned registration. 2017-07-29 11:42:11 -04:00
Avesh Agarwal
eba9f00816 Add policy's v1alpha1's types. 2017-07-29 11:41:48 -04:00