Commit Graph
60 Commits
Author SHA1 Message Date
Jan Chaloupka 87182c5e8f refactor(TestPodAntiAffinity): inline p3 2025-12-15 13:51:58 +01:00
Jan Chaloupka 2765e31048 refactor(TestPodAntiAffinity): inline p2 2025-12-15 13:51:00 +01:00
Jan Chaloupka 87f675a2cd refactor(TestPodAntiAffinity): inline p1 2025-12-15 13:48:01 +01:00
Jan Chaloupka a400a66d51 refactor(TestPodAntiAffinity): create dedicated builders for p1-p4 and nonEvictablePod 2025-12-15 13:43:11 +01:00
Jan Chaloupka fa427a2b37 refactor(TestPodAntiAffinity): deduplicate setting Labels for foo1-bar1 2025-12-15 13:38:58 +01:00
Jan Chaloupka 90672630da refactor(TestPodAntiAffinity): deduplicate setting Labels for foo-bar 2025-12-15 13:37:55 +01:00
Jan Chaloupka 6a00214457 refactor(TestPodAntiAffinity): deduplicate setPodAntiAffinity for foo1-bar1 2025-12-15 13:36:27 +01:00
Jan Chaloupka 9413b0c654 refactor(TestPodAntiAffinity): deduplicate setPodAntiAffinity for foo-bar 2025-12-15 13:34:05 +01:00
Jan Chaloupka 3072a59ea0 refactor(TestPodAntiAffinity): ensure nonEvictablePod is created only through apply argument 2025-12-15 13:25:04 +01:00
Jan Chaloupka 0e56823865 refactor(TestPodAntiAffinity): ensure p11 is created only through apply argument 2025-12-15 13:24:09 +01:00
Jan Chaloupka ea80f7d307 refactor(TestPodAntiAffinity): ensure p10 is created only through apply argument 2025-12-15 13:23:46 +01:00
Jan Chaloupka 6638b976ad refactor(TestPodAntiAffinity): ensure p9 is created only through apply argument 2025-12-15 13:23:10 +01:00
Jan Chaloupka 116385718f refactor(TestPodAntiAffinity): ensure p8 is created only through apply argument 2025-12-15 13:22:35 +01:00
Jan Chaloupka 5ad695166a refactor(TestPodAntiAffinity): ensure p7 is created only through apply argument 2025-12-15 13:22:12 +01:00
Jan Chaloupka d5e0ec597f refactor(TestPodAntiAffinity): ensure p6 is created only through apply argument 2025-12-15 13:21:32 +01:00
Jan Chaloupka 4b86cdd31a refactor(TestPodAntiAffinity): ensure p5 is created only through apply argument 2025-12-15 13:20:53 +01:00
Jan Chaloupka 99527292e0 refactor(TestPodAntiAffinity): ensure p4 is created only through apply argument 2025-12-15 13:20:06 +01:00
Jan Chaloupka cf79af6fba refactor(TestPodAntiAffinity): ensure p3 is created only through apply argument 2025-12-15 13:19:38 +01:00
Jan Chaloupka da55c779f2 refactor(TestPodAntiAffinity): ensure p2 is created only through apply argument 2025-12-15 13:18:50 +01:00
Jan Chaloupka c5b9debe56 refactor(TestPodAntiAffinity): ensure p1 is created only through apply argument 2025-12-15 12:57:19 +01:00
Jan Chaloupka 18f847bbe8 refactor(TestPodAntiAffinity): create buildTestPodForNode1 to deduplicate nodeName1 2025-12-15 12:54:42 +01:00
Jan Chaloupka 6e753ac5fb refactor(TestPodAntiAffinity): create buildTestPod helper to deduplicate 100 and 0 literals 2025-12-15 12:52:02 +01:00
Jan Chaloupka b797ca6ba2 refactor(TestPodAntiAffinity): inline node2, node3, node4, and node5 2025-12-15 12:48:50 +01:00
Jan Chaloupka 4ffabad669 refactor(TestPodAntiAffinity): create buildTestNode1 and inline node1 2025-12-15 12:45:07 +01:00
Jan Chaloupka bba62ccb93 refactor(TestPodAntiAffinity): extract setNodeMainRegionLabel helper 2025-12-15 12:40:46 +01:00
Jan Chaloupka 1f856595f5 refactor(TestPodAntiAffinity): add nodeName constants
refactor(TestPodAntiAffinity): replace node.Name with nodeName constants
2025-12-15 12:36:23 +01:00
Jan Chaloupka 993162dd44 refactor(TestPodAntiAffinity): replace test.BuildTestNode with buildTestNode helper 2025-12-15 12:30:30 +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 2cce141feb Improves the validation logic in the plugins
Signed-off-by: googs1025 <googs1025@gmail.com>
2025-08-07 17:21:01 +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
Amir Alavi 48aede9fde update license to year 2025
Signed-off-by: Amir Alavi <amiralavi7@gmail.com>
2025-01-02 13:36:59 -05: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
Jan Chaloupka 0901cb18bf NewPodEvictor: drop nodes parameter 2024-06-22 15:08:00 +02:00
googs1025 0e2478ac41 add validation ut 2024-06-13 11:56:33 +08:00
Niki Manoledaki 749e81c51c Check whether pod matches the inter-pod anti-affinity of another Pod in a given Node in NodeFit() (#1356)
* Check if Pod matches inter-pod anti-affinity of other pod on node as part of NodeFit()

* Add unit tests for checking inter-pod anti-affinity match in NodeFit()
* Export setPodAntiAffinity() helper func to test utils

* Add docs for inter-pod anti-affinity in README

* Refactor logic for inter-pod anti-affinity to use in multiple pkgs
* Move logic for finding match between pods with antiaffinity out of framework to reuse in other pkgs
* Move interpod antiaffinity funcs to pkg/utils/predicates.go

* Add unit tests for inter-pod anti-affinity check
* Test logic in GroupByNodeName
* Test NodeFit() case where pods matches inter-pod anti-affinity
* Test for inter-pod anti-affinity pods  match terms, have label selector

* NodeFit inter-pod anti-affinity check returns early if affinity spec not set
2024-03-12 19:50:03 -07: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
Amir Alavi 333b5cfbb6 bump log level for processing info 2023-06-16 08:39:05 -04:00
Amir Alavi f5a7f716b3 use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity (#1163)
* use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity

Signed-off-by: Amir Alavi <amiralavi7@gmail.com>

* workaround in topologyspreadconstraint test to ensure that informer's index returns pods sorted by name

---------

Signed-off-by: Amir Alavi <amiralavi7@gmail.com>
2023-06-15 23:30:19 -07:00
10hin 877d9b18ee pod anti-affinity check among nodes (#1033)
* pod anti-affinity check among nodes

* avoid pod equality check with UID field

also add node equality check with Name for short-cut

* add test case for anti-affinity violation among different node

* reduce ListPodsOnANode call

* fix old code

* apply gofumpt -w -extra

move klog/v2 import entry to bottom according to master code
2023-06-05 05:21:25 -07: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
Lucas Severo Alves 137f3b20dc add v1alpha2 registry based conversion (#1006)
* add v1alpha2 registry based conversion

* test defaults, set our 1st explicit default

* fix typos and dates

* move pluginregistry to its own dir

* remove unused v1alpha2.Namespace type

* move migration code folders, remove switch

* validate internalPolicy a single time

* remove structured logs

* simplify return

* check for nil methods

* properly check before adding default evictor

* add TODO comment

* bump copyright year
2023-01-17 08:10:34 -08:00
Amir Alavi 923921a1aa update license year by running make gen
Signed-off-by: Amir Alavi <amiralavi7@gmail.com>
2023-01-04 13:09:50 -05:00