You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/08/13 20:02:59 UTC

(superset) branch master updated: fix(helm): stop shipping conflicting podDisruptionBudget defaults (#42995)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 5b281585194 fix(helm): stop shipping conflicting podDisruptionBudget defaults (#42995)
5b281585194 is described below

commit 5b281585194cbafa090432f8a917947aee3e2eaf
Author: Bernedotcom2312 <88...@users.noreply.github.com>
AuthorDate: Thu Aug 13 22:02:51 2026 +0200

    fix(helm): stop shipping conflicting podDisruptionBudget defaults (#42995)
    
    Co-authored-by: Claude Opus 5 (1M context) <no...@anthropic.com>
---
 helm/superset/Chart.yaml                |  2 +-
 helm/superset/README.md                 | 28 +++++------
 helm/superset/templates/pdb-beat.yaml   |  2 +-
 helm/superset/templates/pdb-flower.yaml |  2 +-
 helm/superset/templates/pdb-mcp.yaml    |  2 +-
 helm/superset/templates/pdb-worker.yaml |  2 +-
 helm/superset/templates/pdb-ws.yaml     |  2 +-
 helm/superset/templates/pdb.yaml        |  2 +-
 helm/superset/tests/pdb_test.yaml       | 87 +++++++++++++++++++++++++++++++++
 helm/superset/values.yaml               | 26 +++++-----
 10 files changed, 121 insertions(+), 34 deletions(-)

diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index 08988763534..84ee1d8bad5 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -29,7 +29,7 @@ maintainers:
   - name: craig-rueda
     email: craig@craigrueda.com
     url: https://github.com/craig-rueda
-version: 0.22.5 # See [README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning) for version details.
+version: 0.22.6 # See [README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning) for version details.
 dependencies:
   - name: postgresql
     version: 16.7.27
diff --git a/helm/superset/README.md b/helm/superset/README.md
index 5e7429bf0bc..057941b7e07 100644
--- a/helm/superset/README.md
+++ b/helm/superset/README.md
@@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs
 
 # superset
 
-![Version: 0.22.5](https://img.shields.io/badge/Version-0.22.5-informational?style=flat-square)
+![Version: 0.22.6](https://img.shields.io/badge/Version-0.22.6-informational?style=flat-square)
 
 Apache Superset is a modern, enterprise-ready business intelligence web application
 
@@ -205,9 +205,9 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetCeleryBeat.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
 | supersetCeleryBeat.initContainers | list | a container waiting for postgres | List of init containers |
 | supersetCeleryBeat.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat pods |
-| supersetCeleryBeat.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryBeat pods |
+| supersetCeleryBeat.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryBeat pods |
 | supersetCeleryBeat.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetCeleryBeat.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetCeleryBeat.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetCeleryBeat.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetCeleryBeat.podLabels | object | `{}` | Labels to be added to supersetCeleryBeat pods |
 | supersetCeleryBeat.podSecurityContext | object | `{}` |  |
@@ -231,9 +231,9 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetCeleryFlower.livenessProbe.successThreshold | int | `1` |  |
 | supersetCeleryFlower.livenessProbe.timeoutSeconds | int | `1` |  |
 | supersetCeleryFlower.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower pods |
-| supersetCeleryFlower.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryFlower pods |
+| supersetCeleryFlower.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetCeleryFlower pods |
 | supersetCeleryFlower.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetCeleryFlower.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetCeleryFlower.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetCeleryFlower.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetCeleryFlower.podLabels | object | `{}` | Labels to be added to supersetCeleryFlower pods |
 | supersetCeleryFlower.podSecurityContext | object | `{}` |  |
@@ -285,10 +285,10 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetMcp.livenessProbe.successThreshold | int | `1` |  |
 | supersetMcp.livenessProbe.timeoutSeconds | int | `3` |  |
 | supersetMcp.podAnnotations | object | `{}` | Annotations to be added to supersetMcp pods |
-| supersetMcp.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetMcp pods |
+| supersetMcp.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetMcp pods |
 | supersetMcp.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetMcp.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/\#specifying-a-poddisruptionbudget |
-| supersetMcp.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/\#specifying-a-poddisruptionbudget |
+| supersetMcp.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetMcp.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetMcp.podLabels | object | `{}` | Labels to be added to supersetMcp pods |
 | supersetMcp.podSecurityContext | object | `{}` |  |
 | supersetMcp.priorityClassName | string | `nil` | Set priorityClassName for supersetMcp pods |
@@ -341,9 +341,9 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetNode.livenessProbe.successThreshold | int | `1` |  |
 | supersetNode.livenessProbe.timeoutSeconds | int | `1` |  |
 | supersetNode.podAnnotations | object | `{}` | Annotations to be added to supersetNode pods |
-| supersetNode.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetNode pods |
+| supersetNode.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetNode pods |
 | supersetNode.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetNode.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetNode.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetNode.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetNode.podLabels | object | `{}` | Labels to be added to supersetNode pods |
 | supersetNode.podSecurityContext | object | `{}` |  |
@@ -391,9 +391,9 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetWebsockets.livenessProbe.successThreshold | int | `1` |  |
 | supersetWebsockets.livenessProbe.timeoutSeconds | int | `1` |  |
 | supersetWebsockets.podAnnotations | object | `{}` |  |
-| supersetWebsockets.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWebsockets pods |
+| supersetWebsockets.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWebsockets pods |
 | supersetWebsockets.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetWebsockets.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetWebsockets.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetWebsockets.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetWebsockets.podLabels | object | `{}` |  |
 | supersetWebsockets.podSecurityContext | object | `{}` |  |
@@ -448,9 +448,9 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent
 | supersetWorker.livenessProbe.successThreshold | int | `1` |  |
 | supersetWorker.livenessProbe.timeoutSeconds | int | `60` |  |
 | supersetWorker.podAnnotations | object | `{}` | Annotations to be added to supersetWorker pods |
-| supersetWorker.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWorker pods |
+| supersetWorker.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":null,"minAvailable":1}` | Sets the [pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for supersetWorker pods |
 | supersetWorker.podDisruptionBudget.enabled | bool | `false` | Whether the pod disruption budget should be created |
-| supersetWorker.podDisruptionBudget.maxUnavailable | int | `1` | If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
+| supersetWorker.podDisruptionBudget.maxUnavailable | string | `nil` | If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetWorker.podDisruptionBudget.minAvailable | int | `1` | If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget |
 | supersetWorker.podLabels | object | `{}` | Labels to be added to supersetWorker pods |
 | supersetWorker.podSecurityContext | object | `{}` |  |
diff --git a/helm/superset/templates/pdb-beat.yaml b/helm/superset/templates/pdb-beat.yaml
index 1650977464a..81a22fca0c1 100644
--- a/helm/superset/templates/pdb-beat.yaml
+++ b/helm/superset/templates/pdb-beat.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetCeleryBeat.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetCeleryBeat.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/templates/pdb-flower.yaml b/helm/superset/templates/pdb-flower.yaml
index 373e24971fa..f9d89f369ed 100644
--- a/helm/superset/templates/pdb-flower.yaml
+++ b/helm/superset/templates/pdb-flower.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetCeleryFlower.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetCeleryFlower.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/templates/pdb-mcp.yaml b/helm/superset/templates/pdb-mcp.yaml
index 256fd5adb21..29ec3052dd7 100644
--- a/helm/superset/templates/pdb-mcp.yaml
+++ b/helm/superset/templates/pdb-mcp.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetMcp.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetMcp.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/templates/pdb-worker.yaml b/helm/superset/templates/pdb-worker.yaml
index 205caf2dac9..d3e55e32b21 100644
--- a/helm/superset/templates/pdb-worker.yaml
+++ b/helm/superset/templates/pdb-worker.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetWorker.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetWorker.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/templates/pdb-ws.yaml b/helm/superset/templates/pdb-ws.yaml
index 8191a1545d2..d738019bba3 100644
--- a/helm/superset/templates/pdb-ws.yaml
+++ b/helm/superset/templates/pdb-ws.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetWebsockets.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetWebsockets.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/templates/pdb.yaml b/helm/superset/templates/pdb.yaml
index ab2e271e717..ac975ddee25 100644
--- a/helm/superset/templates/pdb.yaml
+++ b/helm/superset/templates/pdb.yaml
@@ -20,7 +20,7 @@
 {{- with .Values.supersetNode.podDisruptionBudget }}
 {{- if .enabled -}}
 {{- if and .minAvailable .maxUnavailable }}
-  {{- fail "Only one of minAvailable or maxUnavailable should be set" }}
+  {{- fail "supersetNode.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)" }}
 {{- end}}
 apiVersion: policy/v1
 kind: PodDisruptionBudget
diff --git a/helm/superset/tests/pdb_test.yaml b/helm/superset/tests/pdb_test.yaml
new file mode 100644
index 00000000000..9c538e26c93
--- /dev/null
+++ b/helm/superset/tests/pdb_test.yaml
@@ -0,0 +1,87 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+suite: pod disruption budgets
+templates:
+  - pdb.yaml
+  - pdb-worker.yaml
+  - pdb-beat.yaml
+  - pdb-flower.yaml
+  - pdb-ws.yaml
+  - pdb-mcp.yaml
+
+# The chart must not ship conflicting minAvailable/maxUnavailable defaults: enabling a
+# PDB with `enabled: true` alone has to render, since Helm merges user values on top of
+# the chart defaults and the templates fail when both fields are set.
+tests:
+  - it: renders no PDB by default
+    asserts:
+      - hasDocuments:
+          count: 0
+
+  - it: renders with minAvailable only when just enabled is set
+    set:
+      supersetNode.podDisruptionBudget.enabled: true
+      supersetWorker.podDisruptionBudget.enabled: true
+      supersetCeleryBeat.podDisruptionBudget.enabled: true
+      supersetCeleryFlower.podDisruptionBudget.enabled: true
+      supersetWebsockets.podDisruptionBudget.enabled: true
+      supersetMcp.podDisruptionBudget.enabled: true
+    asserts:
+      - hasDocuments:
+          count: 1
+      - isKind:
+          of: PodDisruptionBudget
+      - equal:
+          path: spec.minAvailable
+          value: 1
+      - notExists:
+          path: spec.maxUnavailable
+
+  - it: honors an overridden minAvailable
+    template: pdb.yaml
+    set:
+      supersetNode.podDisruptionBudget.enabled: true
+      supersetNode.podDisruptionBudget.minAvailable: 2
+    asserts:
+      - equal:
+          path: spec.minAvailable
+          value: 2
+      - notExists:
+          path: spec.maxUnavailable
+
+  - it: honors maxUnavailable when minAvailable is unset
+    template: pdb-worker.yaml
+    set:
+      supersetWorker.podDisruptionBudget.enabled: true
+      supersetWorker.podDisruptionBudget.minAvailable: null
+      supersetWorker.podDisruptionBudget.maxUnavailable: 1
+    asserts:
+      - equal:
+          path: spec.maxUnavailable
+          value: 1
+      - notExists:
+          path: spec.minAvailable
+
+  - it: fails when both minAvailable and maxUnavailable are set explicitly
+    template: pdb.yaml
+    set:
+      supersetNode.podDisruptionBudget.enabled: true
+      supersetNode.podDisruptionBudget.minAvailable: 1
+      supersetNode.podDisruptionBudget.maxUnavailable: 1
+    asserts:
+      - failedTemplate:
+          errorMessage: "supersetNode.podDisruptionBudget: only one of minAvailable or maxUnavailable should be set - unset the other one (set it to null)"
diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml
index c1cb3ec435f..3d0d3010d45 100644
--- a/helm/superset/values.yaml
+++ b/helm/superset/values.yaml
@@ -410,8 +410,8 @@ supersetNode:
     enabled: false
     # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
 
   # -- Startup command
   # @default -- See `values.yaml`
@@ -542,8 +542,8 @@ supersetWorker:
     enabled: false
     # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
   # -- Worker startup command
   # @default -- a `celery worker` command
   command:
@@ -665,8 +665,8 @@ supersetCeleryBeat:
     enabled: false
     # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
   # -- Command
   # @default -- a `celery beat` command
   command:
@@ -751,8 +751,8 @@ supersetCeleryFlower:
     enabled: false
     # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
   # -- Command
   # @default -- a `celery flower` command
   command:
@@ -869,8 +869,8 @@ supersetWebsockets:
     enabled: false
     # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
   ingress:
     path: /ws
     pathType: Prefix
@@ -999,10 +999,10 @@ supersetMcp:
   podDisruptionBudget:
     # -- Whether the pod disruption budget should be created
     enabled: false
-    # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/\#specifying-a-poddisruptionbudget
+    # -- If set, maxUnavailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
     minAvailable: 1
-    # -- If set, minAvailable must not be set - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/\#specifying-a-poddisruptionbudget
-    maxUnavailable: 1
+    # -- If set, minAvailable must be unset (`minAvailable: ~`) - see https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
+    maxUnavailable: ~
   # -- Command
   # @default -- a `superset mcp run` command
   command: