younsl opened a new pull request, #386:
URL: https://github.com/apache/superset-kubernetes-operator/pull/386

   ## Summary
   
   Add an optional 
[PodDisruptionBudget](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets)
 for the operator manager pod, configured through a new podDisruptionBudget 
block in the chart values. Today users who run multiple manager replicas have 
to hand-write a PDB through extraManifests. A first-class value keeps the 
selector in sync with the Deployment and lets the chart validate the input. The 
[unhealthyPodEvictionPolicy](https://kubernetes.io/docs/tasks/run-application/configure-pdb/#unhealthy-pod-eviction-policy)
 field is exposed as its own knob so a crash-looping manager can be evicted 
during a [node 
drain](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/) 
instead of blocking it.
   
   ## Details
   
   - New template templates/poddisruptionbudget.yaml renders a policy/v1 
PodDisruptionBudget whose selector reuses the chart's selectorLabels helper, 
matching the Deployment.
   - Disabled by default. When enabled with neither minAvailable nor 
maxUnavailable set, the chart defaults to maxUnavailable: 1, so a 
single-replica install never blocks node drains.
   - minAvailable and maxUnavailable are mutually exclusive. Setting both fails 
rendering with a clear message instead of producing a PDB the API server 
rejects.
   - unhealthyPodEvictionPolicy is rendered only when set. Empty keeps the 
Kubernetes default (IfHealthyBudget). The field requires Kubernetes 1.27+ and 
is ignored on older clusters. See 
[PodDisruptionBudgetSpec](https://pkg.go.dev/k8s.io/api/policy/v1#PodDisruptionBudgetSpec).
   - [values.schema.json](https://helm.sh/docs/topics/charts/#schema-files) 
declares the block strictly: bounds accept null, a non-negative integer, or a 
percentage string, and the eviction policy is limited to "", IfHealthyBudget, 
and AlwaysAllow.
   - The full-options extraManifests object example switches from a PDB to a 
[NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/).
 Two PDBs selecting the same pods make the [Eviction 
API](https://kubernetes.io/docs/concepts/scheduling-eviction/api-eviction/) 
reject evictions, so the old example would conflict with the new native PDB.
   - Chart README regenerated with 
[helm-docs](https://github.com/norwoodj/helm-docs). Each value has a one-line 
description.
   - [helm-unittest](https://github.com/helm-unittest/helm-unittest) cases 
cover the default (no PDB), the maxUnavailable: 1 fallback and selector, 
percentage bounds with an explicit policy, the mutual exclusion failure, and 
schema rejection of an unknown policy. The full-options snapshot now includes 
the PDB.
   
   Verified locally with make helm-lint, make helm-values-covered, and helm 
unittest (16 tests, 26 snapshots passing).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to