mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-01-28 02:20:04 +00:00
They could be useful to eliminate "unhealthy" pods from subsets addresses when the K8s service with label selectors are used. Real-life example: the node where the primary was running has failed and being shutdown and Patroni can't update (remove) the role label. Therefore on OpenShift the leader service will have two pods assigned, one of them is a failed primary. With the readiness probe defined, the failed primary pod will be excluded from the list.
38 lines
975 B
Bash
Executable File
38 lines
975 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ $UID -ge 10000 ]]; then
|
|
GID=$(id -g)
|
|
sed -e "s/^postgres:x:[^:]*:[^:]*:/postgres:x:$UID:$GID:/" /etc/passwd > /tmp/passwd
|
|
cat /tmp/passwd > /etc/passwd
|
|
rm /tmp/passwd
|
|
fi
|
|
|
|
cat > /home/postgres/patroni.yml <<__EOF__
|
|
bootstrap:
|
|
dcs:
|
|
postgresql:
|
|
use_pg_rewind: true
|
|
initdb:
|
|
- auth-host: md5
|
|
- auth-local: trust
|
|
- encoding: UTF8
|
|
- locale: en_US.UTF-8
|
|
- data-checksums
|
|
pg_hba:
|
|
- host all all 0.0.0.0/0 md5
|
|
- host replication ${PATRONI_REPLICATION_USERNAME} ${PATRONI_KUBERNETES_POD_IP}/16 md5
|
|
restapi:
|
|
connect_address: '${PATRONI_KUBERNETES_POD_IP}:8008'
|
|
postgresql:
|
|
connect_address: '${PATRONI_KUBERNETES_POD_IP}:5432'
|
|
authentication:
|
|
superuser:
|
|
password: '${PATRONI_SUPERUSER_PASSWORD}'
|
|
replication:
|
|
password: '${PATRONI_REPLICATION_PASSWORD}'
|
|
__EOF__
|
|
|
|
unset PATRONI_SUPERUSER_PASSWORD PATRONI_REPLICATION_PASSWORD
|
|
|
|
exec /usr/bin/python3 /usr/local/bin/patroni /home/postgres/patroni.yml
|