Commit Graph
1828 Commits
Author SHA1 Message Date
Kubernetes Prow RobotandGitHub 2cce60dc2b Merge pull request #1657 from ricardomaraschini/log
chore: log average and assessed thresholds
2025-03-28 06:52:40 -07: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 RobotandGitHub 7542cac9d0 Merge pull request #1654 from googs1025/add_reviewer
nominate googs1025 for descheduler reviewers
2025-03-24 02:16:35 -07:00
googs1025 8871272d35 nominate googs1025 for descheduler reviewers 2025-03-24 10:16:08 +08:00
Kubernetes Prow RobotandGitHub a31a3b5e85 Merge pull request #1580 from tspearconquest/docs/add_cmdOptions_details_to_readme
Mention cmdOptions.dry-run in the helm chart readme
2025-03-23 18:22:32 -07:00
Kubernetes Prow RobotandGitHub 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
Kubernetes Prow RobotandGitHub 9ba0f9b410 Merge pull request #1653 from ricardomaraschini/new-classifier
feat: move classifier to its own package
2025-03-20 05:20:31 -07: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
Kubernetes Prow RobotandGitHub 89535b9b9b Merge pull request #1649 from ricardomaraschini/normalizer
feat: refactoring thresholds and usage assessment
2025-03-20 02:34:31 -07: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
Kubernetes Prow RobotandGitHub b300faece0 Merge pull request #1652 from ingvagabund/nodeutili-refactor
[nodeutilization]: produce node utilization of resources that are listed in the list of resources
2025-03-19 05:58:30 -07: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
Kubernetes Prow RobotandGitHub 6ab73d6ac5 Merge pull request #1533 from ingvagabund/node-utilization-util-snapshot
[lownodeutilization]: Actual utilization: integration with Prometheus
2025-03-17 08:53:49 -07:00
Jan Chaloupka e283c31030 [nodeutilization]: prometheus usage client with prometheus metrics 2025-03-17 16:25:17 +01:00
Jan Chaloupka aed345994f Update vendor for prometheus deps 2025-03-14 10:26:00 +01:00
Kubernetes Prow RobotandGitHub 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 RobotandGitHub 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
Kubernetes Prow RobotandGitHub 17d9b152a2 Merge pull request #1644 from ingvagabund/nodeutilization-arg-validation
nodeutilization: invoke ValidateLowNodeUtilizationArgs instead of validateLowNodeUtilizationThresholds to make the test more generic
2025-03-12 01:53:46 -07:00
Jan Chaloupka b935c7d82c nodeutilization: invoke ValidateLowNodeUtilizationArgs instead of validateLowNodeUtilizationThresholds to make the test more generic 2025-03-11 10:04:39 +01:00
Kubernetes Prow RobotandGitHub b8e3c0bba3 Merge pull request #1642 from ingvagabund/unconstrainedevictions
lownodeutilization: evictionLimits to limit the evictions per plugin
2025-03-10 08:43:47 -07: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
Kubernetes Prow RobotandGitHub d883c8a9e1 Merge pull request #1640 from ingvagabund/referenced-resource-list
ReferencedResourceList: alias for map[v1.ResourceName]*resource.Quantity to avoid the type definition duplication
2025-03-07 05:05:46 -08: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
Kubernetes Prow RobotandGitHub fd9f2b4614 Merge pull request #1637 from googs1025/chore/fix
Security / Analyze (push) Failing after 7m25s
chore: add setDefaultEvictor return an error
2025-03-05 00:47:45 -08:00
googs1025 655ab516c7 chore: add error handle for setDefaultEvictor func 2025-02-26 22:34:57 +08:00
googs1025 0d5301ead2 chore: add continue for GetNodeWeightGivenPodPreferredAffinity func 2025-02-25 09:26:02 +08:00
Kubernetes Prow RobotandGitHub d97f1c9057 Merge pull request #1636 from ricardomaraschini/plugin-sample
Security / Analyze (push) Failing after 7m5s
chore: add descheduler plugin example
2025-02-24 10:40:31 -08:00
Ricardo Maraschini 57a04aae9f chore: add descheduler plugin example
This commit adds a sample plugin implementation as follow:

This directory provides an example plugin for the Kubernetes Descheduler,
demonstrating how to evict pods based on custom criteria. The plugin targets
pods based on:

* **Name Regex:** Pods matching a specified regular expression.
* **Age:** Pods older than a defined duration.
* **Namespace:** Pods within or outside a given list of namespaces (inclusion
  or exclusion).

To incorporate this plugin into your Descheduler build, you must register it
within the Descheduler's plugin registry. Follow these steps:

1.  **Register the Plugin:**
    * Modify the `pkg/descheduler/setupplugins.go` file.
    * Add the following registration line to the end of the
      `RegisterDefaultPlugins()` function:

    ```go
    pluginregistry.Register(
      example.PluginName,
      example.New,
      &example.Example{},
      &example.ExampleArgs{},
      example.ValidateExampleArgs,
      example.SetDefaults_Example,
      registry,
    )
    ```

2.  **Generate Code:**
    * If you modify the plugin's code, execute `make gen` before rebuilding the
      Descheduler. This ensures generated code is up-to-date.

3.  **Rebuild the Descheduler:**
    * Build the descheduler with your changes.

Configure the plugin's behavior using the Descheduler's policy configuration.
Here's an example:

