feat: cluster config model + Postgres plugin state detection - #1049
Merged
Conversation
8 tasks
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
force-pushed
the
pcs/pg-mgmt-03-cluster-model
branch
from
August 7, 2026 21:01
868362a to
3e5f71b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.