-
Notifications
You must be signed in to change notification settings - Fork 672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
removepodsviolatingtopologyspreadconstraint: implement explicit constraints #1148
Conversation
Maybe we should call this internal nodeFit something different? Like we did for |
@knelasevero Yes, I like that idea. Would |
07f3657
to
189f3ef
Compare
Sounds good to me. @damemi @ingvagabund , WDYT? |
pkg/framework/plugins/removepodsviolatingtopologyspreadconstraint/types.go
Outdated
Show resolved
Hide resolved
Making it configurable is reasonable. The semantics of nodeFit before eviction and right before eviction is not clear here. The original intent of the nodeFit here was to evict pods that can be scheduled to a different node to avoid evicting a pod that lands back on the same node. Thus, helping to improve the skew. The case where a new node can be provisioned as a reaction to eviction was not considered during the implementation. For that, we should not always assume a node pool is static.
Both We can probably completely omit the nodeFit keyword part. On the other hand when we expose the possibility to ignore nodeFit conditions, do we know which specific condition is actually causing limitation? Based on #1138 there's no existing node because:
Q is whether we wanna expose this level of detail. Or create groups of conditions that can be enabled/disabled as a whole unit. Providing an argument to completely disable NodeFit seems reasonable. On the other hand what if we get a request to disable/enable a specific condition mentioned in the list? One might want to test for |
@a7i also better to split this PR into two. One commit for each change (explicit constraints, new nodeFit alias argument). E.g. in case we need to revert. |
@ingvagabund thanks for your review.
The intention of nodeFit when balancing domains is to calculate the spread/skew given the "fit" constraints. This is particularly helpful for a best-effort constraint such as "ScheduleAnyway".
RemovePodsViolatingTopologySpreadConstraint only considers nodesBelowAverage for NodeFit because when balancing domains, it should only consider nodes that can help the skew. Default Evictor considers all available nodes.
I had created an Issue for NodeFit Specs to be able to provide that level of detail. We can move the discussion there: #1149
Generally, I would agree. However, for my particular use-case, it only helps if both args are available. If it's rolled back, then might as well roll it all back because just one wouldn't satisfy my use cases. As described in the PR, my use-cases are:
|
I think we can have a single PR, however, with 2 commits. Not saying we would revert a single commit, and leave it at that. We might revert a single one and still pursue this use case in a different approach taking advantage of the first commit. Or revert both. Still makes sense to separate it. Would #1149 discussion make this PR obsolete? Maybe we should have a proper design proposal for all our nodeFit "problems"? There are a few issues on that topic |
a283e1f
to
e08956c
Compare
@ingvagabund @knelasevero Thank you for your feedback ❤️
Look forward to your feedback |
@@ -31,4 +31,5 @@ type RemovePodsViolatingTopologySpreadConstraintArgs struct { | |||
Namespaces *api.Namespaces `json:"namespaces"` | |||
LabelSelector *metav1.LabelSelector `json:"labelSelector"` | |||
IncludeSoftConstraints bool `json:"includeSoftConstraints"` | |||
TopologyBalanceNodeFit *bool `json:"TopologyBalanceNodeFit"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about?
RemovePodsViolatingTopologySpreadConstraintArgs:
- TopologyBalanceNodeFit: [] // empty field -> fall back to defaults which is a subject to change
- TopologyBalanceNodeFit: [""] // empty string -> disable the node fit checks
- TopologyBalanceNodeFit: ["Cond1", ..., "CondN"] // arbitrary list of enabled conditions (implemented later)
type NodeFitConditions string
var (
NoCondition NodeFitConditions = ""
)
type RemovePodsViolatingTopologySpreadConstraintArgs struct {
...
TopologyBalanceNodeFit []NodeFitConditions
}
Alternatively, ""
can be replaced with "NoCheck"
or similar string which if specified will be the only valid item in the list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was under the impression that we will handle NodeFit Spec in a subsequent design/PR. But given that, perhaps we should design/implement that first.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is more like a middle step so once the NodeFit is refined the API of TopologyBalanceNodeFit
does not need to change. It will "just" get extended with additional enums.
As discussed on the community meeting, let's keep the new |
[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 |
/hold |
My apologies, let me address the casing issue real quick:
to:
|
fyi, we just tested this in our cluster, and this is the config that worked for us:
|
@a7i file conflict :( |
…o control whether to perform nodefit when balacning domains
/lgtm |
/remove-hold |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [descheduler](https://togithub.com/kubernetes-sigs/descheduler) | minor | `0.27.1` -> `0.28.0` | --- ### Release Notes <details> <summary>kubernetes-sigs/descheduler (descheduler)</summary> ### [`v0.28.0`](https://togithub.com/kubernetes-sigs/descheduler/releases/tag/v0.28.0): Descheduler v0.28.0 [Compare Source](https://togithub.com/kubernetes-sigs/descheduler/compare/v0.27.1...v0.28.0) #### What's Changed - add unit tests for version compatibility check by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1096](https://togithub.com/kubernetes-sigs/descheduler/pull/1096) - fix plugin arg conversion when using multiple profiles with same plugin by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1143](https://togithub.com/kubernetes-sigs/descheduler/pull/1143) - Use dl.k8s.io instead of kubernetes-release bucket by [@​ratnopamc](https://togithub.com/ratnopamc) in [https://github.com/kubernetes-sigs/descheduler/pull/1145](https://togithub.com/kubernetes-sigs/descheduler/pull/1145) - update deprecated sets.String to generic sets by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1146](https://togithub.com/kubernetes-sigs/descheduler/pull/1146) - helm: ability to override command and args. set args inline by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1151](https://togithub.com/kubernetes-sigs/descheduler/pull/1151) - fix: imagepullsecrets indentation for kind: Deployment by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1150](https://togithub.com/kubernetes-sigs/descheduler/pull/1150) - docs: supplement missing link by [@​mikutas](https://togithub.com/mikutas) in [https://github.com/kubernetes-sigs/descheduler/pull/1159](https://togithub.com/kubernetes-sigs/descheduler/pull/1159) - bump chart to v0.27.1 by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1160](https://togithub.com/kubernetes-sigs/descheduler/pull/1160) - Custom labels for ServiceMonitor resource by [@​nlamirault](https://togithub.com/nlamirault) in [https://github.com/kubernetes-sigs/descheduler/pull/1147](https://togithub.com/kubernetes-sigs/descheduler/pull/1147) - pod anti-affinity check among nodes by [@​10hin](https://togithub.com/10hin) in [https://github.com/kubernetes-sigs/descheduler/pull/1033](https://togithub.com/kubernetes-sigs/descheduler/pull/1033) - PodLifeTime: support CrashLoopBackOff container state by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1164](https://togithub.com/kubernetes-sigs/descheduler/pull/1164) - update pause image from 'kubernetes/pause' to 'registry.k8s.io/pause' by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1166](https://togithub.com/kubernetes-sigs/descheduler/pull/1166) - TooManyRestart: state filter for CrashLoopBackOff by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1165](https://togithub.com/kubernetes-sigs/descheduler/pull/1165) - Replace deprecated command with environment file by [@​jongwooo](https://togithub.com/jongwooo) in [https://github.com/kubernetes-sigs/descheduler/pull/1173](https://togithub.com/kubernetes-sigs/descheduler/pull/1173) - use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1163](https://togithub.com/kubernetes-sigs/descheduler/pull/1163) - removepodsviolatingtopologyspreadconstraint: implement explicit constraints by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1148](https://togithub.com/kubernetes-sigs/descheduler/pull/1148) - FakeClientset: bump watch channel size by [@​ingvagabund](https://togithub.com/ingvagabund) in [https://github.com/kubernetes-sigs/descheduler/pull/1174](https://togithub.com/kubernetes-sigs/descheduler/pull/1174) - deschedule/balance order (continuation) by [@​ingvagabund](https://togithub.com/ingvagabund) in [https://github.com/kubernetes-sigs/descheduler/pull/1177](https://togithub.com/kubernetes-sigs/descheduler/pull/1177) - bump log level for processing info by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1141](https://togithub.com/kubernetes-sigs/descheduler/pull/1141) - fix priority threshold by name alone by [@​knelasevero](https://togithub.com/knelasevero) in [https://github.com/kubernetes-sigs/descheduler/pull/1186](https://togithub.com/kubernetes-sigs/descheduler/pull/1186) - feat: Enable open telemetry tracing by [@​harshanarayana](https://togithub.com/harshanarayana) in [https://github.com/kubernetes-sigs/descheduler/pull/1189](https://togithub.com/kubernetes-sigs/descheduler/pull/1189) - bump to k8s 1.28 beta.0 by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1201](https://togithub.com/kubernetes-sigs/descheduler/pull/1201) - nodefit: aggregate errors by [@​lucming](https://togithub.com/lucming) in [https://github.com/kubernetes-sigs/descheduler/pull/1203](https://togithub.com/kubernetes-sigs/descheduler/pull/1203) - fix: base configmap missing plugin RemoveDuplicates by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1207](https://togithub.com/kubernetes-sigs/descheduler/pull/1207) - feat: Implement preferredDuringSchedulingIgnoredDuringExecution for RemovePodsViolatingNodeAffinity by [@​jordipiqueselles](https://togithub.com/jordipiqueselles) in [https://github.com/kubernetes-sigs/descheduler/pull/1210](https://togithub.com/kubernetes-sigs/descheduler/pull/1210) - fix: descheduler_loop_duration_seconds has wrong value by [@​Abirdcfly](https://togithub.com/Abirdcfly) in [https://github.com/kubernetes-sigs/descheduler/pull/1215](https://togithub.com/kubernetes-sigs/descheduler/pull/1215) - .gitattribute to not pollute PRs or stats by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1202](https://togithub.com/kubernetes-sigs/descheduler/pull/1202) - Bump Kubernetes dependencies to v1.28.0 by [@​JaneLiuL](https://togithub.com/JaneLiuL) in [https://github.com/kubernetes-sigs/descheduler/pull/1216](https://togithub.com/kubernetes-sigs/descheduler/pull/1216) - profile: fix span attribute typo by [@​antoinedeschenes](https://togithub.com/antoinedeschenes) in [https://github.com/kubernetes-sigs/descheduler/pull/1221](https://togithub.com/kubernetes-sigs/descheduler/pull/1221) - k8s 1.28: update docs and go-version by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1224](https://togithub.com/kubernetes-sigs/descheduler/pull/1224) #### New Contributors - [@​ratnopamc](https://togithub.com/ratnopamc) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1145](https://togithub.com/kubernetes-sigs/descheduler/pull/1145) - [@​mikutas](https://togithub.com/mikutas) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1159](https://togithub.com/kubernetes-sigs/descheduler/pull/1159) - [@​nlamirault](https://togithub.com/nlamirault) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1147](https://togithub.com/kubernetes-sigs/descheduler/pull/1147) - [@​10hin](https://togithub.com/10hin) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1033](https://togithub.com/kubernetes-sigs/descheduler/pull/1033) - [@​jongwooo](https://togithub.com/jongwooo) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1173](https://togithub.com/kubernetes-sigs/descheduler/pull/1173) - [@​jordipiqueselles](https://togithub.com/jordipiqueselles) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1210](https://togithub.com/kubernetes-sigs/descheduler/pull/1210) - [@​Abirdcfly](https://togithub.com/Abirdcfly) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1215](https://togithub.com/kubernetes-sigs/descheduler/pull/1215) - [@​antoinedeschenes](https://togithub.com/antoinedeschenes) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1221](https://togithub.com/kubernetes-sigs/descheduler/pull/1221) **Full Changelog**: kubernetes-sigs/descheduler@v0.27.0...v0.28.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41Ny44IiwidXBkYXRlZEluVmVyIjoiMzYuNTcuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: repo-jeeves <106431701+repo-jeeves[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [descheduler](https://github.com/kubernetes-sigs/descheduler) | minor | `0.27.1` -> `0.28.0` | --- ### Release Notes <details> <summary>kubernetes-sigs/descheduler (descheduler)</summary> ### [`v0.28.0`](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.28.0): Descheduler v0.28.0 [Compare Source](kubernetes-sigs/descheduler@v0.27.1...v0.28.0) #### What's Changed - add unit tests for version compatibility check by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1096 - fix plugin arg conversion when using multiple profiles with same plugin by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1143 - Use dl.k8s.io instead of kubernetes-release bucket by [@​ratnopamc](https://github.com/ratnopamc) in kubernetes-sigs/descheduler#1145 - update deprecated sets.String to generic sets by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1146 - helm: ability to override command and args. set args inline by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1151 - fix: imagepullsecrets indentation for kind: Deployment by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1150 - docs: supplement missing link by [@​mikutas](https://github.com/mikutas) in kubernetes-sigs/descheduler#1159 - bump chart to v0.27.1 by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1160 - Custom labels for ServiceMonitor resource by [@​nlamirault](https://github.com/nlamirault) in kubernetes-sigs/descheduler#1147 - pod anti-affinity check among nodes by [@​10hin](https://github.com/10hin) in kubernetes-sigs/descheduler#1033 - PodLifeTime: support CrashLoopBackOff container state by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1164 - update pause image from 'kubernetes/pause' to 'registry.k8s.io/pause' by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1166 - TooManyRestart: state filter for CrashLoopBackOff by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1165 - Replace deprecated command with environment file by [@​jongwooo](https://github.com/jongwooo) in kubernetes-sigs/descheduler#1173 - use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1163 - removepodsviolatingtopologyspreadconstraint: implement explicit constraints by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1148 - FakeClientset: bump watch channel size by [@​ingvagabund](https://github.com/ingvagabund) in kubernetes-sigs/descheduler#1174 - deschedule/balance order (continuation) by [@​ingvagabund](https://github.com/ingvagabund) in kubernetes-sigs/descheduler#1177 - bump log level for processing info by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1141 - fix priority threshold by name alone by [@​knelasevero](https://github.com/knelasevero) in kubernetes-sigs/descheduler#1186 - feat: Enable open telemetry tracing by [@​harshanarayana](https://github.com/harshanarayana) in kubernetes-sigs/descheduler#1189 - bump to k8s 1.28 beta.0 by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1201 - nodefit: aggregate errors by [@​lucming](https://github.com/lucming) in kubernetes-sigs/descheduler#1203 - fix: base configmap missing plugin RemoveDuplicates by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1207 - feat: Implement preferredDuringSchedulingIgnoredDuringExecution for RemovePodsViolatingNodeAffinity by [@​jordipiqueselles](https://github.com/jordipiqueselles) in kubernetes-sigs/descheduler#1210 - fix: descheduler_loop_duration_seconds has wrong value by [@​Abirdcfly](https://github.com/Abirdcfly) in kubernetes-sigs/descheduler#1215 - .gitattribute to not pollute PRs or stats by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1202 - Bump Kubernetes dependencies to v1.28.0 by [@​JaneLiuL](https://github.com/JaneLiuL) in kubernetes-sigs/descheduler#1216 - profile: fix span attribute typo by [@​antoinedeschenes](https://github.com/antoinedeschenes) in kubernetes-sigs/descheduler#1221 - k8s 1.28: update docs and go-version by [@​a7i](https://github.com/a7i) in kubernetes-sigs/descheduler#1224 #### New Contributors - [@​ratnopamc](https://github.com/ratnopamc) made their first contribution in kubernetes-sigs/descheduler#1145 - [@​mikutas](https://github.com/mikutas) made their first contribution in kubernetes-sigs/descheduler#1159 - [@​nlamirault](https://github.com/nlamirault) made their first contribution in kubernetes-sigs/descheduler#1147 - [@​10hin](https://github.com/10hin) made their first contribution in kubernetes-sigs/descheduler#1033 - [@​jongwooo](https://github.com/jongwooo) made their first contribution in kubernetes-sigs/descheduler#1173 - [@​jordipiqueselles](https://github.com/jordipiqueselles) made their first contribution in kubernetes-sigs/descheduler#1210 - [@​Abirdcfly](https://github.com/Abirdcfly) made their first contribution in kubernetes-sigs/descheduler#1215 - [@​antoinedeschenes](https://github.com/antoinedeschenes) made their first contribution in kubernetes-sigs/descheduler#1221 **Full Changelog**: kubernetes-sigs/descheduler@v0.27.0...v0.28.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41Mi4yIiwidXBkYXRlZEluVmVyIjoiMzYuNTIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Reviewed-on: https://git.devmem.ru/projects/infra/pulls/949 Co-authored-by: Renovate Bot <[email protected]> Co-committed-by: Renovate Bot <[email protected]>
…0.28.x (#538) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [descheduler](https://togithub.com/kubernetes-sigs/descheduler) | minor | `0.27.x` -> `0.28.x` | --- ### Release Notes <details> <summary>kubernetes-sigs/descheduler (descheduler)</summary> ### [`v0.28.0`](https://togithub.com/kubernetes-sigs/descheduler/releases/tag/v0.28.0): Descheduler v0.28.0 [Compare Source](https://togithub.com/kubernetes-sigs/descheduler/compare/v0.27.1...v0.28.0) #### What's Changed - add unit tests for version compatibility check by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1096](https://togithub.com/kubernetes-sigs/descheduler/pull/1096) - fix plugin arg conversion when using multiple profiles with same plugin by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1143](https://togithub.com/kubernetes-sigs/descheduler/pull/1143) - Use dl.k8s.io instead of kubernetes-release bucket by [@​ratnopamc](https://togithub.com/ratnopamc) in [https://github.com/kubernetes-sigs/descheduler/pull/1145](https://togithub.com/kubernetes-sigs/descheduler/pull/1145) - update deprecated sets.String to generic sets by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1146](https://togithub.com/kubernetes-sigs/descheduler/pull/1146) - helm: ability to override command and args. set args inline by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1151](https://togithub.com/kubernetes-sigs/descheduler/pull/1151) - fix: imagepullsecrets indentation for kind: Deployment by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1150](https://togithub.com/kubernetes-sigs/descheduler/pull/1150) - docs: supplement missing link by [@​mikutas](https://togithub.com/mikutas) in [https://github.com/kubernetes-sigs/descheduler/pull/1159](https://togithub.com/kubernetes-sigs/descheduler/pull/1159) - bump chart to v0.27.1 by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1160](https://togithub.com/kubernetes-sigs/descheduler/pull/1160) - Custom labels for ServiceMonitor resource by [@​nlamirault](https://togithub.com/nlamirault) in [https://github.com/kubernetes-sigs/descheduler/pull/1147](https://togithub.com/kubernetes-sigs/descheduler/pull/1147) - pod anti-affinity check among nodes by [@​10hin](https://togithub.com/10hin) in [https://github.com/kubernetes-sigs/descheduler/pull/1033](https://togithub.com/kubernetes-sigs/descheduler/pull/1033) - PodLifeTime: support CrashLoopBackOff container state by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1164](https://togithub.com/kubernetes-sigs/descheduler/pull/1164) - update pause image from 'kubernetes/pause' to 'registry.k8s.io/pause' by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1166](https://togithub.com/kubernetes-sigs/descheduler/pull/1166) - TooManyRestart: state filter for CrashLoopBackOff by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1165](https://togithub.com/kubernetes-sigs/descheduler/pull/1165) - Replace deprecated command with environment file by [@​jongwooo](https://togithub.com/jongwooo) in [https://github.com/kubernetes-sigs/descheduler/pull/1173](https://togithub.com/kubernetes-sigs/descheduler/pull/1173) - use pod informers for listing pods in removepodsviolatingtopologyspreadconstraint and removepodsviolatinginterpodantiaffinity by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1163](https://togithub.com/kubernetes-sigs/descheduler/pull/1163) - removepodsviolatingtopologyspreadconstraint: implement explicit constraints by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1148](https://togithub.com/kubernetes-sigs/descheduler/pull/1148) - FakeClientset: bump watch channel size by [@​ingvagabund](https://togithub.com/ingvagabund) in [https://github.com/kubernetes-sigs/descheduler/pull/1174](https://togithub.com/kubernetes-sigs/descheduler/pull/1174) - deschedule/balance order (continuation) by [@​ingvagabund](https://togithub.com/ingvagabund) in [https://github.com/kubernetes-sigs/descheduler/pull/1177](https://togithub.com/kubernetes-sigs/descheduler/pull/1177) - bump log level for processing info by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1141](https://togithub.com/kubernetes-sigs/descheduler/pull/1141) - fix priority threshold by name alone by [@​knelasevero](https://togithub.com/knelasevero) in [https://github.com/kubernetes-sigs/descheduler/pull/1186](https://togithub.com/kubernetes-sigs/descheduler/pull/1186) - feat: Enable open telemetry tracing by [@​harshanarayana](https://togithub.com/harshanarayana) in [https://github.com/kubernetes-sigs/descheduler/pull/1189](https://togithub.com/kubernetes-sigs/descheduler/pull/1189) - bump to k8s 1.28 beta.0 by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1201](https://togithub.com/kubernetes-sigs/descheduler/pull/1201) - nodefit: aggregate errors by [@​lucming](https://togithub.com/lucming) in [https://github.com/kubernetes-sigs/descheduler/pull/1203](https://togithub.com/kubernetes-sigs/descheduler/pull/1203) - fix: base configmap missing plugin RemoveDuplicates by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1207](https://togithub.com/kubernetes-sigs/descheduler/pull/1207) - feat: Implement preferredDuringSchedulingIgnoredDuringExecution for RemovePodsViolatingNodeAffinity by [@​jordipiqueselles](https://togithub.com/jordipiqueselles) in [https://github.com/kubernetes-sigs/descheduler/pull/1210](https://togithub.com/kubernetes-sigs/descheduler/pull/1210) - fix: descheduler_loop_duration_seconds has wrong value by [@​Abirdcfly](https://togithub.com/Abirdcfly) in [https://github.com/kubernetes-sigs/descheduler/pull/1215](https://togithub.com/kubernetes-sigs/descheduler/pull/1215) - .gitattribute to not pollute PRs or stats by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1202](https://togithub.com/kubernetes-sigs/descheduler/pull/1202) - Bump Kubernetes dependencies to v1.28.0 by [@​JaneLiuL](https://togithub.com/JaneLiuL) in [https://github.com/kubernetes-sigs/descheduler/pull/1216](https://togithub.com/kubernetes-sigs/descheduler/pull/1216) - profile: fix span attribute typo by [@​antoinedeschenes](https://togithub.com/antoinedeschenes) in [https://github.com/kubernetes-sigs/descheduler/pull/1221](https://togithub.com/kubernetes-sigs/descheduler/pull/1221) - k8s 1.28: update docs and go-version by [@​a7i](https://togithub.com/a7i) in [https://github.com/kubernetes-sigs/descheduler/pull/1224](https://togithub.com/kubernetes-sigs/descheduler/pull/1224) #### New Contributors - [@​ratnopamc](https://togithub.com/ratnopamc) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1145](https://togithub.com/kubernetes-sigs/descheduler/pull/1145) - [@​mikutas](https://togithub.com/mikutas) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1159](https://togithub.com/kubernetes-sigs/descheduler/pull/1159) - [@​nlamirault](https://togithub.com/nlamirault) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1147](https://togithub.com/kubernetes-sigs/descheduler/pull/1147) - [@​10hin](https://togithub.com/10hin) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1033](https://togithub.com/kubernetes-sigs/descheduler/pull/1033) - [@​jongwooo](https://togithub.com/jongwooo) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1173](https://togithub.com/kubernetes-sigs/descheduler/pull/1173) - [@​jordipiqueselles](https://togithub.com/jordipiqueselles) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1210](https://togithub.com/kubernetes-sigs/descheduler/pull/1210) - [@​Abirdcfly](https://togithub.com/Abirdcfly) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1215](https://togithub.com/kubernetes-sigs/descheduler/pull/1215) - [@​antoinedeschenes](https://togithub.com/antoinedeschenes) made their first contribution in [https://github.com/kubernetes-sigs/descheduler/pull/1221](https://togithub.com/kubernetes-sigs/descheduler/pull/1221) **Full Changelog**: kubernetes-sigs/descheduler@v0.27.0...v0.28.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/teutonet/teutonet-helm-charts). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Chris Werner Rau <[email protected]>
closes #1123 and #1138
nodeFit
. I admit, it's a bit confusing given the Default Evictor's nodeFit. I mainly wanted to preserve existing behavior, hence why it's true by default.