Commit Graph
59 Commits
Author SHA1 Message Date
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
googs1025 2cce141feb Improves the validation logic in the plugins
Signed-off-by: googs1025 <googs1025@gmail.com>
2025-08-07 17:21:01 +08: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
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
Adam Malcontenti-Wilson f23967a88e feat: add init and ephemeral container checks to PodLifeTime 2024-07-17 14:36:35 +10:00
Emin Aktas f8e128d862 refactor: replace k8s.io/utils/pointer with k8s.io/utils/ptr
Signed-off-by: Emin Aktas <eminaktas34@gmail.com>
2024-07-11 11:36:34 +03: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
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
dongjiang e7980442ef PodLifeTime: update support pods with container status and pods reason (#1330)
* update support podlifetime status

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

* update verify gen

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

---------

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
2024-01-06 17:50:32 +01:00
Kubernetes Prow Robot c2cf78a760 Merge pull request #1334 from xujihui1985/fix/correct-failed-unittest
fix(podlifetime): fix failed unittest
2024-01-05 20:17:55 +01:00
xujihui1985 5092595384 fix: filter pod with age greater than MaxPodLifeTimeSeconds
when the pod createtimestamp is greater than the current time (which is
not make sense in real life, but when doing test with such case,
it is possible), it will convert to a large number if we convert it
to uint, and though it can pass the test, but doesn't make sense.
2024-01-03 20:13:26 +08:00
dongjiang1989 1715f4ff81 update verify gen
Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
2024-01-02 16:11:36 +08:00
xujihui1985 ae7467fb27 fix(podlifetime): fix failed unittest
1. correct desired pod creation time
2023-12-28 20:54:25 +08:00
Amir Alavi 8a06ed32e2 PodLifeTime: consider pods with container status ImagePullBackOff
Signed-off-by: Amir Alavi <amiralavi7@gmail.com>
2023-12-18 13:41:06 -05:00
Amir Alavi 333b5cfbb6 bump log level for processing info 2023-06-16 08:39:05 -04:00
Amir Alavi 9aad51f328 Revert "Merge pull request #1164 from a7i/podlifetime-CrashLoopBackOff"
This reverts commit 699297711a, reversing
changes made to 877d9b18ee.
2023-06-07 21:00:47 -04:00
Amir Alavi 1b976529bc PodLifeTime: support CrashLoopBackOff container state 2023-06-06 18:21:43 -04: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
Lucas Severo Alves da8b145980 use plugin registry and prepare for conversion (#1003)
* use plugin registry and prepare for conersion

* Register plugins explicitly to a registry

* check interface impl instead of struc var

* setup plugins at top level

* treat plugin type combinations

* pass registry as arg of V1alpha1ToInternal

* move registry yet another level up

* check interface type separately
2022-12-01 06:05:54 -08:00