Skip to content

Conversation

@googs1025
Copy link
Member

/kind feature

  • add grace_period_seconds for DeschedulerPolicy

Fix #1537

@k8s-ci-robot
Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Oct 30, 2024
@googs1025 googs1025 marked this pull request as ready for review November 4, 2024 14:03
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 4, 2024
@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from 7a7d780 to 84abd13 Compare November 4, 2024 14:15
@ingvagabund
Copy link
Contributor

@googs1025 looks good in overall. Thank you. This is a good candidate for e2e testing. Would you please add an e2e test as well? So we can keep validating the functionality.

@ingvagabund ingvagabund self-assigned this Nov 12, 2024
@googs1025
Copy link
Member Author

@googs1025 looks good in overall. Thank you. This is a good candidate for e2e testing. Would you please add an e2e test as well? So we can keep validating the functionality.

sound great. maybe I can work this in weekend. :)

@googs1025
Copy link
Member Author

I looked at the e2e test. Do you @ingvagabund have any good suggestions? I am currently planning to pick one of them for testing. For example: use the test/e2e/e2e_failedpods_test.go Policy for testing. Set GracePeriodSeconds. For example: set GracePeriodSeconds to 60 seconds, use wait.PollUntilContextTimeout to test before 60 seconds, the expected EvictedPodCount should be 0, and use wait.PollUntilContextTimeout again after 60 seconds. The expected EvictedPodCount should be actualEvictedPodCount. 🤔

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 19, 2024
@ingvagabund
Copy link
Contributor

The simplest test will do :) I would go with https://github.com/kubernetes-sigs/descheduler/blob/master/test/e2e/e2e_toomanyrestarts_test.go. Better to evict a pod that's still running.

@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from 84abd13 to ac99d2e Compare December 19, 2024 12:43
@k8s-ci-robot k8s-ci-robot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Dec 19, 2024
@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from ac99d2e to 6a93bd3 Compare December 21, 2024 12:55
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Dec 21, 2024
@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch 2 times, most recently from 721d33b to d7725a4 Compare December 21, 2024 14:09
}

// Check if grace period is enabled and wait accordingly
if tc.enableGracePeriod {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We add a wait here to ensure that no pod is evicted during the grace period.

@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch 2 times, most recently from baaed1c to 1ff63a4 Compare December 21, 2024 15:05
@googs1025
Copy link
Member Author

/test pull-descheduler-test-e2e-k8s-master-1-31

@googs1025
Copy link
Member Author

@googs1025 looks good in overall. Thank you. This is a good candidate for e2e testing. Would you please add an e2e test as well? So we can keep validating the functionality.

@ingvagabund added

}

