Jan Chaloupka
38f0f15787
chore: make gen
2026-01-04 20:23:13 +01:00
Jan Chaloupka
7ef3673d4c
refactor: inline single-statement apply functions in BuildTestPod calls
2025-12-21 21:41:59 +01:00
Jan Chaloupka
988e0b8868
refactor: replace pod.Spec.Volumes with test.SetHostPathEmptyDirVolumeSource in plugin tests
2025-12-21 21:36:24 +01:00
Jan Chaloupka
fc8ae3b4e8
refactor: replace pod.Spec.Priority with test.SetPodPriority in plugin tests
2025-12-21 21:36:05 +01:00
googs1025
e5ea03ce75
add ValidateHighNodeUtilizationPluginConfig unit test
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-08-13 17:15:21 +08:00
googs1025
33894afe2b
feature: use contextal logging for plugins
...
Signed-off-by: googs1025 <googs1025@gmail.com >
2025-06-13 19:45:55 +08: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
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
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
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
Ricardo Maraschini
87ba84b2ad
feat: refactoring thresholds and usage assessment
...
this commit refactors the thresholds and usage assessment for the node
utilization plugins. both high and low plugins are affected by this
change.
2025-03-19 17:38:41 +01:00
Jan Chaloupka
04ebdbee32
[nodeutilization]: produce node utilization of resources that are listed in the list of resources
2025-03-19 12:35:19 +01:00
Jan Chaloupka
e283c31030
[nodeutilization]: prometheus usage client with prometheus metrics
2025-03-17 16:25:17 +01:00
Kubernetes Prow Robot
be4abe1727
Merge pull request #1614 from ingvagabund/nodeutilization-metrics-source
...
[nodeutilization]: allow to set a metrics source as a string so it can be later extended for exclusive configuration
2025-03-14 01:57:47 -07:00
Jan Chaloupka
e14b86eb8c
[nodeutilization]: allow to set a metrics source as a string so it can be later extended for exclusive configuration
2025-03-13 18:00:27 +01:00
Kubernetes Prow Robot
a4d6119bcd
Merge pull request #1645 from ingvagabund/nodeutilization-refactoring
...
nodeutilization: make the node classification more generic
2025-03-13 03:21:46 -07:00
Jan Chaloupka
57bb31de78
nodeutilization: make the classification more generic
2025-03-12 15:02:22 +01:00
Jan Chaloupka
b935c7d82c
nodeutilization: invoke ValidateLowNodeUtilizationArgs instead of validateLowNodeUtilizationThresholds to make the test more generic
2025-03-11 10:04:39 +01:00
Jan Chaloupka
5bf11813e6
lownodeutilization: evictionLimits to limit the evictions per plugin
...
In some cases it might be usefull to limit how many evictions per a
domain can be performed. To avoid burning the whole per descheduling
cycle budget. Limiting the number of evictions per node is a
prerequisite for evicting pods whose usage can't be easily subtracted
from overall node resource usage to predict the final usage. E.g. when a
pod is evicted due to high PSI pressure which takes into account many
factors which can be fully captured by the current predictive resource
model.
2025-03-07 15:31:02 +01:00
Jan Chaloupka
50dd3b8971
ReferencedResourceList: alias for map[v1.ResourceName]*resource.Quantity to avoid the type definition duplication
2025-03-07 13:13:00 +01:00
Amir Alavi
48aede9fde
update license to year 2025
...
Signed-off-by: Amir Alavi <amiralavi7@gmail.com >
2025-01-02 13:36:59 -05:00
Jan Chaloupka
6567f01e86
[nodeutilization]: actual usage client through kubernetes metrics
2024-11-20 14:30:46 +01:00
Jan Chaloupka
d1c64c48cd
nodeutilization: separate code responsible for requested resource extraction into a dedicated usage client
...
Turning a usage client into an interface allows to implement other kinds
of usage clients like actual usage or prometheus based resource
collection.
2024-11-15 11:23:49 +01:00
Jan Chaloupka
9950b8a55d
nodeutilization: usage2KeysAndValues for constructing a key:value list for InfoS printing resource usage
2024-11-14 14:15:26 +01:00
Kubernetes Prow Robot
af8a7445a4
Merge pull request #1544 from ingvagabund/node-utilization-refactoring-II
...
nodeutilization: evictPodsFromSourceNodes: iterate through existing resources
2024-11-13 22:00:47 +00:00
Kubernetes Prow Robot
5ba11e09c7
Merge pull request #1543 from ingvagabund/node-utilization-refactoring-I
...
nodeutilization: NodeUtilization: make pod utilization extraction configurable
2024-11-13 21:34:47 +00:00
Jan Chaloupka
67d3d52de8
sortNodesByUsage: drop extended resources as they are already counted in
2024-11-13 21:31:02 +01:00
Jan Chaloupka
e9f43856a9
nodeutilization: iterate through existing resources
2024-11-13 15:31:48 +01:00
Jan Chaloupka
e655a7eb27
nodeutilization: NodeUtilization: make pod utilization extraction configurable
2024-11-13 14:21:32 +01:00
Jan Chaloupka
7eeb07d96a
Update nodes sorting function to respect available resources
2024-11-11 16:26:56 +01:00
Jan Chaloupka
89bd188a35
hnu: move static code from Balance under plugin constructor
2024-10-11 16:49:23 +02:00
Jan Chaloupka
e3c41d6ea6
lnu: move static code from Balance under plugin constructor
2024-10-11 16:37:53 +02:00
Jan Chaloupka
e0ff750fa7
Move default LNU threshold setting under setDefaultForLNUThresholds
2024-10-11 16:31:37 +02:00
Kubernetes Prow Robot
0f1890e5cd
Merge pull request #1480 from ingvagabund/omitempty-for-plugin-args
...
Plugin args: tag arguments with omitempty to reduce the marshalled json size
2024-09-02 12:00:56 +01:00
Jan Chaloupka
cbade38d23
[tests] de-duplicate framework handle initialization
2024-08-12 17:05:30 +02:00
Jan Chaloupka
cb0c1b660d
Plugin args: tag arguments with omitempty to reduce the marshalled json size
2024-08-06 15:20:18 +02:00
zhifei92
e60f525ec6
feat: support MaxNoOfPodsToEvictTotal
2024-07-09 14:00:27 +08:00
Jan Chaloupka
18d0e4a540
PodEvictor: turn an exceeded limit into an error
...
When checking for node limit getting exceeded the pod eviction
never fails. Thus, ignoring the metric reporting when a pod fails
to be evicted due to node limit constrains.
The error also allows plugin to react on other limits getting
exceeded. E.g. the limit on the number of pods evicted per namespace.
2024-07-06 20:14:43 +02:00
Amir Alavi
e26f6429a2
feat: pod evictor options
2024-07-05 21:40:55 -04:00
Kubernetes Prow Robot
972d28108a
Merge pull request #1447 from ingvagabund/refactorings
...
PodEvictor: refactoring and preparation for eviction requests
2024-06-25 01:08:44 -07:00
Jan Chaloupka
0901cb18bf
NewPodEvictor: drop nodes parameter
2024-06-22 15:08:00 +02:00
zhifei92
ae15fed7e7
fix(unit-test): add necessary ownerRef to the pod.
2024-06-21 19:12:40 +08:00
Gabriel Tiossi
bb5930eb21
Improve PodEvictor observability through EvictOptions ( #1349 )
...
* feat: profile name for pods_evicted metric
Support new label "profile" for "pods_evicted" metric to allow
understand which profiles are evicting more pods, allowing better
observability
* refactor: evictoptions improved observability
Send profile and strategy names for EvictOptions, allowing Evictors to
access observability information
* cleanup: remove unnecessary evictoption reference
* feat: evictoptions for nodeutilzation
Explicit usage of options when invoking evictPods from the helper
function from nodeutilization for both highnodeutilization and
lownodeutilization
2024-03-02 12:06:05 -08:00
dongjiang1989
1715f4ff81
update verify gen
...
Signed-off-by: dongjiang1989 <dongjiang1989@126.com >
2024-01-02 16:11:36 +08:00
PeterSzegedi
c8d4658277
Make the logged nodeutilization percentages human-readable ( #1294 )
...
* Make percentages human-readable
* Rename the rounding function
* bump easycla
2023-11-27 11:04:19 +01:00
Amir Alavi
359b38a34c
update deprecated sets.String to generic sets
2023-05-11 22:35:44 -04:00
Jan Chaloupka
757661110a
Move framework types under framework/types
2023-03-23 19:00:55 +01:00