From 0ac4b792ae6de9714b4bd7e7be86027a3f4a5550 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Fri, 10 Jul 2026 11:38:56 -0700 Subject: [PATCH 1/3] feat: fix image in ee and move content around --- docs/enterprise_edition/control_plane/.pages | 1 - .../control_plane/{features => }/alerts.md | 45 ++++--- .../{features => }/autoscaling.md | 38 +++--- .../control_plane/features/.pages | 3 - .../control_plane/features/index.md | 13 -- docs/enterprise_edition/control_plane/ha.md | 32 +++-- .../enterprise_edition/control_plane/index.md | 9 +- .../control_plane/installation.md | 127 ++++++++++++++---- .../control_plane/{features => }/slack.md | 25 ++-- docs/images/control_plane.png | Bin 31907 -> 33857 bytes mkdocs.yml | 4 + tests/test_code_blocks.py | 3 + 12 files changed, 199 insertions(+), 101 deletions(-) rename docs/enterprise_edition/control_plane/{features => }/alerts.md (70%) rename docs/enterprise_edition/control_plane/{features => }/autoscaling.md (61%) delete mode 100644 docs/enterprise_edition/control_plane/features/.pages delete mode 100644 docs/enterprise_edition/control_plane/features/index.md rename docs/enterprise_edition/control_plane/{features => }/slack.md (80%) diff --git a/docs/enterprise_edition/control_plane/.pages b/docs/enterprise_edition/control_plane/.pages index 1697fd8d..3a498226 100644 --- a/docs/enterprise_edition/control_plane/.pages +++ b/docs/enterprise_edition/control_plane/.pages @@ -1,5 +1,4 @@ nav: - index.md - installation.md - - features - ... diff --git a/docs/enterprise_edition/control_plane/features/alerts.md b/docs/enterprise_edition/control_plane/alerts.md similarity index 70% rename from docs/enterprise_edition/control_plane/features/alerts.md rename to docs/enterprise_edition/control_plane/alerts.md index 7e61e886..a85698b1 100644 --- a/docs/enterprise_edition/control_plane/features/alerts.md +++ b/docs/enterprise_edition/control_plane/alerts.md @@ -4,7 +4,7 @@ icon: material/alert-circle-outline # Alerts -Since the control plane has access to real-time PgDog [metrics](../../../features/metrics.md), it can detect outliers and trigger automatic alerts. +Since the control plane has access to real-time PgDog [metrics](../../features/metrics.md), it can detect outliers and trigger automatic alerts. ## How it works @@ -27,19 +27,34 @@ The following incident management providers are supported: Alerts are **disabled** by default. To enable them, configure a provider's API key and set thresholds for each supported metric you would like to monitor: -```yaml title="values.yaml" -control: - config: - alerts: - evaluation_window_secs: 300 - thresholds: - clients_waiting: 10 - cpu: 90.0 - memory: 2048 - server_connections: 100 - incident_io: - api_key: inc_live_xxx -``` +=== "Helm chart" + ```yaml title="values.yaml" + control: + config: + alerts: + evaluation_window_secs: 300 + thresholds: + clients_waiting: 10 + cpu: 90.0 + memory: 2048 + server_connections: 100 + incident_io: + api_key: inc_live_xxx + ``` +=== "control.toml" + ```toml + [alerts] + evaluation_window_secs = 300 + + [alerts.thresholds] + clients_waiting = 10 + cpu = 90.0 + memory = 2048 + server_connections = 100 + + [alerts.incident_io] + api_key = "inc_live_xxx" + ``` #### Parameters @@ -47,7 +62,7 @@ control: Thresholds have no defaults. If a threshold is not configured, its metric will not be monitored. -The following parameters are configurable via the [Helm chart](../installation.md): +The following parameters are configurable via the [Helm chart](installation.md): | Parameter | Description | Unit | |-|-|-| diff --git a/docs/enterprise_edition/control_plane/features/autoscaling.md b/docs/enterprise_edition/control_plane/autoscaling.md similarity index 61% rename from docs/enterprise_edition/control_plane/features/autoscaling.md rename to docs/enterprise_edition/control_plane/autoscaling.md index 85ac8906..cabff642 100644 --- a/docs/enterprise_edition/control_plane/features/autoscaling.md +++ b/docs/enterprise_edition/control_plane/autoscaling.md @@ -8,18 +8,24 @@ Autoscaling automatically adjusts PgDog settings when the number of processes (e ## Configuration -Autoscaling is **disabled** by default. To enable it, add the following settings to the [control plane](../installation.md) Helm [chart](https://github.com/pgdogdev/helm-ee): - -```yaml title="values.yaml" -control: - config: - autoscaling: - pool_size: true -``` +Autoscaling is **disabled** by default. To enable it, add the following settings to the [control plane](installation.md) Helm [chart](https://github.com/pgdogdev/helm-ee): + +=== "Helm chart" + ```yaml title="values.yaml" + control: + config: + autoscaling: + pool_size: true + ``` +=== "control.toml" + ```toml + [autoscaling] + pool_size = true + ``` ## How it works -When a PgDog process connects to the [control plane](../../control_plane/index.md), the control plane provides it with the total number of processes that are part of the same deployment. PgDog then automatically adjusts its configuration by dividing all pool-related configuration values by that number, for example: +When a PgDog process connects to the [control plane](index.md), the control plane provides it with the total number of processes that are part of the same deployment. PgDog then automatically adjusts its configuration by dividing all pool-related configuration values by that number, for example: === "Configuration" ```toml title="pgdog.toml" @@ -99,12 +105,12 @@ The following configuration options are supported for pool size autoscaling: | Section | Configuration | |-|-| -| [`[general]`](../../../configuration/pgdog.toml/general.md) | [`default_pool_size`](../../../configuration/pgdog.toml/general.md#default_pool_size) (alias: `max_pool_size`) | -| [`[general]`](../../../configuration/pgdog.toml/general.md) | [`min_pool_size`](../../../configuration/pgdog.toml/general.md#min_pool_size) | -| [`[[databases]]`](../../../configuration/pgdog.toml/databases.md) | [`pool_size`](../../../configuration/pgdog.toml/databases.md#pool_size) | -| [`[[databases]]`](../../../configuration/pgdog.toml/databases.md) | [`min_pool_size`](../../../configuration/pgdog.toml/databases.md#min_pool_size) | -| [`[[users]]`](../../../configuration/users.toml/users.md) | [`pool_size`](../../../configuration/users.toml/users.md#pool_size) | -| [`[[users]]`](../../../configuration/users.toml/users.md) | [`min_pool_size`](../../../configuration/users.toml/users.md#min_pool_size) | +| [`[general]`](../../configuration/pgdog.toml/general.md) | [`default_pool_size`](../../configuration/pgdog.toml/general.md#default_pool_size) (alias: `max_pool_size`) | +| [`[general]`](../../configuration/pgdog.toml/general.md) | [`min_pool_size`](../../configuration/pgdog.toml/general.md#min_pool_size) | +| [`[[databases]]`](../../configuration/pgdog.toml/databases.md) | [`pool_size`](../../configuration/pgdog.toml/databases.md#pool_size) | +| [`[[databases]]`](../../configuration/pgdog.toml/databases.md) | [`min_pool_size`](../../configuration/pgdog.toml/databases.md#min_pool_size) | +| [`[[users]]`](../../configuration/users.toml/users.md) | [`pool_size`](../../configuration/users.toml/users.md#pool_size) | +| [`[[users]]`](../../configuration/users.toml/users.md) | [`min_pool_size`](../../configuration/users.toml/users.md#min_pool_size) | ## Orchestrator integration @@ -112,7 +118,7 @@ Autoscaling actions are performed entirely using the internal PgDog <-> control ### Kubernetes -If using autoscaling and deploying PgDog with our [Helm chart](../../../installation.md), make sure to set the pool-related settings to reflect the _total_ number of connections. For example, if deploying 3 replicas and the total pool size across the 3 pods is 600 connections, set it accordingly in `values.yaml`: +If using autoscaling and deploying PgDog with our [Helm chart](../../installation.md), make sure to set the pool-related settings to reflect the _total_ number of connections. For example, if deploying 3 replicas and the total pool size across the 3 pods is 600 connections, set it accordingly in `values.yaml`: ```yaml title="values.yaml" defaultPoolSize: 600 diff --git a/docs/enterprise_edition/control_plane/features/.pages b/docs/enterprise_edition/control_plane/features/.pages deleted file mode 100644 index 8ae5ab46..00000000 --- a/docs/enterprise_edition/control_plane/features/.pages +++ /dev/null @@ -1,3 +0,0 @@ -nav: - - index.md - - ... diff --git a/docs/enterprise_edition/control_plane/features/index.md b/docs/enterprise_edition/control_plane/features/index.md deleted file mode 100644 index f33d33ed..00000000 --- a/docs/enterprise_edition/control_plane/features/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -icon: material/format-list-bulleted-type ---- - -# Features - -The control plane provides operational features for monitoring, configuring, and managing PgDog deployments. - -| Feature | Description | -|-|-| -| [Alerts](alerts.md) | Detect outliers in live PgDog metrics and send incidents to supported providers. | -| [Autoscaling](autoscaling.md) | Automatically resize connection pools when PgDog nodes are added or removed. | -| [Slack integration](slack.md) | Send deployment and configuration notifications to a Slack channel. | diff --git a/docs/enterprise_edition/control_plane/ha.md b/docs/enterprise_edition/control_plane/ha.md index 3346160a..41daa230 100644 --- a/docs/enterprise_edition/control_plane/ha.md +++ b/docs/enterprise_edition/control_plane/ha.md @@ -26,16 +26,26 @@ Whichever instance acquires the lease first will report itself as `"Ready"` to t This feature is **disabled** by default. It can be enabled and 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 -``` +=== "Helm chart" + ```yaml title="values.yaml" + control: + config: + leader: + enabled: true + lease_name: "control2" + lease_duration_secs: 15 + renew_interval_secs: 5 + release_timeout_secs: 5 + ``` +=== "control.toml" + ```toml + [leader] + enabled = true + lease_name = "control2" + lease_duration_secs = 15 + renew_interval_secs = 5 + release_timeout_secs = 5 + ``` Most of these settings have sane defaults: @@ -44,7 +54,7 @@ Most of these settings have sane defaults: | `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. | +| `renew_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 diff --git a/docs/enterprise_edition/control_plane/index.md b/docs/enterprise_edition/control_plane/index.md index 3e22c144..4973eafe 100644 --- a/docs/enterprise_edition/control_plane/index.md +++ b/docs/enterprise_edition/control_plane/index.md @@ -45,17 +45,18 @@ PgDog nodes that are part of the same deployment should use the same token. It c A control plane deployment is capable of managing several PgDog deployments. It's not necessary (although possible) to have one control plane per PgDog deployment. -### Connection flow +## Architecture
- Control plane + Control plane +