```yaml
apiVersion: descheduler/v1alpha2
kind: DeschedulerPolicy
profiles:
- name: LifecycleAndUtilization
  plugins:
    deschedule:
      enabled:
        - Example
  pluginConfig:
  - name: Example
    args:
      regex: ^descheduler-test.*$
      maxAge: 3m
      namespaces:
        include:
        - default
```

- `regex: ^descheduler-test.*$`: Evicts pods whose names match the regular
  expression `^descheduler-test.*$`.
- `maxAge: 3m`: Evicts pods older than 3 minutes.
- `namespaces.include: - default`: Evicts pods within the default namespace.

This configuration will cause the plugin to evict pods that meet all three
criteria: matching the `regex`, exceeding the `maxAge`, and residing in the
specified namespace.
2025-02-24 18:36:13 +01:00
Kubernetes Prow RobotandGitHub f3abaf48ae Merge pull request #1632 from jandai/master
Security / Analyze (push) Failing after 15m41s
PodMatchNodeSelector: Replaced PodMatchNodeSelector implementation wi…
2025-02-18 07:00:27 -08:00
Jandai 88af72b907 PodMatchNodeSelector: Replaced PodMatchNodeSelector implementation with k8s.io/component-helpers to reduce code size and optimize 2025-02-16 16:48:21 +08:00
Kubernetes Prow RobotandGitHub fa3fb4e954 Merge pull request #1612 from LukeCarrier/fix-otel-tracing
Security / Analyze (push) Failing after 15m16s
tracing: test for and address semconv/SDK version conflicts
2025-01-24 11:09:23 -08:00
Luke Carrier d5b609b34a tracing: bump otel semconv to 1.26
Fix:

    E0122 20:09:35.824338  267288 tracing.go:130] "failed to create traceable resource" err=<
            1 errors occurred detecting resource:
                    * conflicting Schema URL: https://opentelemetry.io/schemas/1.24.0 and https://opentelemetry.io/schemas/1.26.0
     >
    E0122 20:09:35.824366  267288 server.go:108] "failed to create tracer provider" err=<
            1 errors occurred detecting resource:
                    * conflicting Schema URL: https://opentelemetry.io/schemas/1.24.0 and https://opentelemetry.io/schemas/1.26.0
     >
2025-01-22 21:14:04 +00:00
Luke Carrier 9c6604fc51 tracing: test for semconv/SDK version conflicts 2025-01-22 21:12:09 +00:00
Kubernetes Prow RobotandGitHub 1a49e116df Merge pull request #1599 from linuxmaniac/vseva/1597
Helm / lint-and-test (push) Failing after 6m0s
Security / Analyze (push) Failing after 15m31s
charts: add needed perms if metricsCollector is enabled
2025-01-10 05:54:31 -08:00
Victor Seva 4775db9e2f charts: add needed perms if metricsCollector is enabled 2025-01-10 11:58:56 +01:00
Kubernetes Prow RobotandGitHub 52d5d6398c Merge pull request #1606 from googs1025/revise/e2e_test_for_flake
Security / Analyze (push) Failing after 7m50s
flake: rollback gracePeriod for evict pod in e2e test
2025-01-09 08:06:32 -08:00
googs1025 6100c914b4 fix: rollback gracePeriod for evict pod in e2e test 2025-01-09 22:29:05 +08:00
Kubernetes Prow RobotandGitHub 0b3c022c32 Merge pull request #1596 from linuxmaniac/vseva/1595
Helm / lint-and-test (push) Failing after 6m49s
Security / Analyze (push) Failing after 15m33s
charts: add missing permission for policy
2025-01-07 18:48:29 +01:00
Kubernetes Prow RobotandGitHub 335c698b38 Merge pull request #1538 from googs1025/feature/grace_period_seconds
Security / Analyze (push) Failing after 7m50s
feature(descheduler): add grace_period_seconds for DeschedulerPolicy
2025-01-07 10:42:30 +01:00
Kubernetes Prow RobotandGitHub e39ae80628 Merge pull request #1602 from googs1025/chore/ut_test
chore: add ignorePvcPods param in default evictor filter unit test
2025-01-07 09:12:29 +01:00
googs1025 3440abfa41 chore: add ignorePvcPods flag in default evictor filter unit test 2025-01-07 15:27:28 +08:00
googs1025 e6d0caa1bc feature(descheduler): add grace_period_seconds for DeschedulerPolicy 2025-01-07 10:16:47 +08:00
Kubernetes Prow RobotandGitHub e085610bfd Merge pull request #1578 from googs1025/readme/update
Security / Analyze (push) Failing after 13m46s
chore: update README.md for DeschedulerPolicy
2025-01-06 13:38:16 +01:00
googs1025 03246d6843 chore: update README.md for DeschedulerPolicy 2025-01-06 20:08:35 +08:00
Victor Seva 5a201a32d9 charts: add missing permission for policy at ClusterRole
fixes 1595
2025-01-03 12:35:21 +01:00
Kubernetes Prow RobotandGitHub fc484030b9 Merge pull request #1591 from a7i/CVE-2024-45337
Helm / lint-and-test (push) Failing after 8m27s
Security / Analyze (push) Failing after 22m15s
bump x/net and x/crypto deps for CVE-2024-45337 and CVE-2024-45338
2025-01-03 00:54:15 +01:00