Skip to content

Conversation

@googs1025
Copy link
Member

/kind feature

  • add event when EvictPod failed.
  • add unit test coverage

When it comes to eviction, what we really care about are the errors that occur during evictions. So I tend to include events when an eviction fails. Besides metrics and application logs, events are also a valuable source of information. Typically, operations personnel respond to events to manage the cluster effectively.

@k8s-ci-robot k8s-ci-robot added 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/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Oct 26, 2024
@googs1025
Copy link
Member Author

/retest

@ingvagabund ingvagabund self-assigned this Nov 12, 2024
t.Run(test.description, func(t *testing.T) {
fakeClient := fake.NewClientset(test.pods...)
fakeClient.PrependReactor("create", "pods/eviction", func(action core.Action) (handled bool, ret runtime.Object, err error) {
if test.wantErrMsg == fmt.Sprintf(notFoundText, test.evictedPod.Name, test.evictedPod.Name) {
Copy link
Contributor

Choose a reason for hiding this comment

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

What about to pass k8serrors.XXX directly? I.e.

[]struct {
	description string
	node        *v1.Node
	evictedPod  *v1.Pod
	pods        []runtime.Object
	wantErr     error
}{
	...
	{
		description: "test pod eviction - pod absent (not found error)",
		node:        node1,
		evictedPod:  pod1,
		pods:        []runtime.Object{test.BuildTestPod("p2", 400, 0, "node1", nil), test.BuildTestPod("p3", 450, 0, "node1", nil)},
		wantErr:  k8serrors.NewNotFound(v1.Resource("pods"), pod1.Name),
	},
}
...
fakeClient.PrependReactor("create", "pods/eviction", func(action core.Action) (handled bool, ret runtime.Object, err error) {
	return true, nil, test.wantErr
})

The original wantErr bool can be turned into wantErr != nil.

Copy link
Member Author

Choose a reason for hiding this comment

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

Because we return using the fmt.Error, we cannot directly use k8serrors.XXX, but we can simplify it to directly use fmt.Error to return

err := client.PolicyV1().Evictions(eviction.Namespace).Evict(ctx, eviction)
if apierrors.IsTooManyRequests(err) {
return fmt.Errorf("error when evicting pod (ignoring) %q: %v", pod.Name, err)
}
if apierrors.IsNotFound(err) {
return fmt.Errorf("pod not found when evicting %q: %v", pod.Name, err)
}
return err

if test.expectedError != nil {
return true, nil, test.expectedError
}
return true, nil, nil
Copy link
Contributor

Choose a reason for hiding this comment

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

The whole function body can be reduced to return true, nil, test.expectedError.

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 test branch 3 times, most recently from 04775aa to 44f3adf Compare November 13, 2024 14:50
@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
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 23, 2024
@googs1025
Copy link
Member Author

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

}
span.AddEvent("Eviction Failed", trace.WithAttributes(attribute.String("node", pod.Spec.NodeName), attribute.String("err", err.Error())))
klog.ErrorS(err, "Error evicting pod", "limit", *pe.maxPodsToEvictTotal)
pe.eventRecorder.Eventf(pod, nil, v1.EventTypeWarning, "EvictionFailed", "Descheduled", "pod eviction from %v node by sigs.k8s.io/descheduler failed: total eviction limit exceeded (%v)", pod.Spec.NodeName, *pe.maxPodsToEvictTotal)
Copy link
Contributor

@ingvagabund ingvagabund Dec 6, 2024

Choose a reason for hiding this comment

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

If these events get produced by default in a cluster with many pods the cluster gets flooded with events. This needs to be disabled by default and enabled if needed. By extending DeschedulerConfiguration with a new field.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, this sounds more reasonable. I will add a new field in the DeschedulerConfiguration. Because we have similar monitoring cluster-specific failure events (ex: scheduling failure, eviction failure, etc.), this can quickly let cluster administrators know important event information.

Copy link
Member Author

Choose a reason for hiding this comment

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

i will handle this in weekend

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 test branch 4 times, most recently from 0a50078 to e1f8046 Compare December 7, 2024 07:35
@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 Dec 17, 2024
@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 Dec 17, 2024
@k8s-ci-robot k8s-ci-robot merged commit 29ff28c into kubernetes-sigs:master Dec 17, 2024
9 checks passed
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/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants