Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
|
||
| ```yaml | ||
| postgres: | ||
| enabled: false |
There was a problem hiding this comment.
Confirming this really is false?
There was a problem hiding this comment.
seems correct, if it's not set to false then the host value is ignored Deploys the bundled Postgres StatefulSet. Set false for external.
There was a problem hiding this comment.
Then that term is… confusing?
iherdt
left a comment
There was a problem hiding this comment.
Looks right against chart 1.10.1. Two additions worth making before this ships, since both are things an operator hits on first use:
-
Say why
enabled: false. Withpostgres.enabled: truethe chart deploys the bundled Postgres and points every service at<release>-postgres, ignoringpostgres.host. One sentence under the example prevents someone flipping it back and wondering why PgBouncer is never used. -
directHostis required, not optional, once a migration is pending. The engine probes the migration endpoint at startup and refuses to migrate through a transaction pooler (refusing to migrate: ... set direct_host/direct_port to the database server instead of a transaction pooler). A database that is already current starts fine through the pooler. Worth stating so an upgrade to 1.10.1 with pooled traffic and no direct endpoint doesn't read as a mystery failure.
Nit: the values block could take title="values.yaml" per the style guide.
| directPort: 5432 | ||
| ``` | ||
|
|
||
| `postgres.host` and `postgres.port` are used by the running services. `postgres.directHost` and `postgres.directPort` are used for operations that require PostgreSQL session state, which transaction pooling doesn't preserve. |
There was a problem hiding this comment.
| `postgres.host` and `postgres.port` are used by the running services. `postgres.directHost` and `postgres.directPort` are used for operations that require PostgreSQL session state, which transaction pooling doesn't preserve. | |
| `postgres.enabled: false` turns off the bundled Postgres so the chart uses the hosts above. `postgres.host` and `postgres.port` serve the running services. `postgres.directHost` and `postgres.directPort` serve migrations and database creation, which need PostgreSQL session state that transaction pooling doesn't preserve. When a migration is pending, the engine checks the migration endpoint at startup and refuses to run it through a transaction pooler, so set the direct endpoint before upgrading. A database that is already current starts through the pooler without it. |
Why
PgBouncer transaction-pooling support shipped in Arcade Helm chart 1.10.1, but the customer-facing self-hosting docs did not explain how to configure it. Operators need to know that application traffic goes through PgBouncer while migrations and database creation use a direct PostgreSQL endpoint.
Context: DEP-35
What changed
values.yamlexample usingpostgres.host/portandpostgres.directHost/directPort.prepareThreshold=0is JDBC-specific and not used by Arcade.Verification
/en/operate/deploy/helmusing the local Next.js development server; the page returned HTTP 200.pnpm build— passed; all 290 static pages generated.pnpm typecheck— passed.pnpm test— passed; 69 files and 864 tests.git diff --check— passed.Risks and review focus
Documentation-only change. Please verify that the example hostnames and the distinction between pooled runtime traffic and direct migration traffic are clear to self-hosted operators.
Readiness evidence
Head: cb8da9f
DRAFT — awaiting repository CI and automated style review.