Control plane <-> PgDog connection architecture

PgDog initiates a connection to the control plane on startup. This happens in the background and doesn't block queries. Upon connecting, PgDog will send its node identifier (set in the `NODE_ID` environment variable, or randomly generated) to register with the control plane, and will start uploading telemetry and poll for commands. -#### Error handling +### Error handling Since most PgDog functions (including sharding) are configuration-driven, the control plane connection is **not required** for PgDog to start or serve queries. @@ -78,5 +79,5 @@ PgDog transmits the following information to the control plane: {{ next_steps_links([ ("Installation", "installation.md", "Deploy the control plane alongside your PgDog nodes and connect them together."), - ("Features", "features/index.md", "Explore control plane features like alerts, configuration management, instances, metrics, and Slack integration."), + ("Features", "alerts.md", "Explore control plane features like alerts, configuration management, instances, metrics, and Slack integration."), ]) }} diff --git a/docs/enterprise_edition/control_plane/installation.md b/docs/enterprise_edition/control_plane/installation.md index 027a3f2f..da5af3b3 100644 --- a/docs/enterprise_edition/control_plane/installation.md +++ b/docs/enterprise_edition/control_plane/installation.md @@ -94,9 +94,11 @@ ingress: ## OAuth2 -OAuth2 authentication is supported out of the box for GitHub and Google providers. Either one can be configured as follows: +OAuth2 authentication is supported out of the box for GitHub and Google providers. -=== "GitHub" +### GitHub + +=== "Helm chart" ```yaml title="values.yaml" control: config: @@ -108,7 +110,20 @@ OAuth2 authentication is supported out of the box for GitHub and Google provider allowed_orgs: - acme-corp ``` -=== "Google" +=== "control.toml" + ```toml + [auth] + redirect_base_url = "https://control.acme.com" + + [auth.github] + client_id = "Iv1.0123456789abcdef" + client_secret = "shhh" + allowed_orgs = ["acme-corp"] + ``` + +### Google + +=== "Helm chart" ```yaml title="values.yaml" control: config: @@ -120,6 +135,16 @@ OAuth2 authentication is supported out of the box for GitHub and Google provider allowed_domains: - acme.com ``` +=== "control.toml" + ```toml + [auth] + redirect_base_url = "https://control.acme.com" + + [auth.google] + client_id = "0123456789-abc.apps.googleusercontent.com" + client_secret = "shhh" + allowed_domains = ["acme.com"] + ``` The client secret can be alternatively set as an environment variable: @@ -151,25 +176,48 @@ The `Secret` resource should be in the same namespace as the chart release: The secret can then be referenced in `values.yaml`: -=== "GitHub" +#### GitHub + +=== "Helm chart" ```yaml title="values.yaml" - github: - client_id: Iv1.0123456789abcdef - allowed_orgs: - - acme-corp - secret: - name: pgdog-oauth-secrets - clientSecretKey: github-client-secret + control: + config: + auth: + github: + client_id: Iv1.0123456789abcdef + allowed_orgs: + - acme-corp + secret: + name: pgdog-oauth-secrets + clientSecretKey: github-client-secret ``` -=== "Google" +=== "control.toml" + ```toml + [auth.github] + client_id = "Iv1.0123456789abcdef" + allowed_orgs = ["acme-corp"] + ``` + +#### Google + +=== "Helm chart" ```yaml title="values.yaml" - google: - client_id: 0123456789-abc.apps.googleusercontent.com - allowed_domains: - - acme.com - secret: - name: pgdog-oauth-secrets - clientSecretKey: google-client-secret + control: + config: + auth: + google: + client_id: 0123456789-abc.apps.googleusercontent.com + allowed_domains: + - acme.com + secret: + name: pgdog-oauth-secrets + clientSecretKey: google-client-secret + ``` +=== "control.toml" + ```toml + [auth.google] + client_id = "0123456789-abc.apps.googleusercontent.com" + allowed_domains = ["acme.com"] ``` The same method can be used to store the `client_id` (using `clientIdKey` as key). @@ -180,17 +228,38 @@ The same method can be used to store the `client_id` (using `clientIdKey` as key Both accept a list, so you can allow more than one: -=== "GitHub" +#### GitHub + +=== "Helm chart" ```yaml title="values.yaml" - github: - allowed_orgs: - - acme-corp - - acme-labs + control: + config: + auth: + github: + allowed_orgs: + - acme-corp + - acme-labs ``` -=== "Google" +=== "control.toml" + ```toml + [auth.github] + allowed_orgs = ["acme-corp", "acme-labs"] + ``` + +#### Google + +=== "Helm chart" ```yaml title="values.yaml" - google: - allowed_domains: - - acme.com - - acme.io + control: + config: + auth: + google: + allowed_domains: + - acme.com + - acme.io + ``` +=== "control.toml" + ```toml + [auth.google] + allowed_domains = ["acme.com", "acme.io"] ``` diff --git a/docs/enterprise_edition/control_plane/features/slack.md b/docs/enterprise_edition/control_plane/slack.md similarity index 80% rename from docs/enterprise_edition/control_plane/features/slack.md rename to docs/enterprise_edition/control_plane/slack.md index 5e77da79..4caad6c4 100644 --- a/docs/enterprise_edition/control_plane/features/slack.md +++ b/docs/enterprise_edition/control_plane/slack.md @@ -10,15 +10,22 @@ The control plane can send notifications to a Slack channel. Notifications inclu Slack integration is **disabled** by default and can be enabled with configuration: -```yaml title="values.yaml" -control: - config: - slack: - bot_token: "xoxb-[...]" - channel: "C0123456789" -``` - -The following parameters can be configured via the [Helm chart](../installation.md): +=== "Helm chart" + ```yaml title="values.yaml" + control: + config: + slack: + bot_token: "xoxb-[...]" + channel: "C0123456789" + ``` +=== "control.toml" + ```toml + [slack] + bot_token = "xoxb-[...]" + channel = "C0123456789" + ``` + +The following parameters can be configured via the [Helm chart](installation.md): | Parameters | Description | |-|-| diff --git a/docs/images/control_plane.png b/docs/images/control_plane.png index aa2e8d41a9bd0d05f327f924c14ad71c71b89bc5..210e2f45d4e24f4edee4f8f08b14414b8f8c046b 100644 GIT binary patch literal 33857 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 GkpBUt0fIUJ diff --git a/mkdocs.yml b/mkdocs.yml index 1001c714..b23a9a85 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -100,6 +100,10 @@ plugins: 'features/session-mode.md': 'features/connection-pooler/session-mode.md' 'features/prepared-statements.md': 'features/connection-pooler/prepared-statements.md' 'features/pub_sub.md': 'features/connection-pooler/pub_sub.md' + 'enterprise_edition/control_plane/features/index.md': 'enterprise_edition/control_plane/index.md' + 'enterprise_edition/control_plane/features/alerts.md': 'enterprise_edition/control_plane/alerts.md' + 'enterprise_edition/control_plane/features/autoscaling.md': 'enterprise_edition/control_plane/autoscaling.md' + 'enterprise_edition/control_plane/features/slack.md': 'enterprise_edition/control_plane/slack.md' extra: social: diff --git a/tests/test_code_blocks.py b/tests/test_code_blocks.py index 1b715ef0..a6707f88 100644 --- a/tests/test_code_blocks.py +++ b/tests/test_code_blocks.py @@ -23,6 +23,7 @@ def verify(binary): for file in glob.glob("docs/**/*.md", recursive=True): + skip_toml = file.startswith("docs/enterprise_edition/control_plane/") with open(file, "r") as f: content = f.read() print(f"Checking {file}") @@ -42,6 +43,8 @@ def verify(binary): code = "".join(stripped_lines) if info == "toml": + if skip_toml: + continue if "[[users]]" in code: check_file(binary, "users", code) elif "[lib]" in code: From 11b45ad2aee4c0faa9bda336858132874aa3e579 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Fri, 10 Jul 2026 12:23:32 -0700 Subject: [PATCH 2/3] fix schema image --- docs/enterprise_edition/schema.md | 2 +- docs/images/ee/reload_schema.png | Bin 33654 -> 22690 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/enterprise_edition/schema.md b/docs/enterprise_edition/schema.md index 50565a3a..8cee6d9b 100644 --- a/docs/enterprise_edition/schema.md +++ b/docs/enterprise_edition/schema.md @@ -13,7 +13,7 @@ The open source edition supports refreshing the schema for single-node deploymen When a client executes a DDL command, e.g. `CREATE TABLE`, PgDog will send a notification to the [control plane](control_plane/index.md). The control plane will then trigger a schema reload across all registered PgDog nodes.
    - Reload schema + Reload schema
    This process takes place in the background, so the schema snapshot across nodes is eventually consistent. This is sufficient for most applications, since migrations run as a separate process and application traffic doesn't use new tables for a considerable amount of time after the schema is changed. This gives PgDog ample time to refresh its schema snapshot. diff --git a/docs/images/ee/reload_schema.png b/docs/images/ee/reload_schema.png index 9368056f15c694a74e98e12011bc8a7a3039500a..5893b918f39ce0ee623895cafd3ebec48d16ece5 100644 GIT binary patch literal 22690 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 literal 33654 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 From 7f1cdb414d15ebcc6e4db07a1bb2d9a90f440cbd Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Fri, 10 Jul 2026 12:31:25 -0700 Subject: [PATCH 3/3] update compose --- docs/examples/control_plane/docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/examples/control_plane/docker-compose.yaml b/docs/examples/control_plane/docker-compose.yaml index 8334a5db..50ada4cb 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-24 + image: ghcr.io/pgdogdev/pgdog-enterprise:v2026-07-09 command: [ "pgdog", @@ -43,7 +43,7 @@ services: image: redis:7 control: - image: ghcr.io/pgdogdev/pgdog-enterprise/control:v2026-06-24 + image: ghcr.io/pgdogdev/pgdog-enterprise/control:v2026-07-09 ports: - "8099:8080" environment: