From 82479e5544fe4aae7e54fcc5bc2c0a685e85ee1f Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Fri, 18 Sep 2026 15:08:53 -0700 Subject: [PATCH 1/2] feat: conditional redis pdb config --- Chart.yaml | 2 +- README.md | 11 +++++++++++ templates/redis-pdb.yaml | 2 +- values.yaml | 4 ++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Chart.yaml b/Chart.yaml index fa9e103..b7de89d 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -3,4 +3,4 @@ name: pgdog-control description: PgDog Control type: application version: 0.3.2 -appVersion: "f477677f" +appVersion: "80895477" diff --git a/README.md b/README.md index bab830c..98f9eed 100644 --- a/README.md +++ b/README.md @@ -71,12 +71,23 @@ redis: | Option | Description | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `redis.enabled` | Deploy the chart-managed Redis resources (bool, default `true`). | +| `redis.pdb.enabled` | Create the Redis PodDisruptionBudget with `minAvailable: 1` (bool, default `true`). | | `redis.url` | Redis connection string written to `[redis].url` in `control.toml`. When empty, defaults to the chart-managed Redis Service (string, default `""`). | | `redis.image.repository` | Redis image repository (string, default `redis`). | | `redis.image.tag` | Redis image tag (string, default `7-alpine`). | | `redis.image.pullPolicy` | Redis image pull policy (string, default `IfNotPresent`). | | `redis.image.pullSecrets` | Image pull secrets attached to the Redis pod (list, default `[]`). | +The Redis PodDisruptionBudget blocks voluntary evictions of the single Redis replica, including during node drains and managed node upgrades. Set `redis.pdb.enabled: false` to allow these evictions while keeping Redis deployed: + +```yaml +redis: + pdb: + enabled: false +``` + +Redis will be unavailable while its pod is replaced. The pod retains its `cluster-autoscaler.kubernetes.io/safe-to-evict: "false"` annotation. + ### Raft Enable Raft with a top-level setting: diff --git a/templates/redis-pdb.yaml b/templates/redis-pdb.yaml index e886136..937ea76 100644 --- a/templates/redis-pdb.yaml +++ b/templates/redis-pdb.yaml @@ -1,4 +1,4 @@ -{{- if .Values.redis.enabled }} +{{- if and .Values.redis.enabled .Values.redis.pdb.enabled }} apiVersion: policy/v1 kind: PodDisruptionBudget metadata: diff --git a/values.yaml b/values.yaml index 31fc2fa..eb05c43 100644 --- a/values.yaml +++ b/values.yaml @@ -197,6 +197,10 @@ redis: # Deploy the chart-managed Redis instance. Disable this when using an # external Redis and set redis.url to its connection string. enabled: true + pdb: + # Keep at least one Redis pod available. With a single replica, this + # blocks node drains; disable to allow Redis to be evicted during maintenance. + enabled: true # Connection string written to [redis].url in control.toml. When empty, # it points to the chart-managed Redis service. url: "" From 9ef6e215d867e763543d11aaac861a75f807b7a3 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Fri, 18 Sep 2026 15:09:37 -0700 Subject: [PATCH 2/2] bump chart --- Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Chart.yaml b/Chart.yaml index b7de89d..b1ee17a 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: pgdog-control description: PgDog Control type: application -version: 0.3.2 +version: 0.3.3 appVersion: "80895477"