Kubernetes Prow Robot
7221fa7613
Merge pull request #1822 from sammedsingalkar09/master
...
Update go dependecies to fix vulnerabilities
2026-02-06 01:52:31 +05:30
Kubernetes Prow Robot
6e33b690d7
Merge pull request #1823 from ingvagabund/prom-client-controller
...
refactor: move prometheus client controller related code under a seperate file
2026-02-05 21:14:33 +05:30
Jan Chaloupka
f4718bf928
refactor(prom client controllers): change the one letter receiver into ctrl
2026-02-05 15:54:49 +01:00
Jan Chaloupka
f149f5a083
refactor: move prometheus client controller related code under a seperate file
2026-02-05 15:42:47 +01:00
Kubernetes Prow Robot
8de50a8a17
Merge pull request #1815 from ingvagabund/new-profile-under-new-descheduler
...
feat(pkg/descheduler): create profiles outside the descheduling cycle
2026-02-05 14:36:35 +05:30
Jan Chaloupka
b214c14793
feat(pkg/descheduler): create profiles outside the descheduling cycle
2026-02-04 20:04:31 +01:00
Kubernetes Prow Robot
fc863ff58d
Merge pull request #1821 from ingvagabund/prom-client-controllers
...
refactor(promClientController): split it into two prom client controllers
2026-02-04 22:48:32 +05:30
sammedsingalkar09
f801f34346
update dependecies
2026-02-04 22:32:15 +05:30
Jan Chaloupka
d262c7af44
refactor(TestPromClientControllerSync_EventHandler): be more verbose about the target expectations
2026-02-04 17:44:17 +01:00
Jan Chaloupka
4b5be0a772
feat(prometheus client reconciling): be more strict about clearing the previous connection
...
To avoid stalling connections that are not expected to be kept. E.g.
when an invalid secret is provided.
2026-02-04 17:16:44 +01:00
Jan Chaloupka
29e5a51cb5
refactor(newSecretBasedPromClientController): inline setupPrometheusProvider into newSecretBasedPromClientController
2026-02-04 17:16:15 +01:00
Jan Chaloupka
a91a02cadc
refactor(newSecretBasedPromClientController): move prometheus config validation under newSecretBasedPromClientController
2026-02-04 17:14:58 +01:00
Jan Chaloupka
964df4ce95
refactor(promClientController): split it into two prom client controllers
2026-02-04 16:59:13 +01:00
Kubernetes Prow Robot
5fb70c12c7
Merge pull request #1820 from ingvagabund/refactorings
...
test(token reconciling): have tests initialize the prom client reconciling through the descheduler's bootstraping entry too
2026-02-04 18:31:59 +05:30
Jan Chaloupka
c357bc3d28
test(TestReconcileInClusterSAToken): have prometheus client tests build an entire descheduler as well
2026-02-04 13:26:00 +01:00
Jan Chaloupka
f8a4efd4f0
format(TestReconcileInClusterSAToken): indent the code by two tabs
2026-02-04 13:18:53 +01:00
Jan Chaloupka
0822f6f99a
test(TestPromClientControllerSync_EventHandler): have prometheus client tests build an entire descheduler as well
2026-02-04 13:18:07 +01:00
Jan Chaloupka
4361c133e9
format(TestPromClientControllerSync_EventHandler): indent the code by two tabs
2026-02-04 13:11:20 +01:00
Jan Chaloupka
818675f73e
refactor(TestPromClientControllerSync_EventHandler): get secret name and namespace from the implicitly generated secret object
2026-02-04 12:47:41 +01:00
Jan Chaloupka
a8f618c3fd
test(TestPromClientControllerSync_ClientCreation): have prometheus client tests build an entire descheduler as well
2026-02-04 12:41:31 +01:00
Jan Chaloupka
760bacab34
format(TestPromClientControllerSync_ClientCreation): indent the code by two tabs
2026-02-04 12:40:12 +01:00
Jan Chaloupka
aa21eed809
refactor(setupPromClientControllerTest): inject context instead of creating a stop channel
2026-02-04 12:33:53 +01:00
Kubernetes Prow Robot
8849882944
Merge pull request #1819 from ingvagabund/bootstrap-descheduler
...
Deduplicate descheduler initialization code so unit tests test more of the production code
2026-02-04 16:33:55 +05:30
Jan Chaloupka
807f580204
test(pkg/descheduler): TestPluginPrometheusClientAccess_Secret to test secret based token reconciliation
...
This test makes sure the secret is reconciled and available in plugins
while running the descheduler from its main entry point.
2026-02-04 11:31:18 +01:00
Jan Chaloupka
643179cdac
feat(pkg/descheduler): setup prometheus client for the dry run mode descheduler as well
...
The secret is used for read-only operations so it can be safely wired.
2026-02-04 11:29:09 +01:00
Jan Chaloupka
d1671034df
refactor(pkg/descheduler): move the main descheduler run entry under a dedicated function
2026-02-03 23:31:29 +01:00
Jan Chaloupka
f26ab740fe
feat(pkg/descheduler): do not cancel the context when runDeschedulerLoop fails
...
When the descheduler is running in the dry mode the the kube client sandbox restoring may fail.
Which can be caused by timeouts when waiting for internal caches to sync.
The internal timeouts depend on the cluster size which changes in time.
No reason to cancel the context because of that.
2026-02-03 23:31:06 +01:00
Jan Chaloupka
0d05e5dd1f
refactor(pkg/descheduler): dedicated function for setting token reconciliation
2026-02-03 23:31:01 +01:00
Jan Chaloupka
e402adb9f1
refactor(pkg/descheduler): start factory informers and other descheduler parts during bootstrap
...
This will help with testing as the initDescheduler function under
descheduler_test.go is now much closer to the production invocation.
2026-02-03 21:33:28 +01:00
Jan Chaloupka
0c307cf7b9
refactor(pkg/descheduler): bootstrap a descheduler through a dedicated function
2026-02-03 21:26:16 +01:00
Jan Chaloupka
a71c2ab331
refactor(pkg/descheduler): single ctx with cancel with the whole RunDeschedulerStrategies function for consistency
2026-02-03 21:15:13 +01:00
Kubernetes Prow Robot
ffd05ff9c1
Merge pull request #1818 from ingvagabund/prom-client-testing
...
tests: Prom client testing
2026-02-02 19:04:28 +05:30
Kubernetes Prow Robot
a60ab7b5ed
Merge pull request #1786 from W1seKappa/add-namespace-label-selector
...
Add namespace label selector
2026-02-02 18:24:29 +05:30
Danila Bobkov
4361eefaf2
add namespaceLabelSelector
...
Signed-off-by: Danila Bobkov <danila.bobkov@flant.com >
2026-02-02 15:22:11 +03:00
Jan Chaloupka
5a53f16526
test(promClientController): unit test the implementation
...
Currently, there's a single prometheus client reconciler for both in
cluster and secret based strategies. The in cluster reconciling is run in
sync with each descheduling cycle. An in file token either changes or it
does not. If changed a new prometheus client is created. The secret
based reconciling is run async and watches for secret object changes. If a
secret changes a new client is created. The internal state of the
reconciler keeps previous connection data for clearing and checks.
The current reconciler implementation lacks mutually exclusive access.
So data races are possible. The prometheus configuration validation is
performed during every sync. The future refactorings is expected to move
the validation to the creation phase of the reconciler.
The extra unit testing is expected to cover the following scenarios:
- in cluster:
- in file token is unchanged: no-op
- in file token is changed: client is created or fails to be created
- secret:
- no secret is not found: no client creation, internal state cleared
- secret is found: if token changed a new client created, otherwise
no-op
- prometheus config validation
- prometheus client injection
Any error during new prom client creation should be followed by closing
the previous connection and reseting the internal state. Yet, the error
handling is not that strict currently. So the current extra unit testing
keeps the incomplete testing cases as they are.
Other use of the tests is to make sure every time a new prometheus
client is created a descheduling cycle injects a new profile with the
updated prometheus clients. So the future refactoring does not introduce
a regression.
2026-02-01 18:13:18 +01:00
Jan Chaloupka
12b1ddfb52
refactor(pkg/descheduler): move prometheus client specific code under a dedicated promClientController
...
The underlying implementation is the same. Only moving the code under a
separate controller that can be unit test independently of the
descheduler type implementation.
2026-02-01 12:42:27 +01:00
Kubernetes Prow Robot
0b4fd3544c
Merge pull request #1816 from ingvagabund/prometheus-client-update-test
...
test(pkg/descheduler): test a prometheus client update propagates to a plugin profile handle
2026-01-26 03:01:08 +05:30
Jan Chaloupka
fe2fb603f4
test(pkg/descheduler): test a prometheus client update propagates to a plugin profile handle
2026-01-25 22:00:28 +01:00
Kubernetes Prow Robot
a500ff9c64
Merge pull request #1814 from ingvagabund/refactorings
...
fix(kubeClientSandbox): do not wait for pods in the fake indexers if they are already deleted
2026-01-24 19:48:13 +05:30
Jan Chaloupka
263db33052
fix(kubeClientSandbox): do not wait for pods in the fake indexers if they are already deleted
2026-01-24 14:49:38 +01:00
Jan Chaloupka
45dc5a20d3
test(kubeClientSandbox): more unit tests
2026-01-24 14:47:17 +01:00
Jan Chaloupka
f520856095
refactor(kubeClientSandbox): move the code under a separate file
2026-01-24 14:47:10 +01:00
Jan Chaloupka
e53b3d5dce
refactor(pkg/descheduler): drop unsed clientset parameter from descheduler.runProfiles
2026-01-23 22:27:59 +01:00
Kubernetes Prow Robot
72d61286eb
Merge pull request #1812 from ingvagabund/register-fake-factory-only-once
...
refactor(pkg/descheduler): create fake shared informer factory only once
2026-01-24 02:43:28 +05:30
Jan Chaloupka
770ec5affa
refactor(pkg/descheduler): create fake shared informer factory only once
2026-01-23 21:34:09 +01:00
Kubernetes Prow Robot
38d99dd0c3
Merge pull request #1813 from ingvagabund/refactorings
...
refactor(pkg/descheduler): more handlers and dropping unused code
2026-01-23 21:27:30 +05:30
Jan Chaloupka
8f5a83279e
refactor(pkg/descheduler): drop unused fakeEvictedPods variables in the unit tests
2026-01-23 15:31:57 +01:00
Jan Chaloupka
4daa7e2fbf
refactor(pkg/descheduler): move prometheus setup under a helper
...
Prometheus is not used anywhere in the tests so there's no need to setup
it there.
2026-01-23 15:31:57 +01:00
Jan Chaloupka
433f0dbb8c
refactor(pkg/descheduler): define a helper for newKubeClientSandbox with the default list of resources
2026-01-23 15:31:51 +01:00
Kubernetes Prow Robot
cc96a3ee7a
Merge pull request #1811 from ingvagabund/kube-client-sandbox
...
refactor(pkg/operator): replace informerResource with a kubeClientSandbox
2026-01-22 19:59:28 +05:30