From a9005e671b0adc35d0af33c7c2074bbc6ecd2ff4 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Wed, 24 Jun 2026 16:20:18 -0700 Subject: [PATCH 1/2] feat: leader election docs --- docs/enterprise_edition/control_plane/ha.md | 52 ++++++++++++++++++ .../control_plane/docker-compose.yaml | 4 +- docs/images/ee/ha.png | Bin 0 -> 53217 bytes docs/style.css | 9 +++ main.py | 2 +- 5 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 docs/enterprise_edition/control_plane/ha.md create mode 100644 docs/images/ee/ha.png diff --git a/docs/enterprise_edition/control_plane/ha.md b/docs/enterprise_edition/control_plane/ha.md new file mode 100644 index 00000000..5fd6fd9c --- /dev/null +++ b/docs/enterprise_edition/control_plane/ha.md @@ -0,0 +1,52 @@ +--- +icon: material/shield-check +--- + +# High availability + +The [control plane](index.md) is deployed as a standalone application. If using our [Helm chart](installation.md), it's possible to deploy multiple replicas in different availability zones which can provide operational redundancy. + +To make sure only one instance performs infrastructure changes, the control plane implements leader election and automatically selects _one_ pod to serve all requests. + +## How it works + +!!! note "Kubernetes only" + This feature is only supported when running the control plane with Kubernetes. While a different synchronization primitive + could have been used, we rely on the Kubernetes `Service` to redirect traffic. + +
+ Control plane +
+ +When an instance of the control plane deployment is started, it attempts to acquire a `Lease` from the Kubernetes API. The lease is short-lived and is renewed periodically. + +Whichever instance acquires the lease first will report itself as `"Ready"` to the `Service`. This ensures that only one instance can respond to API requests from both PgDog and the web UI. + +### Configuration + +This feature is **enabled** by default. Leader election settings can be configured in the Helm chart: + +```yaml title="values.yaml" +control: + config: + leader: + enabled: true + lease_name: "control2" + lease_duration_secs: 15 + lease_interval_secs: 5 + release_timeout_secs: 5 +``` + +Most of these settings have sane defaults: + +| Configuration | Description | +|-|-| +| `enabled` | Toggle leader election on or off. It is enabled by default (`true`). | +| `lease_name` | The name of the `Lease` resource. Change it if you're planning to deploy more than one control plane per namespace. | +| `lease_duration_secs` | Lease duration. Longer values prevent lease takeover due to clock skew, but slow down redeployments after unexpected pod termination. | +| `lease_interval_secs` | How often the control plane leader attempts to renew the lease. | +| `release_timeout_secs` | How long the control plane will wait while shutting down gracefully for the lease to be released. | + +### Default deployment + +By default, the control plane is deployed with only one replica. This is usually sufficient since high availability is not essential for normal operations and PgDog pods can tolerate intermittent control plane downtime. diff --git a/docs/examples/control_plane/docker-compose.yaml b/docs/examples/control_plane/docker-compose.yaml index 42cd9b38..8334a5db 100644 --- a/docs/examples/control_plane/docker-compose.yaml +++ b/docs/examples/control_plane/docker-compose.yaml @@ -1,5 +1,5 @@ x-pgdog: &pgdog - image: ghcr.io/pgdogdev/pgdog-enterprise:v2026-06-22 + image: ghcr.io/pgdogdev/pgdog-enterprise:v2026-06-24 command: [ "pgdog", @@ -43,7 +43,7 @@ services: image: redis:7 control: - image: ghcr.io/pgdogdev/pgdog-enterprise/control:v2026-06-22 + image: ghcr.io/pgdogdev/pgdog-enterprise/control:v2026-06-24 ports: - "8099:8080" environment: diff --git a/docs/images/ee/ha.png b/docs/images/ee/ha.png new file mode 100644 index 0000000000000000000000000000000000000000..13a6d5ce03c5bf934876a5be6ee017aaf4298a00 GIT binary patch literal 53217 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 literal 0 HcmV?d00001 diff --git a/docs/style.css b/docs/style.css index 2ef6918b..599958f3 100644 --- a/docs/style.css +++ b/docs/style.css @@ -44,6 +44,15 @@ table { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } +/* ===== Theme-aware Images ===== */ +.theme-aware-image { + filter: contrast(1.04) saturate(1.08); +} + +[data-md-color-scheme="slate"] .theme-aware-image { + filter: invert(1) hue-rotate(180deg) contrast(1.12) saturate(1.05); +} + /* ===== Card Grid ===== */ .grid { display: grid; diff --git a/main.py b/main.py index 411f7c82..d9450d75 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ # Latest released tag for the Enterprise Docker images. Update this in one # place; reference it in docs with {{ enterprise_tag }}. Can be overridden at # build time with the ENTERPRISE_TAG environment variable. -ENTERPRISE_TAG = os.environ.get("ENTERPRISE_TAG", "v2026-06-22") +ENTERPRISE_TAG = os.environ.get("ENTERPRISE_TAG", "v2026-06-24") def define_env(env): From 2a7e319e7056d45c6bd0f46159186f7f08619ff9 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Wed, 24 Jun 2026 16:21:15 -0700 Subject: [PATCH 2/2] reality --- docs/enterprise_edition/control_plane/ha.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/enterprise_edition/control_plane/ha.md b/docs/enterprise_edition/control_plane/ha.md index 5fd6fd9c..3346160a 100644 --- a/docs/enterprise_edition/control_plane/ha.md +++ b/docs/enterprise_edition/control_plane/ha.md @@ -24,7 +24,7 @@ Whichever instance acquires the lease first will report itself as `"Ready"` to t ### Configuration -This feature is **enabled** by default. Leader election settings can be configured in the Helm chart: +This feature is **disabled** by default. It can be enabled and configured in the Helm chart: ```yaml title="values.yaml" control: @@ -41,7 +41,7 @@ Most of these settings have sane defaults: | Configuration | Description | |-|-| -| `enabled` | Toggle leader election on or off. It is enabled by default (`true`). | +| `enabled` | Toggle leader election on or off. It is disabled by default (`false`). | | `lease_name` | The name of the `Lease` resource. Change it if you're planning to deploy more than one control plane per namespace. | | `lease_duration_secs` | Lease duration. Longer values prevent lease takeover due to clock skew, but slow down redeployments after unexpected pod termination. | | `lease_interval_secs` | How often the control plane leader attempts to renew the lease. |