Jan Chaloupka
ee40f7ff30
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:12:55 +01:00
Jan Chaloupka
cece2ee3cc
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:12:50 +01:00
Jan Chaloupka
fbdf86fdfd
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:12:39 +01:00
Jan Chaloupka
7bfd4088ce
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:12:05 +01:00
Jan Chaloupka
18f61b5e64
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:11:12 +01:00
Jan Chaloupka
769b4fe34a
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:11:07 +01:00
Jan Chaloupka
6ffc7e3975
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:11:03 +01:00
Jan Chaloupka
31af0d8223
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:10:59 +01:00
Jan Chaloupka
0c80f3689d
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:10:53 +01:00
Jan Chaloupka
9722018847
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:10:48 +01:00
Jan Chaloupka
47cfdf7057
refactor(TestPodLifeTime): remove ineffective owner references assignments
...
Pods p5 and p6 already have an owner assigned. Also,
test.GetReplicaSetOwnerRefList() produces the same list of owner references.
2025-12-10 14:08:06 +01:00
Ricardo Maraschini
d9d6ca64e9
feat: enable pod protection based on storage classes
...
this commit introduces a new customization on the existing PodsWithPVC
protection. this new customization allow users to make pods that refer
to a given storage class unevictable.
for example, to protect pods referring to `storage-class-0` and
`storage-class-1` this configuration can be used:
```yaml
apiVersion: "descheduler/v1alpha2"
kind: "DeschedulerPolicy"
profiles:
- name: ProfileName
pluginConfig:
- name: "DefaultEvictor"
args:
podProtections:
extraEnabled:
- PodsWithPVC
config:
PodsWithPVC:
protectedStorageClasses:
- name: storage-class-0
- name: storage-class-1
```
changes introduced by this pr:
1. the descheduler starts to observe persistent volume claims.
1. a new api field was introduced to allow per pod protection config.
1. rbac had to be adjusted (+persistentvolumeclaims).
2025-10-29 11:21:10 +01:00
Amir Alavi
1db6b615d1
[v0.34.0] bump to kubernetes 1.34 deps
...
Signed-off-by: Amir Alavi <amiralavi7@gmail.com >
2025-10-21 09:14:13 -04:00
googs1025
257bd55909
standardize protectionEnabled param
2025-08-19 17:52:54 +08:00
Kubernetes Prow Robot
63ecaec0ef
Merge pull request #1729 from googs1025/validate/improve
...
Improves the validation logic in the plugins
2025-08-15 03:31:07 -07:00
Kubernetes Prow Robot
e5c57a759b
Merge pull request #1603 from googs1025/feature/add_dra_arg
...
feature: add PodsWithResourceClaims parameter in DefaultEvictorArgs PodProtections
2025-08-13 06:57:10 -07:00
googs1025
9c7e01de67
feature: add PodsWithResourceClaims parameter in DefaultEvictorArgs PodProtections
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-08-13 20:35:36 +08:00
googs1025
e5ea03ce75
add ValidateHighNodeUtilizationPluginConfig unit test
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-08-13 17:15:21 +08:00
googs1025
2cce141feb
Improves the validation logic in the plugins
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-08-07 17:21:01 +08:00
googs1025
d9697591d5
add EvictionProtection filed for DefaultEvictorArgs
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-08-04 19:34:16 +08:00
Jan Chaloupka
7380aa6e0a
DefaultEvictor: introduce no-eviction policy
...
NoEvictionPolicy dictates whether a no-eviction policy is prefered or mandatory.
Needs to be used with caution as this will give users ability to protect their pods
from eviction. Which might work against enfored policies. E.g. plugins evicting pods
violating security policies.
2025-07-24 15:47:05 +02:00
Jan Chaloupka
6e9d8891c5
defaultevictor_test.go: replace descheduler.alpha.kubernetes.io/evict literal with evictPodAnnotationKey const
2025-07-24 12:48:00 +02:00
Jan Chaloupka
5cc9e68127
Drop assignment if default test values
2025-07-24 12:04:07 +02:00
Amir Alavi
eadfe4a546
fix: topologyspreadconstraint plugin to not add PodNodeAffinity unless the inclusion policy is honor
2025-07-10 17:42:57 -04:00
Amir Alavi
fbf11df729
fix: topologyspreadconstraint to prefer evictable before sorting domains
...
Sort pods that are above ideal avg based on the criteria that they fit on other nodes that are below avg
Signed-off-by: Amir Alavi <amiralavi7@gmail.com >
2025-07-10 17:42:12 -04:00
Ricardo Maraschini
6e714a2134
chore: stop with no-op default evictor settings
...
we have been carrying these no-op for quite a while now. we should only
set defaults when they are different from what they are being provided
by the user.
2025-07-07 15:31:49 +02:00
Jan Chaloupka
89eab59d82
logger: Align with the previous logger verbosity
2025-06-25 09:27:57 +02:00
Kubernetes Prow Robot
ace001c618
Merge pull request #1655 from googs1025/feature/contextual_logging
...
feature: use contextal logging for plugins
2025-06-25 00:16:29 -07:00
googs1025
33894afe2b
feature: use contextal logging for plugins
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-06-13 19:45:55 +08:00
Martin Tapp
e06443ef40
*1677 Allow Succeeded and Failed states in PodLifeTime
2025-05-23 15:56:37 -04:00
Kubernetes Prow Robot
9f918371a2
Merge pull request #1694 from ingvagabund/plugins-new-context
...
Extend plugin's New with a context.Context
2025-05-19 05:31:14 -07:00
Jan Chaloupka
1974c12e0f
Extend plugin's New with a context.Context
...
The new context.Context can be later used for passing a contextualized
logger. Or, other initialization steps that require the context.
2025-05-19 12:23:44 +02:00
googs1025
b3aeca73db
refactor: separate eviction constraints to constraints.go
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-05-19 18:02:41 +08:00
Kubernetes Prow Robot
d34848086c
Merge pull request #1691 from googs1025/fix/listall
...
fix(example): list only active pod
2025-05-12 10:55:14 -07:00
Kubernetes Prow Robot
9aa6d79c21
Merge pull request #1688 from ingvagabund/plugins-taints-do-not-list-all-pods
...
RemovePodsViolatingNodeTaints: list only pods that are not failed/suceeded
2025-05-12 06:55:18 -07:00
googs1025
7a76d9f0d3
fix(RemovePodsViolatingNodeTaints): list only active pod
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-05-12 21:45:57 +08:00
Kubernetes Prow Robot
71746262b1
Merge pull request #1684 from googs1025/refactor_topology
...
chore: move namespaces filtering logic to New()
2025-05-11 12:29:14 -07:00
Jan Chaloupka
6691720da5
RemovePodsViolatingNodeTaints: list only pods that are not failed/suceeded
...
Listing pods was incorrectly changed to listing all pods during code
refactoring.
2025-05-10 21:12:06 +02:00
googs1025
0a691debfb
feature: sort pods by restarts count in RemovePodsHavingTooManyRestarts plugin
2025-05-09 13:15:38 +08:00
googs1025
fbc875fac1
chore: move namespaces filtering logic to New()
2025-05-07 19:47:30 +08:00
Ricardo Maraschini
35a7178df6
feat: introduce strict eviction policy
...
with strict eviction policy the descheduler only evict pods if the pod
contains a request for the given threshold. for example, if using a
threshold for an extended resource called `example.com/gpu` only pods
who request such a resource will be evicted.
2025-04-09 16:48:32 +02:00
Kubernetes Prow Robot
17b90969cf
Merge pull request #1629 from googs1025/fix_sortDomains
...
fix removepodsviolatingtopologyspreadconstraint plugin sort logic
2025-03-28 09:06:44 -07:00
googs1025
b4b203cc60
chore: add unit test for sortDomains func
2025-03-28 20:58:54 +08:00
googs1025
59d1d5d1b9
making isEvictable and hasSelectorOrAffinity invoked only once
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-03-28 20:57:02 +08:00
Ricardo Maraschini
98e6ed6587
chore: log average and assessed thresholds
...
when calculating the average an applying the deviations it would be nice
to also see the assessed values.
this commit makes the descheduler logs these values when using level 3.
2025-03-28 10:16:20 +01:00
googs1025
4548723dea
fix(removepodsviolatingtopologyspreadconstraint): fix removepodsviolatingtopologyspreadconstraint plugin sort logic
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-03-27 23:49:45 +08:00
Kubernetes Prow Robot
9b9ae9a3be
Merge pull request #1650 from ingvagabund/nodeutilization-deviation-skip-nodes-without-extended-resource
...
[nodeutilization]: skip nodes without extended resource when computing the average utilization
2025-03-20 05:58:31 -07:00
Jan Chaloupka
c22d773200
[nodeutilization] test nodes without extended resource when computing the average utilization
2025-03-20 13:22:28 +01:00
Ricardo Maraschini
95a631f6a5
feat: move classifier to its own package
...
move the classifier to its own package. introduces a generic way of
classifying usages against thresholds.
2025-03-20 11:02:47 +01:00
Ricardo Maraschini
54d0a22ad1
chore: comment the code and simplify some things
...
this commit comments the low and high utilization plugins. this also
simplifies a little bit where it was possible without affecting too
much.
2025-03-20 10:06:45 +01:00