Skip to content

feat: cluster config model + Postgres plugin state detection - #1049

Merged
paulocsanz merged 1 commit into
masterfrom
pcs/pg-mgmt-03-cluster-model
Aug 7, 2026
Merged

feat: cluster config model + Postgres plugin state detection#1049
paulocsanz merged 1 commit into
masterfrom
pcs/pg-mgmt-03-cluster-model

Conversation

@paulocsanz

Copy link
Copy Markdown
Collaborator

Part 3/8 of the railway postgres pitr/ha/pgbouncer stack (split out of #1032 for reviewability — see that PR for the full context, live-prod e2e evidence, and the test-postgres-cli harness). Each PR is based on the previous one and is independently green (cargo test/clippy/fmt).

Environment-config model learns the cluster fields templates stamp:
clusterRole (root/replica/internal/edge), groupId, and the
template-declared ClusterWiring map (which variables carry node identity,
coordinator hosts, the edge's data-node list, and consensus quorum).

controllers::postgres_plugins derives PITR/HA/PgBouncer enabled-state and
topology from the same environment-config blob the dashboard parses --
there is no dedicated "is this enabled" query. Includes the guardrail
inputs (official-image / minor-pin / custom-start-command), parent-chain
root resolution with a cycle guard, and the Railway-service -> Patroni
member-name join via each node's identity variable (the postgres-ha
template AUTHORS the root's Patroni name, e.g. postgres-1, so service
names are only the fallback).

Part 3/8 of the railway postgres pitr/ha/pgbouncer stack.

@paulocsanz paulocsanz added the release/skip Author no release label Aug 7, 2026
Base automatically changed from pcs/pg-mgmt-02-exec-patroni to master August 7, 2026 20:54
Environment-config model learns the cluster fields templates stamp:
clusterRole (root/replica/internal/edge), groupId, and the
template-declared ClusterWiring map (which variables carry node identity,
coordinator hosts, the edge's data-node list, and consensus quorum).

controllers::postgres_plugins derives PITR/HA/PgBouncer enabled-state and
topology from the same environment-config blob the dashboard parses --
there is no dedicated "is this enabled" query. Includes the guardrail
inputs (official-image / minor-pin / custom-start-command), parent-chain
root resolution with a cycle guard, and the Railway-service -> Patroni
member-name join via each node's identity variable (the postgres-ha
template AUTHORS the root's Patroni name, e.g. postgres-1, so service
names are only the fallback).

Part 3/8 of the railway postgres pitr/ha/pgbouncer stack.
@paulocsanz
paulocsanz force-pushed the pcs/pg-mgmt-03-cluster-model branch from 868362a to 3e5f71b Compare August 7, 2026 21:01
@paulocsanz
paulocsanz merged commit 35e9c09 into master Aug 7, 2026
9 checks passed
@paulocsanz
paulocsanz deleted the pcs/pg-mgmt-03-cluster-model branch August 7, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release/skip Author no release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant