Jan Chaloupka
2648749eb8
refactor(TestPodLifeTime): inline pod creation in each unit test to avoid accidental pod spec updates
2025-12-10 15:45:10 +01:00
Jan Chaloupka
ff43002060
refactor(TestPodLifeTime): inline pod creation in each unit test to avoid accidental pod spec updates
2025-12-10 15:43:07 +01:00
Jan Chaloupka
4f42a7ae9b
refactor(TestPodLifeTime): consolidate defaults when building a test pod with RS owner reference
2025-12-10 15:34:48 +01:00
Jan Chaloupka
7d84b68556
refactor(TestPodLifeTime): consolidate defaults when building a test pod
2025-12-10 15:29:12 +01:00
Jan Chaloupka
5b4719634c
refactor(TestPodLifeTime): the default pod namespace will work the same way as the 'dev' one
2025-12-10 15:29:03 +01:00
Jan Chaloupka
94a0fbdcbb
refactor(TestPodLifeTime): inline node creation in each unit test to avoid accidental node spec updates
2025-12-10 15:28:57 +01:00
Jan Chaloupka
bbc3eef1c9
refactor(TestPodLifeTime): replace test.GetReplicaSetOwnerRefList with test.SetRSOwnerRef
...
To make the assigment shorter and unified
2025-12-10 15:28:51 +01:00
Jan Chaloupka
3a3e72e9c2
refactor(TestPodLifeTime): consolidate all owner references
...
test.GetReplicaSetOwnerRefList produces the same value everything it's
invoked.
2025-12-10 15:28:45 +01:00
Jan Chaloupka
16b9311e9e
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:13:23 +01:00
Jan Chaloupka
1a61470e81
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:13:14 +01:00
Jan Chaloupka
c02779b6a5
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:13:09 +01:00
Jan Chaloupka
ff6363692c
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:13:04 +01:00
Jan Chaloupka
34540c3c95
refactor(TestPodLifeTime): have a pod fully created through BuildTestPod without any edits
2025-12-10 14:13:00 +01:00
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
Kubernetes Prow Robot
db6d460677
Merge pull request #1764 from abelfodil/master
...
Fix "Current requires cgo or $USER set in environment" error
2025-11-15 00:25:38 -08:00
Anes Belfodil
237d9c1a7b
fix: provide USER env var to correctly initialize tracing
...
This is done to prevent "Current requires cgo or $USER set in environment" error during
tracing initialization.
2025-11-15 01:40:08 -05:00
Amir Alavi
06cab8e2aa
fix: pod resource calculation to consider native sidecars
...
previously, descheduler code had copied an old version of PodRequestsAndLimits which does not consider native sidecars
it will now rely on resourcehelper libs, which will continue to get upstream updates
Signed-off-by: Amir Alavi <amiralavi7@gmail.com >
2025-11-01 10:48:00 -04: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
Simone Tiraboschi
3a608a590a
feat(eviction): add annotations to eviction requests for observability
...
Although eviction requests (policy/v1) are not persisted long term,
their API still implements the full metav1.ObjectMeta struct. While
name and namespace refer to the pod being evicted, eviction requests
can still carry annotations.
This change adds annotations to descheduler-initiated evictions,
including the requester, reason, and the strategy or plugin that
triggered them.
While these details are already logged by the descheduler, exposing them
as annotations allows external webhooks or controllers to provide
clearer context about each eviction request, both for tracking and
prioritization purposes.
Signed-off-by: Simone Tiraboschi <stirabos@redhat.com >
2025-10-13 12:49:03 +02:00
S J Tharun
7d6f6fedec
fix gofmt error
2025-10-13 08:29:27 +05:30
S J Tharun
3033aec6a0
descheduler: handle single-node clusters gracefully
2025-10-11 07:53:41 +05:30
Emin Aktas
d47e077897
fix: correct comment for HaveNoEvictionAnnotation
2025-09-20 12:53:56 +03: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
d0548b75d7
TestSortPodsBasedOnPriorityLowToHigh: check the whole sorted list of pods
2025-07-24 12:48:03 +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