ignore, err := pe.evictPod(ctx, pod)
ignore, err := pe.evictPod(ctx, pod, pe.policyGroupVersion, pe.gracePeriodSeconds)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is it being passed in as an argument, since it's already available on the PodEvictor receiver?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 567 to 568
func (pe *PodEvictor) evictPod(ctx context.Context, pod *v1.Pod, policyGroupVersion string, gracePeriodSeconds *int64) (bool, error) {
deleteOptions := &metav1.DeleteOptions{}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
func (pe *PodEvictor) evictPod(ctx context.Context, pod *v1.Pod, policyGroupVersion string, gracePeriodSeconds *int64) (bool, error) {
deleteOptions := &metav1.DeleteOptions{}
func (pe *PodEvictor) evictPod(ctx context.Context, pod *v1.Pod) (bool, error) {
deleteOptions := &metav1.DeleteOptions{
GracePeriodSeconds: pe.gracePeriodSeconds,
}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awkward..... The changes here were undone during rebase. thanks for this

@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch 2 times, most recently from 65ac965 to b2a8f66 Compare December 23, 2024 01:59
@a7i
Copy link
Contributor

a7i commented Dec 23, 2024

/lgtm

/assign @ingvagabund

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Dec 23, 2024
@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from b2a8f66 to 77b17fb Compare December 23, 2024 02:34
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Dec 23, 2024
@googs1025
Copy link
Member Author

/test pull-descheduler-test-e2e-k8s-master-1-31

@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from 77b17fb to 9485934 Compare December 23, 2024 04:49
@googs1025
Copy link
Member Author

/test pull-descheduler-test-e2e-k8s-master-1-30

@googs1025
Copy link
Member Author

/retest

// The value zero indicates delete immediately. If this value is nil, the default grace period for the
// specified type will be used.
// Defaults to a per object value if not specified. zero means delete immediately.
GracePeriodSeconds *int64
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing json:"gracePeriodSeconds,omitempty"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also worth extending https://github.com/kubernetes-sigs/descheduler?tab=readme-ov-file#example-policy with e.g. gracePeriodSeconds: 60 alongside already existing pluginConfig arguments.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from 9485934 to 0f95004 Compare January 7, 2025 01:40
@googs1025 googs1025 force-pushed the feature/grace_period_seconds branch from 0f95004 to e6d0caa Compare January 7, 2025 02:22
@googs1025
Copy link
Member Author

/retest

@ingvagabund
Copy link
Contributor

/approve
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 7, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ingvagabund

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 7, 2025
@k8s-ci-robot k8s-ci-robot merged commit 335c698 into kubernetes-sigs:master Jan 7, 2025
9 checks passed
@a7i
Copy link
Contributor

a7i commented Jan 9, 2025

Created an issue for the flaky test: #1605

ralgar pushed a commit to ralgar/homelab that referenced this pull request Oct 10, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [descheduler](https://github.com/kubernetes-sigs/descheduler) | minor | `0.26.x` -> `0.33.x` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/descheduler (descheduler)</summary>

### [`v0.33.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.33.0): Descheduler v0.33.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.32.2...v0.33.0)

#### What's Changed

- update license to year 2025 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1593](https://github.com/kubernetes-sigs/descheduler/pull/1593)
- \[release v0.32.0] bump chart and images by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1592](https://github.com/kubernetes-sigs/descheduler/pull/1592)
- bump x/net and x/crypto deps for CVE-2024-45337 and CVE-2024-45338 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1591](https://github.com/kubernetes-sigs/descheduler/pull/1591)
- chore: update README.md for DeschedulerPolicy by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1578](https://github.com/kubernetes-sigs/descheduler/pull/1578)
- chore: add ignorePvcPods param in default evictor filter unit test by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1602](https://github.com/kubernetes-sigs/descheduler/pull/1602)
- feature(descheduler): add grace\_period\_seconds for DeschedulerPolicy by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1538](https://github.com/kubernetes-sigs/descheduler/pull/1538)
- charts: add missing permission for policy by [@&#8203;linuxmaniac](https://github.com/linuxmaniac) in [#&#8203;1596](https://github.com/kubernetes-sigs/descheduler/pull/1596)
- flake: rollback gracePeriod for evict pod in e2e test by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1606](https://github.com/kubernetes-sigs/descheduler/pull/1606)
- charts: add needed perms if metricsCollector is enabled by [@&#8203;linuxmaniac](https://github.com/linuxmaniac) in [#&#8203;1599](https://github.com/kubernetes-sigs/descheduler/pull/1599)
- tracing: test for and address semconv/SDK version conflicts by [@&#8203;LukeCarrier](https://github.com/LukeCarrier) in [#&#8203;1612](https://github.com/kubernetes-sigs/descheduler/pull/1612)
- PodMatchNodeSelector: Replaced PodMatchNodeSelector implementation wi… by [@&#8203;jandai](https://github.com/jandai) in [#&#8203;1632](https://github.com/kubernetes-sigs/descheduler/pull/1632)
- chore: add descheduler plugin example by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1636](https://github.com/kubernetes-sigs/descheduler/pull/1636)
- chore: add setDefaultEvictor return an error by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1637](https://github.com/kubernetes-sigs/descheduler/pull/1637)
- ReferencedResourceList: alias for map\[v1.ResourceName]\*resource.Quantity to avoid the type definition duplication by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1640](https://github.com/kubernetes-sigs/descheduler/pull/1640)
- lownodeutilization: evictionLimits to limit the evictions per plugin by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1642](https://github.com/kubernetes-sigs/descheduler/pull/1642)
- nodeutilization: invoke ValidateLowNodeUtilizationArgs instead of validateLowNodeUtilizationThresholds to make the test more generic by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1644](https://github.com/kubernetes-sigs/descheduler/pull/1644)
- nodeutilization: make the node classification more generic by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1645](https://github.com/kubernetes-sigs/descheduler/pull/1645)
- \[nodeutilization]: allow to set a metrics source as a string so it can be later extended for exclusive configuration by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1614](https://github.com/kubernetes-sigs/descheduler/pull/1614)
- \[lownodeutilization]: Actual utilization: integration with Prometheus by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1533](https://github.com/kubernetes-sigs/descheduler/pull/1533)
- \[nodeutilization]: produce node utilization of resources that are listed in the list of resources by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1652](https://github.com/kubernetes-sigs/descheduler/pull/1652)
- feat: refactoring thresholds and usage assessment by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1649](https://github.com/kubernetes-sigs/descheduler/pull/1649)
- feat: move classifier to its own package by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1653](https://github.com/kubernetes-sigs/descheduler/pull/1653)
- \[nodeutilization]: skip nodes without extended resource when computing the average utilization by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1650](https://github.com/kubernetes-sigs/descheduler/pull/1650)
- Mention cmdOptions.dry-run in the helm chart readme by [@&#8203;tspearconquest](https://github.com/tspearconquest) in [#&#8203;1580](https://github.com/kubernetes-sigs/descheduler/pull/1580)
- nominate googs1025 for descheduler reviewers by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1654](https://github.com/kubernetes-sigs/descheduler/pull/1654)
- chore: log average and assessed thresholds by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1657](https://github.com/kubernetes-sigs/descheduler/pull/1657)
- fix removepodsviolatingtopologyspreadconstraint plugin sort logic by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1629](https://github.com/kubernetes-sigs/descheduler/pull/1629)
- TestLowNodeUtilizationKubernetesMetrics: set the right -cpu value for the cpu stressor by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1661](https://github.com/kubernetes-sigs/descheduler/pull/1661)
- docs: add histogram metric README.md by [@&#8203;freedomchurl](https://github.com/freedomchurl) in [#&#8203;1651](https://github.com/kubernetes-sigs/descheduler/pull/1651)
- feat: introduce strict eviction policy by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1663](https://github.com/kubernetes-sigs/descheduler/pull/1663)
- Move values.yaml comment about defining your own configmap to a NOTES.txt output instead by [@&#8203;tspearconquest](https://github.com/tspearconquest) in [#&#8203;1582](https://github.com/kubernetes-sigs/descheduler/pull/1582)
- chore: update owners to add me as reviewer by [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) in [#&#8203;1667](https://github.com/kubernetes-sigs/descheduler/pull/1667)
- chore: Bump to official kubernetes v0.33.0 deps by [@&#8203;dongjiang1989](https://github.com/dongjiang1989) in [#&#8203;1675](https://github.com/kubernetes-sigs/descheduler/pull/1675)
- fix: update the mailing list address by [@&#8203;sanposhiho](https://github.com/sanposhiho) in [#&#8203;1676](https://github.com/kubernetes-sigs/descheduler/pull/1676)
- add miss evictDaemonSetPods param in README.md by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1672](https://github.com/kubernetes-sigs/descheduler/pull/1672)
- chore(deps): bump github.com/golang/glog from 1.2.2 to 1.2.4 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;1679](https://github.com/kubernetes-sigs/descheduler/pull/1679)
- \[v0.33.0] update docs and manifests by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1678](https://github.com/kubernetes-sigs/descheduler/pull/1678)

#### New Contributors

- [@&#8203;linuxmaniac](https://github.com/linuxmaniac) made their first contribution in [#&#8203;1596](https://github.com/kubernetes-sigs/descheduler/pull/1596)
- [@&#8203;LukeCarrier](https://github.com/LukeCarrier) made their first contribution in [#&#8203;1612](https://github.com/kubernetes-sigs/descheduler/pull/1612)
- [@&#8203;jandai](https://github.com/jandai) made their first contribution in [#&#8203;1632](https://github.com/kubernetes-sigs/descheduler/pull/1632)
- [@&#8203;ricardomaraschini](https://github.com/ricardomaraschini) made their first contribution in [#&#8203;1636](https://github.com/kubernetes-sigs/descheduler/pull/1636)
- [@&#8203;tspearconquest](https://github.com/tspearconquest) made their first contribution in [#&#8203;1580](https://github.com/kubernetes-sigs/descheduler/pull/1580)
- [@&#8203;freedomchurl](https://github.com/freedomchurl) made their first contribution in [#&#8203;1651](https://github.com/kubernetes-sigs/descheduler/pull/1651)
- [@&#8203;dependabot](https://github.com/dependabot) made their first contribution in [#&#8203;1679](https://github.com/kubernetes-sigs/descheduler/pull/1679)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.32.0...v0.33.0>

### [`v0.32.2`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.32.2): Descheduler v0.32.2

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.32.1...v0.32.2)

#### What's Changed

- \[v0.32.1] patch release for CVE-2024-45337 and CVE-2024-45338 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1601](https://github.com/kubernetes-sigs/descheduler/pull/1601)
- Automated cherry pick of [#&#8203;1596](https://github.com/kubernetes-sigs/descheduler/issues/1596): charts: add missing permission for policy at ClusterRole by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1621](https://github.com/kubernetes-sigs/descheduler/pull/1621)
- Automated cherry pick of [#&#8203;1599](https://github.com/kubernetes-sigs/descheduler/issues/1599): charts: add needed perms if metricsCollector is enabled by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1620](https://github.com/kubernetes-sigs/descheduler/pull/1620)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.32.1...v0.32.2>

### [`v0.32.1`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.32.1)

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.32.0...v0.32.1)

#### What's Changed

- update license to year 2025 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1593](https://github.com/kubernetes-sigs/descheduler/pull/1593)
- \[release v0.32.0] bump chart and images by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1592](https://github.com/kubernetes-sigs/descheduler/pull/1592)
- Automated cherry pick of [#&#8203;1591](https://github.com/kubernetes-sigs/descheduler/issues/1591): bump x/net and x/crypto deps for CVE-2024-45337 and by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1600](https://github.com/kubernetes-sigs/descheduler/pull/1600)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.32.0...v0.32.1>

### [`v0.32.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.32.0)

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.31.0...v0.32.0)

#### What's Changed

- descheduler v0.31.0: bump kustomize files by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1511](https://github.com/kubernetes-sigs/descheduler/pull/1511)
- chore: bump golangci-lint to latest by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1513](https://github.com/kubernetes-sigs/descheduler/pull/1513)
- descheduler v0.31.0: bump helm chart by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1512](https://github.com/kubernetes-sigs/descheduler/pull/1512)
- fix: github action Release Charts to have write permissions by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1514](https://github.com/kubernetes-sigs/descheduler/pull/1514)
- \[e2e] abstract common methods by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1517](https://github.com/kubernetes-sigs/descheduler/pull/1517)
- \[DuplicatePods] e2e: build a descheduler image and run the descheduler as a pod by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1520](https://github.com/kubernetes-sigs/descheduler/pull/1520)
- \[FailedPods] e2e: build a descheduler image and run the descheduler as a pod  by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1521](https://github.com/kubernetes-sigs/descheduler/pull/1521)
- \[TopologySpreadConstraint] e2e: build a descheduler image and run the descheduler as a pod by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1523](https://github.com/kubernetes-sigs/descheduler/pull/1523)
- \[LeaderElection] e2e: build a descheduler image and run the descheduler as a pod by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1522](https://github.com/kubernetes-sigs/descheduler/pull/1522)
- Make sure dry runs sees all the resources a normal run would do by [@&#8203;john7doe](https://github.com/john7doe) in [#&#8203;1526](https://github.com/kubernetes-sigs/descheduler/pull/1526)
- test: construct e2e deployments through buildTestDeployment by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1527](https://github.com/kubernetes-sigs/descheduler/pull/1527)
- Node utilization refactoring by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1532](https://github.com/kubernetes-sigs/descheduler/pull/1532)
- add ignorePodsWithoutPDB option by [@&#8203;john7doe](https://github.com/john7doe) in [#&#8203;1529](https://github.com/kubernetes-sigs/descheduler/pull/1529)
- Update Dockerfile - GoLang v 1.22.7 FIX - CVE-2024-34156, CVE-2024-34155 and CVE-2024-34158 by [@&#8203;sagar-18](https://github.com/sagar-18) in [#&#8203;1539](https://github.com/kubernetes-sigs/descheduler/pull/1539)
- Update nodes sorting function to respect available resources by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1541](https://github.com/kubernetes-sigs/descheduler/pull/1541)
- DeschedulerServer: new Apply function for applying configuration by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1542](https://github.com/kubernetes-sigs/descheduler/pull/1542)
- sortNodesByUsage: drop extended resources as they are already counted in by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1546](https://github.com/kubernetes-sigs/descheduler/pull/1546)
- nodeutilization: NodeUtilization: make pod utilization extraction configurable by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1543](https://github.com/kubernetes-sigs/descheduler/pull/1543)
- nodeutilization: evictPodsFromSourceNodes: iterate through existing resources by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1544](https://github.com/kubernetes-sigs/descheduler/pull/1544)
- nodeutilization: usage2KeysAndValues for constructing a key:value list for InfoS printing resource usage by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1549](https://github.com/kubernetes-sigs/descheduler/pull/1549)
- bump(golangci-lint)=v1.62.0 by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1551](https://github.com/kubernetes-sigs/descheduler/pull/1551)
- nodeutilization: separate code responsible for requested resource extraction into a dedicated usage client by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1545](https://github.com/kubernetes-sigs/descheduler/pull/1545)
- Introduce RequestEviction feature for evicting pods in background (KEP-1397) by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1466](https://github.com/kubernetes-sigs/descheduler/pull/1466)
- Use actual node resource utilization by consuming kubernetes metrics by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1555](https://github.com/kubernetes-sigs/descheduler/pull/1555)
- Bump to Go 1.23.3 by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1565](https://github.com/kubernetes-sigs/descheduler/pull/1565)
- Bump golangci-lint to 1.62.2 by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1567](https://github.com/kubernetes-sigs/descheduler/pull/1567)
- Bump kind version to v0.25.0 by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1568](https://github.com/kubernetes-sigs/descheduler/pull/1568)
- Bump golangci-lint timeout from 2m to 5m by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1571](https://github.com/kubernetes-sigs/descheduler/pull/1571)
- Enable golangci-lint Verbose Output by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1572](https://github.com/kubernetes-sigs/descheduler/pull/1572)
- bump to kubernetes v0.32.0-rc.2 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1569](https://github.com/kubernetes-sigs/descheduler/pull/1569)
- docs: Removing deschedulerPolicy.strategies since it does not exist by [@&#8203;felipewnp](https://github.com/felipewnp) in [#&#8203;1570](https://github.com/kubernetes-sigs/descheduler/pull/1570)
- Fixed the issue when successfulJobsHistoryLimit and failedJobsHistoryLimit variables are 0. by [@&#8203;icloudnote](https://github.com/icloudnote) in [#&#8203;1573](https://github.com/kubernetes-sigs/descheduler/pull/1573)
- Bump kind to v0.26.0 by [@&#8203;seanmalloy](https://github.com/seanmalloy) in [#&#8203;1576](https://github.com/kubernetes-sigs/descheduler/pull/1576)
- Improve chart default values by [@&#8203;pipo02mix](https://github.com/pipo02mix) in [#&#8203;1564](https://github.com/kubernetes-sigs/descheduler/pull/1564)
- bump to official kubernetes v0.32.0 deps by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1575](https://github.com/kubernetes-sigs/descheduler/pull/1575)
- feature(eviction): add event when EvictPod failed by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1536](https://github.com/kubernetes-sigs/descheduler/pull/1536)
- \[release v0.32] update kubernetes kind version to 1.32 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1587](https://github.com/kubernetes-sigs/descheduler/pull/1587)
- \[release v0.32] update docs/readme by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1588](https://github.com/kubernetes-sigs/descheduler/pull/1588)

#### New Contributors

- [@&#8203;john7doe](https://github.com/john7doe) made their first contribution in [#&#8203;1526](https://github.com/kubernetes-sigs/descheduler/pull/1526)
- [@&#8203;felipewnp](https://github.com/felipewnp) made their first contribution in [#&#8203;1570](https://github.com/kubernetes-sigs/descheduler/pull/1570)
- [@&#8203;icloudnote](https://github.com/icloudnote) made their first contribution in [#&#8203;1573](https://github.com/kubernetes-sigs/descheduler/pull/1573)
- [@&#8203;pipo02mix](https://github.com/pipo02mix) made their first contribution in [#&#8203;1564](https://github.com/kubernetes-sigs/descheduler/pull/1564)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.31.0...v0.32.0>

### [`v0.31.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.31.0): Descheduler v0.31.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.30.2...v0.31.0)

#### What's Changed

- bump to to 1.22.3 to address CVE-2024-24788 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1408](https://github.com/kubernetes-sigs/descheduler/pull/1408)
- Fix the replicas value type for the descheduler helm-chart by [@&#8203;hanyouqing](https://github.com/hanyouqing) in [#&#8203;1378](https://github.com/kubernetes-sigs/descheduler/pull/1378)
- Helm chart - allow 'falsey' value in cmdOption by [@&#8203;omerap12](https://github.com/omerap12) in [#&#8203;1390](https://github.com/kubernetes-sigs/descheduler/pull/1390)
- fix helm's default deschedulerPolicy by [@&#8203;duplabe](https://github.com/duplabe) in [#&#8203;1412](https://github.com/kubernetes-sigs/descheduler/pull/1412)
- fix TOC location in Readme by [@&#8203;duplabe](https://github.com/duplabe) in [#&#8203;1413](https://github.com/kubernetes-sigs/descheduler/pull/1413)
- use cmd context instead of using context.Background() by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1416](https://github.com/kubernetes-sigs/descheduler/pull/1416)
- fix the issue that the pod anti-filtering rules are not taking effect by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1395](https://github.com/kubernetes-sigs/descheduler/pull/1395)
- Bump otel semconv to 1.24 by [@&#8203;damemi](https://github.com/damemi) in [#&#8203;1429](https://github.com/kubernetes-sigs/descheduler/pull/1429)
- chore: reduce repetition of go versions by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1432](https://github.com/kubernetes-sigs/descheduler/pull/1432)
- bump go to 1.22.4 for CVE-2024-24790 and CVE-2024-24789 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1433](https://github.com/kubernetes-sigs/descheduler/pull/1433)
- return pod qos in advance by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1435](https://github.com/kubernetes-sigs/descheduler/pull/1435)
- add validation ut by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1439](https://github.com/kubernetes-sigs/descheduler/pull/1439)
- refactor some methods in e2e test by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1441](https://github.com/kubernetes-sigs/descheduler/pull/1441)
- Automated cherry pick of [#&#8203;1427](https://github.com/kubernetes-sigs/descheduler/issues/1427): helm: upgrade to v0.30.1 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1431](https://github.com/kubernetes-sigs/descheduler/pull/1431)
- chore: cleanup duplicated code by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1438](https://github.com/kubernetes-sigs/descheduler/pull/1438)
- fix: return the unmatched cases first by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1446](https://github.com/kubernetes-sigs/descheduler/pull/1446)
- Unit-test: add necessary ownerRef to the pod. by [@&#8203;zhifei92](https://github.com/zhifei92) in [#&#8203;1445](https://github.com/kubernetes-sigs/descheduler/pull/1445)
- PodEvictor: refactoring and preparation for eviction requests by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1447](https://github.com/kubernetes-sigs/descheduler/pull/1447)
- refactor: PodMatchNodeSelector method by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1450](https://github.com/kubernetes-sigs/descheduler/pull/1450)
- return node fit error in advance by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1436](https://github.com/kubernetes-sigs/descheduler/pull/1436)
- test: generate uid when building a pod by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1454](https://github.com/kubernetes-sigs/descheduler/pull/1454)
- feat: pod evictor options by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1455](https://github.com/kubernetes-sigs/descheduler/pull/1455)
- fix: indexer cache error when default evictor is re-initialized by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1452](https://github.com/kubernetes-sigs/descheduler/pull/1452)
- fix: add info for error return by [@&#8203;googs1025](https://github.com/googs1025) in [#&#8203;1457](https://github.com/kubernetes-sigs/descheduler/pull/1457)
- PodEvictor: turn an exceeded limit into an error by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1456](https://github.com/kubernetes-sigs/descheduler/pull/1456)
- descheduler\_test.go refactoring by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1459](https://github.com/kubernetes-sigs/descheduler/pull/1459)
- The descheduler supports limiting the total number of pods evicted per rescheduling cycle by [@&#8203;zhifei92](https://github.com/zhifei92) in [#&#8203;1451](https://github.com/kubernetes-sigs/descheduler/pull/1451)
- descheduler\_test.go: initDescheduler: pass a new ctx with cancel inst… by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1460](https://github.com/kubernetes-sigs/descheduler/pull/1460)
- pod evictor: make it thread safe by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1458](https://github.com/kubernetes-sigs/descheduler/pull/1458)
- Update README about maxNoOfPodsToEvictTotal by [@&#8203;zhifei92](https://github.com/zhifei92) in [#&#8203;1463](https://github.com/kubernetes-sigs/descheduler/pull/1463)
- refactor: replace k8s.io/utils/pointer with k8s.io/utils/ptr by [@&#8203;eminaktas](https://github.com/eminaktas) in [#&#8203;1464](https://github.com/kubernetes-sigs/descheduler/pull/1464)
- feat: Add namespace override settings in Helm Chart by [@&#8203;ternbusty](https://github.com/ternbusty) in [#&#8203;1444](https://github.com/kubernetes-sigs/descheduler/pull/1444)
- fix: helm leader-election typo to `resourceNamespace` by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1443](https://github.com/kubernetes-sigs/descheduler/pull/1443)
- helm unit tests by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1467](https://github.com/kubernetes-sigs/descheduler/pull/1467)
- feat: add init and ephemeral container checks to PodLifeTime by [@&#8203;adammw](https://github.com/adammw) in [#&#8203;1468](https://github.com/kubernetes-sigs/descheduler/pull/1468)
- bump(github.com/golangci/golangci-lint)=v1.59.1 by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1473](https://github.com/kubernetes-sigs/descheduler/pull/1473)
- e2e: TestTooManyRestarts: run descheduler as a whole instead of a single plugin by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1472](https://github.com/kubernetes-sigs/descheduler/pull/1472)
- e2e: TestRemoveDuplicates: limit the tested namespace by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1471](https://github.com/kubernetes-sigs/descheduler/pull/1471)
- KEP-1397: descheduler integration with evacuation API as an alternative to eviction API by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1354](https://github.com/kubernetes-sigs/descheduler/pull/1354)
- skip eviction when pod creation time is below minPodAge threshold setting by [@&#8203;victorgs](https://github.com/victorgs) in [#&#8203;1475](https://github.com/kubernetes-sigs/descheduler/pull/1475)
- fix: minor version parsing in version compatibility check by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1430](https://github.com/kubernetes-sigs/descheduler/pull/1430)
- e2e: TestLeaderElection: delete the lease and increase the retry period by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1469](https://github.com/kubernetes-sigs/descheduler/pull/1469)
- bump go to 1.22.5 by [@&#8203;shahar-h](https://github.com/shahar-h) in [#&#8203;1476](https://github.com/kubernetes-sigs/descheduler/pull/1476)
- \[TestTooManyRestarts] e2e: build a descheduler image and run the descheduler as a pod by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1474](https://github.com/kubernetes-sigs/descheduler/pull/1474)
- docs: Provide OCI annotation for where to find image sources by [@&#8203;sklirg](https://github.com/sklirg) in [#&#8203;1479](https://github.com/kubernetes-sigs/descheduler/pull/1479)
- Remove descheduler/v1alpha1 type by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1482](https://github.com/kubernetes-sigs/descheduler/pull/1482)
- tests: de-duplicate framework handle initialization by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1483](https://github.com/kubernetes-sigs/descheduler/pull/1483)
- \[unit test]: test descheduling limits by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1484](https://github.com/kubernetes-sigs/descheduler/pull/1484)
- \[unit test]: simplify test pod evictor reset by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1485](https://github.com/kubernetes-sigs/descheduler/pull/1485)
- README: drop v1alpha1 descheduler policy mention by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1498](https://github.com/kubernetes-sigs/descheduler/pull/1498)
- bump k8s.io libs to v0.31.0 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1496](https://github.com/kubernetes-sigs/descheduler/pull/1496)
- chore: upgrade python EOL and action versions by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1505](https://github.com/kubernetes-sigs/descheduler/pull/1505)
- descheduler v0.31: update e2e test versions by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1504](https://github.com/kubernetes-sigs/descheduler/pull/1504)
- feat(helm): make securityContext conditional in Deployment and CronJob by [@&#8203;bendikp](https://github.com/bendikp) in [#&#8203;1507](https://github.com/kubernetes-sigs/descheduler/pull/1507)
- Plugin args: tag arguments with omitempty to reduce the marshalled json size by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1480](https://github.com/kubernetes-sigs/descheduler/pull/1480)
- descheduler v0.31: update docs and manifests by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1506](https://github.com/kubernetes-sigs/descheduler/pull/1506)
- \[e2e] no test timeouts, produce the same image tag as in production by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1508](https://github.com/kubernetes-sigs/descheduler/pull/1508)
- chore: replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` by [@&#8203;Juneezee](https://github.com/Juneezee) in [#&#8203;1510](https://github.com/kubernetes-sigs/descheduler/pull/1510)

#### New Contributors

- [@&#8203;hanyouqing](https://github.com/hanyouqing) made their first contribution in [#&#8203;1378](https://github.com/kubernetes-sigs/descheduler/pull/1378)
- [@&#8203;omerap12](https://github.com/omerap12) made their first contribution in [#&#8203;1390](https://github.com/kubernetes-sigs/descheduler/pull/1390)
- [@&#8203;duplabe](https://github.com/duplabe) made their first contribution in [#&#8203;1412](https://github.com/kubernetes-sigs/descheduler/pull/1412)
- [@&#8203;googs1025](https://github.com/googs1025) made their first contribution in [#&#8203;1416](https://github.com/kubernetes-sigs/descheduler/pull/1416)
- [@&#8203;zhifei92](https://github.com/zhifei92) made their first contribution in [#&#8203;1445](https://github.com/kubernetes-sigs/descheduler/pull/1445)
- [@&#8203;ternbusty](https://github.com/ternbusty) made their first contribution in [#&#8203;1444](https://github.com/kubernetes-sigs/descheduler/pull/1444)
- [@&#8203;adammw](https://github.com/adammw) made their first contribution in [#&#8203;1468](https://github.com/kubernetes-sigs/descheduler/pull/1468)
- [@&#8203;shahar-h](https://github.com/shahar-h) made their first contribution in [#&#8203;1476](https://github.com/kubernetes-sigs/descheduler/pull/1476)
- [@&#8203;sklirg](https://github.com/sklirg) made their first contribution in [#&#8203;1479](https://github.com/kubernetes-sigs/descheduler/pull/1479)
- [@&#8203;bendikp](https://github.com/bendikp) made their first contribution in [#&#8203;1507](https://github.com/kubernetes-sigs/descheduler/pull/1507)
- [@&#8203;Juneezee](https://github.com/Juneezee) made their first contribution in [#&#8203;1510](https://github.com/kubernetes-sigs/descheduler/pull/1510)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.30.0...v0.31.0>

### [`v0.30.2`](https://github.com/kubernetes-sigs/descheduler/compare/v0.30.1...v0.30.2)

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.30.1...v0.30.2)

### [`v0.30.1`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.30.1): Descheduler v0.30.1

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.30.0...v0.30.1)

#### What's Changed

- bump to to 1.22.3 to address CVE-2024-24788 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1408](https://github.com/kubernetes-sigs/descheduler/pull/1408)
- \[release 1.30] update kustomize image tags and helm versions by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1405](https://github.com/kubernetes-sigs/descheduler/pull/1405)
- Automated cherry pick of [#&#8203;1378](https://github.com/kubernetes-sigs/descheduler/issues/1378): Fix the replicas type for the helm-chart
  [#&#8203;1390](https://github.com/kubernetes-sigs/descheduler/issues/1390): allow 'falsey' value in cmdOption
  [#&#8203;1412](https://github.com/kubernetes-sigs/descheduler/issues/1412): fix helm's default deschedulerPolicy
  [#&#8203;1413](https://github.com/kubernetes-sigs/descheduler/issues/1413): fix TOC location in Readme
  [#&#8203;1416](https://github.com/kubernetes-sigs/descheduler/issues/1416): use cmd context instead of using context.Background()
  [#&#8203;1395](https://github.com/kubernetes-sigs/descheduler/issues/1395): fix the issue that the pod anti-filtering rules are not by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1425](https://github.com/kubernetes-sigs/descheduler/pull/1425)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.30.0...v0.30.1>

### [`v0.30.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.30.0): Descheduler v0.30.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.29.0...v0.30.0)

#### What's Changed

- fix(podlifetime): fix failed unittest by [@&#8203;xujihui1985](https://github.com/xujihui1985) in [#&#8203;1334](https://github.com/kubernetes-sigs/descheduler/pull/1334)
- `PodLifeTime`:  update support pods with container status and  pods reason by [@&#8203;dongjiang1989](https://github.com/dongjiang1989) in [#&#8203;1330](https://github.com/kubernetes-sigs/descheduler/pull/1330)
- v1alpha1: log deprecation notice by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1337](https://github.com/kubernetes-sigs/descheduler/pull/1337)
- feat: Add support for topologySpreadConstraints by [@&#8203;UAntBou](https://github.com/UAntBou) in [#&#8203;1289](https://github.com/kubernetes-sigs/descheduler/pull/1289)
- chore: update dependencies for security vulnerabilities (CVE-2023-48795) by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1343](https://github.com/kubernetes-sigs/descheduler/pull/1343)
- trim managedFields in shared informer factory by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1346](https://github.com/kubernetes-sigs/descheduler/pull/1346)
- fix: `RemovePodsHavingTooManyRestarts` to include `InitContainerStatuses` by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1348](https://github.com/kubernetes-sigs/descheduler/pull/1348)
- Improve PodEvictor observability through EvictOptions by [@&#8203;tioxy](https://github.com/tioxy) in [#&#8203;1349](https://github.com/kubernetes-sigs/descheduler/pull/1349)
- Fix node taint wrong EvictOption field by [@&#8203;tioxy](https://github.com/tioxy) in [#&#8203;1358](https://github.com/kubernetes-sigs/descheduler/pull/1358)
- Disambiguate node fit log messages by [@&#8203;jackfrancis](https://github.com/jackfrancis) in [#&#8203;1362](https://github.com/kubernetes-sigs/descheduler/pull/1362)
- Check whether pod matches the inter-pod anti-affinity of another Pod in a given Node in `NodeFit()` by [@&#8203;nikimanoledaki](https://github.com/nikimanoledaki) in [#&#8203;1356](https://github.com/kubernetes-sigs/descheduler/pull/1356)
- Bump to k8s v0.30.0-alpha.3 by [@&#8203;pravarag](https://github.com/pravarag) in [#&#8203;1359](https://github.com/kubernetes-sigs/descheduler/pull/1359)
- skip eviction when replica count is below evictor `minReplicas` threshold setting by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1257](https://github.com/kubernetes-sigs/descheduler/pull/1257)
- Add argument to remove only pods violating allowlisted taints by [@&#8203;etoster](https://github.com/etoster) in [#&#8203;1360](https://github.com/kubernetes-sigs/descheduler/pull/1360)
- use v1alpha2 api for helm chart default values by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1139](https://github.com/kubernetes-sigs/descheduler/pull/1139)
- `RemoveDuplicates`: reduce cycle times identifying duplicates by [@&#8203;ls-2018](https://github.com/ls-2018) in [#&#8203;1365](https://github.com/kubernetes-sigs/descheduler/pull/1365)
- avoid redundant type conversion of DefaultEvictorArgs parameter in DefaultEvictor by [@&#8203;fanhaouu](https://github.com/fanhaouu) in [#&#8203;1369](https://github.com/kubernetes-sigs/descheduler/pull/1369)
- bump(golang.org/x/net)=v0.23.0 by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1373](https://github.com/kubernetes-sigs/descheduler/pull/1373)
- Allow eviction of DaemonSet pods by [@&#8203;tioxy](https://github.com/tioxy) in [#&#8203;1342](https://github.com/kubernetes-sigs/descheduler/pull/1342)
- bump to go 1.22.2 by [@&#8203;jklaw90](https://github.com/jklaw90) in [#&#8203;1374](https://github.com/kubernetes-sigs/descheduler/pull/1374)
- helm: Allow the use of existing policy configMap by [@&#8203;agmimidi](https://github.com/agmimidi) in [#&#8203;1376](https://github.com/kubernetes-sigs/descheduler/pull/1376)
- Fix and improve the namespace filtering description in README by [@&#8203;yuanchen8911](https://github.com/yuanchen8911) in [#&#8203;1379](https://github.com/kubernetes-sigs/descheduler/pull/1379)
- Add an extra parameter ExitCode to RemoveFailedPods by [@&#8203;yuanchen8911](https://github.com/yuanchen8911) in [#&#8203;1381](https://github.com/kubernetes-sigs/descheduler/pull/1381)
- 753 - Descheduling framework by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1372](https://github.com/kubernetes-sigs/descheduler/pull/1372)
- KEP-753: Descheduling framework: update diagram by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1396](https://github.com/kubernetes-sigs/descheduler/pull/1396)
- \[release 1.30] upgrade kubernetes version and docs by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1400](https://github.com/kubernetes-sigs/descheduler/pull/1400)

#### New Contributors

- [@&#8203;xujihui1985](https://github.com/xujihui1985) made their first contribution in [#&#8203;1334](https://github.com/kubernetes-sigs/descheduler/pull/1334)
- [@&#8203;UAntBou](https://github.com/UAntBou) made their first contribution in [#&#8203;1289](https://github.com/kubernetes-sigs/descheduler/pull/1289)
- [@&#8203;tioxy](https://github.com/tioxy) made their first contribution in [#&#8203;1349](https://github.com/kubernetes-sigs/descheduler/pull/1349)
- [@&#8203;jackfrancis](https://github.com/jackfrancis) made their first contribution in [#&#8203;1362](https://github.com/kubernetes-sigs/descheduler/pull/1362)
- [@&#8203;nikimanoledaki](https://github.com/nikimanoledaki) made their first contribution in [#&#8203;1356](https://github.com/kubernetes-sigs/descheduler/pull/1356)
- [@&#8203;etoster](https://github.com/etoster) made their first contribution in [#&#8203;1360](https://github.com/kubernetes-sigs/descheduler/pull/1360)
- [@&#8203;ls-2018](https://github.com/ls-2018) made their first contribution in [#&#8203;1365](https://github.com/kubernetes-sigs/descheduler/pull/1365)
- [@&#8203;fanhaouu](https://github.com/fanhaouu) made their first contribution in [#&#8203;1369](https://github.com/kubernetes-sigs/descheduler/pull/1369)
- [@&#8203;agmimidi](https://github.com/agmimidi) made their first contribution in [#&#8203;1376](https://github.com/kubernetes-sigs/descheduler/pull/1376)
- [@&#8203;yuanchen8911](https://github.com/yuanchen8911) made their first contribution in [#&#8203;1379](https://github.com/kubernetes-sigs/descheduler/pull/1379)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.29.0...v0.30.0>

### [`v0.29.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.29.0): Descheduler v0.29.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.28.1...v0.29.0)

#### What's Changed

- topologySpreadConstraints: handle `nodeTaintsPolicy` and `nodeAffinityPolicy` constraints by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1218](https://github.com/kubernetes-sigs/descheduler/pull/1218)
- fix: structured err logs in eviction by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1228](https://github.com/kubernetes-sigs/descheduler/pull/1228)
- helm: update cronjob args argument to avoid unmarshal error by [@&#8203;cayla](https://github.com/cayla) in [#&#8203;1229](https://github.com/kubernetes-sigs/descheduler/pull/1229)
- fix: golangci config by [@&#8203;jklaw90](https://github.com/jklaw90) in [#&#8203;1242](https://github.com/kubernetes-sigs/descheduler/pull/1242)
- docs: fix evictableNamespaces example by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1241](https://github.com/kubernetes-sigs/descheduler/pull/1241)
- update image references to point to v0.28.0 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1246](https://github.com/kubernetes-sigs/descheduler/pull/1246)
- nodefit: use info log level when pod doesn't fit by [@&#8203;antoinedeschenes](https://github.com/antoinedeschenes) in [#&#8203;1220](https://github.com/kubernetes-sigs/descheduler/pull/1220)
- helm: support of `timeZone` for CronJob by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1245](https://github.com/kubernetes-sigs/descheduler/pull/1245)
- helm: ability to specify `dnsConfig` by [@&#8203;audip](https://github.com/audip) in [#&#8203;1260](https://github.com/kubernetes-sigs/descheduler/pull/1260)
- Bump dependencies to address CVE-2023-44487 by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1263](https://github.com/kubernetes-sigs/descheduler/pull/1263)
- CVE 2023 44487 fixes by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1270](https://github.com/kubernetes-sigs/descheduler/pull/1270)
- bump deps for CVE-2023-25151 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1277](https://github.com/kubernetes-sigs/descheduler/pull/1277)
- topologyspreadconstraint: support `matchLabelKeys` by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1233](https://github.com/kubernetes-sigs/descheduler/pull/1233)
- fix: display ownerKey in the logs correctly by [@&#8203;dimunech](https://github.com/dimunech) in [#&#8203;1281](https://github.com/kubernetes-sigs/descheduler/pull/1281)
- fix: version skew compatibility for managed kubernetes providers by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1249](https://github.com/kubernetes-sigs/descheduler/pull/1249)
- adding jklaw90 to reviewers by [@&#8203;jklaw90](https://github.com/jklaw90) in [#&#8203;1276](https://github.com/kubernetes-sigs/descheduler/pull/1276)
- copy cherry\_pick\_pull script form kubernetes/kubernetes by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1282](https://github.com/kubernetes-sigs/descheduler/pull/1282)
- CVE-2023-47108: replace otelgrpc version by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1293](https://github.com/kubernetes-sigs/descheduler/pull/1293)
- fix: json logging by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1296](https://github.com/kubernetes-sigs/descheduler/pull/1296)
- Make the logged nodeutilization percentages human-readable by [@&#8203;PeterSzegedi](https://github.com/PeterSzegedi) in [#&#8203;1294](https://github.com/kubernetes-sigs/descheduler/pull/1294)
- fix: revert defer of context done by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1299](https://github.com/kubernetes-sigs/descheduler/pull/1299)
- chore: upgrade libs to kubernetes 0.28.4 and matching go version by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1292](https://github.com/kubernetes-sigs/descheduler/pull/1292)
- release v0.28.1: bump helm chart and images by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1305](https://github.com/kubernetes-sigs/descheduler/pull/1305)
- helm: ability to specify security context for pod by [@&#8203;victorgs](https://github.com/victorgs) in [#&#8203;1311](https://github.com/kubernetes-sigs/descheduler/pull/1311)
- helm: allow configuration of ipFamilyPolicy by [@&#8203;dongjiang1989](https://github.com/dongjiang1989) in [#&#8203;1314](https://github.com/kubernetes-sigs/descheduler/pull/1314)
- fix: topologySpreadConstraint fields in structured logs by [@&#8203;SataQiu](https://github.com/SataQiu) in [#&#8203;1317](https://github.com/kubernetes-sigs/descheduler/pull/1317)
- `PodLifeTime`: consider pods with container status `ImagePullBackOff` by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1318](https://github.com/kubernetes-sigs/descheduler/pull/1318)
- kubernetes 1.29: update deps and go-version by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1322](https://github.com/kubernetes-sigs/descheduler/pull/1322)
- `CVE-2023-48795`: bump k8s deps by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1333](https://github.com/kubernetes-sigs/descheduler/pull/1333)

#### New Contributors

- [@&#8203;cayla](https://github.com/cayla) made their first contribution in [#&#8203;1229](https://github.com/kubernetes-sigs/descheduler/pull/1229)
- [@&#8203;dimunech](https://github.com/dimunech) made their first contribution in [#&#8203;1281](https://github.com/kubernetes-sigs/descheduler/pull/1281)
- [@&#8203;PeterSzegedi](https://github.com/PeterSzegedi) made their first contribution in [#&#8203;1294](https://github.com/kubernetes-sigs/descheduler/pull/1294)
- [@&#8203;victorgs](https://github.com/victorgs) made their first contribution in [#&#8203;1311](https://github.com/kubernetes-sigs/descheduler/pull/1311)
- [@&#8203;SataQiu](https://github.com/SataQiu) made their first contribution in [#&#8203;1317](https://github.com/kubernetes-sigs/descheduler/pull/1317)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.28.0...v0.29.0>

### [`v0.28.1`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.28.1): Descheduler v0.28.1

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.28.0...v0.28.1)

#### What's Changed

- topologySpreadConstraints: handle `nodeTaintsPolicy` and `nodeAffinityPolicy` constraints by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1218](https://github.com/kubernetes-sigs/descheduler/pull/1218)
- fix: structured err logs in eviction by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1228](https://github.com/kubernetes-sigs/descheduler/pull/1228)
- helm: update cronjob args argument to avoid unmarshal error by [@&#8203;cayla](https://github.com/cayla) in [#&#8203;1229](https://github.com/kubernetes-sigs/descheduler/pull/1229)
- helm: update cronjob args argument to avoid unmarshal error by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1231](https://github.com/kubernetes-sigs/descheduler/pull/1231)
- fix: golangci config by [@&#8203;jklaw90](https://github.com/jklaw90) in [#&#8203;1242](https://github.com/kubernetes-sigs/descheduler/pull/1242)
- docs: fix evictableNamespaces example by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1241](https://github.com/kubernetes-sigs/descheduler/pull/1241)
- nodefit: use info log level when pod doesn't fit by [@&#8203;antoinedeschenes](https://github.com/antoinedeschenes) in [#&#8203;1220](https://github.com/kubernetes-sigs/descheduler/pull/1220)
- helm: support of `timeZone` for CronJob by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1245](https://github.com/kubernetes-sigs/descheduler/pull/1245)
- helm: ability to specify `dnsConfig` by [@&#8203;audip](https://github.com/audip) in [#&#8203;1260](https://github.com/kubernetes-sigs/descheduler/pull/1260)
- Bump dependencies to address CVE-2023-44487 by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1263](https://github.com/kubernetes-sigs/descheduler/pull/1263)
- CVE 2023 44487 fixes by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1270](https://github.com/kubernetes-sigs/descheduler/pull/1270)
- bump deps for CVE-2023-25151 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1277](https://github.com/kubernetes-sigs/descheduler/pull/1277)
- topologyspreadconstraint: support `matchLabelKeys` by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1233](https://github.com/kubernetes-sigs/descheduler/pull/1233)
- fix: display ownerKey in the logs correctly by [@&#8203;dimunech](https://github.com/dimunech) in [#&#8203;1281](https://github.com/kubernetes-sigs/descheduler/pull/1281)
- fix: version skew compatibility for managed kubernetes providers by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1249](https://github.com/kubernetes-sigs/descheduler/pull/1249)
- Release 1.28.1 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1285](https://github.com/kubernetes-sigs/descheduler/pull/1285)
- adding jklaw90 to reviewers by [@&#8203;jklaw90](https://github.com/jklaw90) in [#&#8203;1276](https://github.com/kubernetes-sigs/descheduler/pull/1276)
- copy cherry\_pick\_pull script form kubernetes/kubernetes by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1282](https://github.com/kubernetes-sigs/descheduler/pull/1282)
- CVE-2023-47108: replace otelgrpc version by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1293](https://github.com/kubernetes-sigs/descheduler/pull/1293)
- fix: json logging by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1296](https://github.com/kubernetes-sigs/descheduler/pull/1296)
- Make the logged nodeutilization percentages human-readable by [@&#8203;PeterSzegedi](https://github.com/PeterSzegedi) in [#&#8203;1294](https://github.com/kubernetes-sigs/descheduler/pull/1294)
- fix: revert defer of context done by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1299](https://github.com/kubernetes-sigs/descheduler/pull/1299)
- v0.28.1 - sync release-1.28 branch by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1301](https://github.com/kubernetes-sigs/descheduler/pull/1301)
- Automated cherry pick of [#&#8203;1292](https://github.com/kubernetes-sigs/descheduler/issues/1292): chore: upgrade libs to kubernetes 0.28.4 and matching go by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1302](https://github.com/kubernetes-sigs/descheduler/pull/1302)

#### New Contributors

- [@&#8203;cayla](https://github.com/cayla) made their first contribution in [#&#8203;1229](https://github.com/kubernetes-sigs/descheduler/pull/1229)
- [@&#8203;dimunech](https://github.com/dimunech) made their first contribution in [#&#8203;1281](https://github.com/kubernetes-sigs/descheduler/pull/1281)
- [@&#8203;PeterSzegedi](https://github.com/PeterSzegedi) made their first contribution in [#&#8203;1294](https://github.com/kubernetes-sigs/descheduler/pull/1294)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.28.0...v0.28.1>

### [`v0.28.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.28.0): Descheduler v0.28.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.27.1...v0.28.0)

#### What's Changed

- add unit tests for version compatibility check by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1096](https://github.com/kubernetes-sigs/descheduler/pull/1096)
- fix plugin arg conversion when using multiple profiles with same plugin by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1143](https://github.com/kubernetes-sigs/descheduler/pull/1143)
- Use dl.k8s.io instead of kubernetes-release bucket by [@&#8203;ratnopamc](https://github.com/ratnopamc) in [#&#8203;1145](https://github.com/kubernetes-sigs/descheduler/pull/1145)
- update deprecated sets.String to generic sets by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1146](https://github.com/kubernetes-sigs/descheduler/pull/1146)
- helm: ability to override command and args. set args inline by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1151](https://github.com/kubernetes-sigs/descheduler/pull/1151)
- fix: imagepullsecrets indentation for kind: Deployment by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1150](https://github.com/kubernetes-sigs/descheduler/pull/1150)
- docs: supplement missing link by [@&#8203;mikutas](https://github.com/mikutas) in [#&#8203;1159](https://github.com/kubernetes-sigs/descheduler/pull/1159)
- bump chart to v0.27.1 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1160](https://github.com/kubernetes-sigs/descheduler/pull/1160)
- Custom labels for ServiceMonitor resource by [@&#8203;nlamirault](https://github.com/nlamirault) in [#&#8203;1147](https://github.com/kubernetes-sigs/descheduler/pull/1147)
- pod anti-affinity check among nodes by [@&#8203;10hin](https://github.com/10hin) in [#&#8203;1033](https://github.com/kubernetes-sigs/descheduler/pull/1033)
- PodLifeTime: support CrashLoopBackOff container state by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1164](https://github.com/kubernetes-sigs/descheduler/pull/1164)
- update pause image from 'kubernetes/pause' to 'registry.k8s.io/pause' by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1166](https://github.com/kubernetes-sigs/descheduler/pull/1166)
- TooManyRestart: state filter for CrashLoopBackOff by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1165](https://github.com/kubernetes-sigs/descheduler/pull/1165)
- Replace deprecated command with environment file by [@&#8203;jongwooo](https://github.com/jongwooo) in [#&#8203;1173](https://github.com/kubernetes-sigs/descheduler/pull/1173)
- use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1163](https://github.com/kubernetes-sigs/descheduler/pull/1163)
- removepodsviolatingtopologyspreadconstraint: implement explicit constraints by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1148](https://github.com/kubernetes-sigs/descheduler/pull/1148)
- FakeClientset: bump watch channel size by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1174](https://github.com/kubernetes-sigs/descheduler/pull/1174)
- deschedule/balance order (continuation) by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1177](https://github.com/kubernetes-sigs/descheduler/pull/1177)
- bump log level for processing info by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1141](https://github.com/kubernetes-sigs/descheduler/pull/1141)
- fix priority threshold by name alone by [@&#8203;knelasevero](https://github.com/knelasevero) in [#&#8203;1186](https://github.com/kubernetes-sigs/descheduler/pull/1186)
- feat: Enable open telemetry tracing by [@&#8203;harshanarayana](https://github.com/harshanarayana) in [#&#8203;1189](https://github.com/kubernetes-sigs/descheduler/pull/1189)
- bump to k8s 1.28 beta.0 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1201](https://github.com/kubernetes-sigs/descheduler/pull/1201)
- nodefit: aggregate errors by [@&#8203;lucming](https://github.com/lucming) in [#&#8203;1203](https://github.com/kubernetes-sigs/descheduler/pull/1203)
- fix: base configmap missing plugin RemoveDuplicates by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1207](https://github.com/kubernetes-sigs/descheduler/pull/1207)
- feat: Implement preferredDuringSchedulingIgnoredDuringExecution for RemovePodsViolatingNodeAffinity by [@&#8203;jordipiqueselles](https://github.com/jordipiqueselles) in [#&#8203;1210](https://github.com/kubernetes-sigs/descheduler/pull/1210)
- fix: descheduler\_loop\_duration\_seconds has wrong value by [@&#8203;Abirdcfly](https://github.com/Abirdcfly) in [#&#8203;1215](https://github.com/kubernetes-sigs/descheduler/pull/1215)
- .gitattribute to not pollute MRs or stats by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1202](https://github.com/kubernetes-sigs/descheduler/pull/1202)
- Bump Kubernetes dependencies to v1.28.0 by [@&#8203;JaneLiuL](https://github.com/JaneLiuL) in [#&#8203;1216](https://github.com/kubernetes-sigs/descheduler/pull/1216)
- profile: fix span attribute typo by [@&#8203;antoinedeschenes](https://github.com/antoinedeschenes) in [#&#8203;1221](https://github.com/kubernetes-sigs/descheduler/pull/1221)
- k8s 1.28: update docs and go-version by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1224](https://github.com/kubernetes-sigs/descheduler/pull/1224)

#### New Contributors

- [@&#8203;ratnopamc](https://github.com/ratnopamc) made their first contribution in [#&#8203;1145](https://github.com/kubernetes-sigs/descheduler/pull/1145)
- [@&#8203;mikutas](https://github.com/mikutas) made their first contribution in [#&#8203;1159](https://github.com/kubernetes-sigs/descheduler/pull/1159)
- [@&#8203;nlamirault](https://github.com/nlamirault) made their first contribution in [#&#8203;1147](https://github.com/kubernetes-sigs/descheduler/pull/1147)
- [@&#8203;10hin](https://github.com/10hin) made their first contribution in [#&#8203;1033](https://github.com/kubernetes-sigs/descheduler/pull/1033)
- [@&#8203;jongwooo](https://github.com/jongwooo) made their first contribution in [#&#8203;1173](https://github.com/kubernetes-sigs/descheduler/pull/1173)
- [@&#8203;jordipiqueselles](https://github.com/jordipiqueselles) made their first contribution in [#&#8203;1210](https://github.com/kubernetes-sigs/descheduler/pull/1210)
- [@&#8203;Abirdcfly](https://github.com/Abirdcfly) made their first contribution in [#&#8203;1215](https://github.com/kubernetes-sigs/descheduler/pull/1215)
- [@&#8203;antoinedeschenes](https://github.com/antoinedeschenes) made their first contribution in [#&#8203;1221](https://github.com/kubernetes-sigs/descheduler/pull/1221)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.27.0...v0.28.0>

### [`v0.27.1`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.27.1)

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.27.0...v0.27.1)

#### What's Changed

- fix plugin arg conversion when using multiple profiles with same plugin by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1158](https://github.com/kubernetes-sigs/descheduler/pull/1158)

**Full Changelog**: <https://github.com/kubernetes-sigs/descheduler/compare/v0.27.0...v0.27.1>

### [`v0.27.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.27.0): Descheduler v0.27.0

[Compare Source](https://github.com/kubernetes-sigs/descheduler/compare/v0.26.1...v0.27.0)

#### What's Changed

- add v1alpha2 registry based conversion by [@&#8203;knelasevero](https://github.com/knelasevero) in [#&#8203;1006](https://github.com/kubernetes-sigs/descheduler/pull/1006)
- support client connection configuration to provide QPS and burst by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1034](https://github.com/kubernetes-sigs/descheduler/pull/1034)
- enable auto generation of the documents by [@&#8203;harshanarayana](https://github.com/harshanarayana) in [#&#8203;1048](https://github.com/kubernetes-sigs/descheduler/pull/1048)
- Fix v1alpha1 conversion to use universal decoder by [@&#8203;gustavomfc](https://github.com/gustavomfc) in [#&#8203;1051](https://github.com/kubernetes-sigs/descheduler/pull/1051)
- metrics: enable loop duration and strategy duration metrics by [@&#8203;harshanarayana](https://github.com/harshanarayana) in [#&#8203;1041](https://github.com/kubernetes-sigs/descheduler/pull/1041)
- v1alpha2 docs by [@&#8203;knelasevero](https://github.com/knelasevero) in [#&#8203;1049](https://github.com/kubernetes-sigs/descheduler/pull/1049)
- remove some logic useless by [@&#8203;lucming](https://github.com/lucming) in [#&#8203;1059](https://github.com/kubernetes-sigs/descheduler/pull/1059)
- check pod number by [@&#8203;xiaoanyunfei](https://github.com/xiaoanyunfei) in [#&#8203;1057](https://github.com/kubernetes-sigs/descheduler/pull/1057)
- Adding descheduler policy API Version option in helm templates by [@&#8203;gdasson](https://github.com/gdasson) in [#&#8203;1068](https://github.com/kubernetes-sigs/descheduler/pull/1068)
- Fix typo in nodeutilization types by [@&#8203;JannikSt](https://github.com/JannikSt) in [#&#8203;1072](https://github.com/kubernetes-sigs/descheduler/pull/1072)
- Add note to HighNodeUtilization readme for GKE users by [@&#8203;damemi](https://github.com/damemi) in [#&#8203;1075](https://github.com/kubernetes-sigs/descheduler/pull/1075)
- expose security context from helm chart by [@&#8203;JaneLiuL](https://github.com/JaneLiuL) in [#&#8203;1066](https://github.com/kubernetes-sigs/descheduler/pull/1066)
- remove e2e tests from helm github action by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;937](https://github.com/kubernetes-sigs/descheduler/pull/937)
- Add k8s compatibility warnings to logs by [@&#8203;JaneLiuL](https://github.com/JaneLiuL) in [#&#8203;1063](https://github.com/kubernetes-sigs/descheduler/pull/1063)
- docs: typo by [@&#8203;dangen-effy](https://github.com/dangen-effy) in [#&#8203;1090](https://github.com/kubernetes-sigs/descheduler/pull/1090)
- Descheduling profile with PoC fake plugin by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1093](https://github.com/kubernetes-sigs/descheduler/pull/1093)
- bump golangci for go 1.20 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1101](https://github.com/kubernetes-sigs/descheduler/pull/1101)
- dry-run cli flag to use uppercase by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1103](https://github.com/kubernetes-sigs/descheduler/pull/1103)
- fix default value assignment of EvictLocalStoragePods by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1104](https://github.com/kubernetes-sigs/descheduler/pull/1104)
- bump to k8s 1.27 rc0 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1100](https://github.com/kubernetes-sigs/descheduler/pull/1100)
- fix go doc for method IsPodWithPVC by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1105](https://github.com/kubernetes-sigs/descheduler/pull/1105)
- Populate extension points automatically for deschedule, balance, filter and preEvictionFilter by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1097](https://github.com/kubernetes-sigs/descheduler/pull/1097)
- Delete "io/ioutil" package. by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1111](https://github.com/kubernetes-sigs/descheduler/pull/1111)
- Fix typo log message for cachedClient by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1112](https://github.com/kubernetes-sigs/descheduler/pull/1112)
- bump to k8s 1.27 by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1115](https://github.com/kubernetes-sigs/descheduler/pull/1115)
- update v0.26.1 references by [@&#8203;a7i](https://github.com/a7i) in [#&#8203;1109](https://github.com/kubernetes-sigs/descheduler/pull/1109)
- Drop Evict extension point by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1120](https://github.com/kubernetes-sigs/descheduler/pull/1120)
- Add json tags to internal api fields by [@&#8203;damemi](https://github.com/damemi) in [#&#8203;1122](https://github.com/kubernetes-sigs/descheduler/pull/1122)
- Add knelasevero to approvers by [@&#8203;knelasevero](https://github.com/knelasevero) in [#&#8203;1130](https://github.com/kubernetes-sigs/descheduler/pull/1130)
- Drop remaining mentions of evict extension point by [@&#8203;ingvagabund](https://github.com/ingvagabund) in [#&#8203;1127](https://github.com/kubernetes-sigs/descheduler/pull/1127)
- Add note on documentation versions with links by [@&#8203;damemi](https://github.com/damemi) in [#&#8203;1132](https://github.com/kubernetes-sigs/descheduler/pull/1132)
- Add missing quote to configmap by [@&#8203;damemi](https://github.com/damemi) in [#&#8203;1133](https://github.com/kubernetes-sigs/descheduler/pull/1133)
- fix policy example configmap by [@&#8203;AllenZMC](https://github.com/AllenZMC) in [#&#8203;1135](https://github.com/kubernetes-sigs/descheduler/pull/1135)
- Do some code cleans. by [@&#8203;yanggangtony](https://github.com/yanggangtony) in [#&#8203;1129](https://github.com/kubernetes-sigs/descheduler/pull/1129)

#### New Contributors

- [@&#8203;Bobonium](https://github.com/Bobonium) made their first contribution in [#&#8203;995](https://github.com/kubernetes-sigs/descheduler/pull/995)
- [@&#8203;harshanarayana](https://github.com/harshanarayana) made their first contribution in [#&#8203;1048](https://github.com/kubernetes-sigs/descheduler/pull/1048)
- [@&#8203;gustavomfc](https://github.com/gustavomfc) made their first contribution in [#&#8203;1051](https://github.com/kubernetes-sigs/descheduler/pull/1051)
- [@&#8203;lucming](https://github.com/lucming) made their first contribution in [#&#8203;1059](https://github.com/kubernetes-sigs/descheduler/pull/1059)
- [@&#8203;gdasson](https://github.com/gdasson) made their first contribution in [#&#8203;1068](https://github.com/kubernetes-sigs/descheduler/pull/1068)
- [@&#8203;JannikSt](https://github.com/JannikSt) made their first contribution in [#&#8203;1072](https://github.com/kubernetes-sigs/descheduler/pull/1072)
- [@&#8203;dangen-effy](https://github.com/dangen-effy) made their first contribution in [#&#8203;1090](https://github.com/kubernetes-sigs/descheduler/pull/1090)
- [@&#8203;yanggangtony](https://github.com/yanggangtony) made their first contribution in [#&#8203;1103](https://github.com/kubernetes-sigs/descheduler/pull/1103)
- [@&#8203;AllenZMC](https://github.com/AllenZMC) made their first contribution in [#&#8203;1135](https://github.com/kubernetes-sigs/descheduler/pull/1135)

**Full Changelog**: <https://github.com/kubernete…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feature: support setting gracePeriodSeconds in DeschedulerPolicy

4 participants