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]
