postgresql: add HAProxy config for Patroni-aware TCP routing (ADR-0001 Phase 2)
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# ─────────────────────────────────────────────────────────────────────────
|
||||
# postgresql/haproxy.cfg — Patroni-aware TCP router (ADR-0001)
|
||||
# Routes to whichever Patroni node currently answers 200 on GET /primary.
|
||||
# No credentials needed here — Patroni's REST API leaves GET/health-check
|
||||
# endpoints (/primary, /replica, /health) open; only PATCH/POST config
|
||||
# endpoints require postgresql_patroni_password basic-auth.
|
||||
# ─────────────────────────────────────────────────────────────────────────
|
||||
|
||||
global
|
||||
maxconn 200
|
||||
log stdout format raw local0
|
||||
|
||||
defaults
|
||||
log global
|
||||
mode tcp
|
||||
retries 2
|
||||
timeout client 30m
|
||||
timeout connect 4s
|
||||
timeout server 30m
|
||||
timeout check 5s
|
||||
|
||||
# Internal-only stats page — reachable within postgresql_db-backend overlay
|
||||
# network only (no published port in postgresql.yaml), not exposed externally.
|
||||
listen stats
|
||||
mode http
|
||||
bind *:7000
|
||||
stats enable
|
||||
stats uri /
|
||||
stats refresh 10s
|
||||
|
||||
listen postgres
|
||||
bind *:5432
|
||||
option httpchk GET /primary
|
||||
http-check expect status 200
|
||||
default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions maxconn 100
|
||||
server patroni-0 patroni-0:5432 check port 8008
|
||||
server patroni-1 patroni-1:5432 check port 8008
|
||||
Reference in New Issue
Block a user