✨ use AlwaysAllow UnhealthyPodEvictionPolicy option in PDBs#2688
✨ use AlwaysAllow UnhealthyPodEvictionPolicy option in PDBs#2688atiratree wants to merge 1 commit intooperator-framework:mainfrom
Conversation
Allow eviction of unhealthy (not ready) pods even if there are no disruptions allowed on a PodDisruptionBudget. This can help to drain/maintain a node and recover without a manual intervention when multiple instances of nodes or pods are misbehaving.
✅ Deploy Preview for olmv1 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Pull request overview
This PR updates the shipped PodDisruptionBudgets (PDBs) for catalogd and operator-controller to allow eviction of unhealthy (NotReady) pods by setting unhealthyPodEvictionPolicy: AlwaysAllow, improving node drain/maintenance behavior when disruptions are otherwise blocked.
Changes:
- Set
unhealthyPodEvictionPolicy: AlwaysAllowon the two PDBs in the rendered “standard” and “experimental” install manifests (including e2e variants). - Set
unhealthyPodEvictionPolicy: AlwaysAllowin the Helm chart PDB templates for both components.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| manifests/standard.yaml | Adds unhealthyPodEvictionPolicy: AlwaysAllow to the two PDBs in the standard rendered manifest. |
| manifests/standard-e2e.yaml | Adds the same PDB policy setting for the standard-e2e rendered manifest. |
| manifests/experimental.yaml | Adds the same PDB policy setting for the experimental rendered manifest. |
| manifests/experimental-e2e.yaml | Adds the same PDB policy setting for the experimental-e2e rendered manifest. |
| helm/olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml | Hard-codes unhealthyPodEvictionPolicy: AlwaysAllow for the operator-controller PDB template. |
| helm/olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml | Hard-codes unhealthyPodEvictionPolicy: AlwaysAllow for the catalogd PDB template. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| {{- if .Values.options.operatorController.podDisruptionBudget.maxUnavailable }} | ||
| maxUnavailable: {{ .Values.options.operatorController.podDisruptionBudget.maxUnavailable }} | ||
| {{- end }} | ||
| unhealthyPodEvictionPolicy: AlwaysAllow |
There was a problem hiding this comment.
is there a minimum supported k8s version for OLM?
There was a problem hiding this comment.
The k8s API in go.mod is 0.35.x, so that should be considered the minimum. Since these charts are used for helm template and not helm install, the .Capabilities.KubeVersion.Version may not be known, and shouldn't be depended on (it's not used anywhere else)
| {{- if .Values.options.catalogd.podDisruptionBudget.maxUnavailable }} | ||
| maxUnavailable: {{ .Values.options.catalogd.podDisruptionBudget.maxUnavailable }} | ||
| {{- end }} | ||
| unhealthyPodEvictionPolicy: AlwaysAllow |
|
@grokspawn could you please take a look? |
Description
Allow eviction of unhealthy (not ready) pods even if there are no disruptions allowed on a PodDisruptionBudget. This can help to drain/maintain a node and recover without a manual intervention when multiple instances of nodes or pods are misbehaving.
Reviewer Checklist