This new release provides more scalability and several other enhancements.
New features
-
Deploy of cluster components on different servers (e7c0f91).
By default, all cluster components will be deployed to PostgreSQL servers. But, you may need to distribute the cluster components (ex. etcd cluster nodes) to different servers.
Now, you can deploy the etcd cluster and the haproxy balancers to other dedicated servers.
See sample inventory file. -
New playbook: add_pgnode.yml (9607bfb).
After you successfully deployed your PostgreSQL HA cluster, you may need to scale it further.
Use theadd_pgnode.yml
playbook for this.
See more Scaling: add new postgresql node to existing cluster -
New playbook: add_balancer.yml (5daf05b).
See more Scaling: add new haproxy balancer node -
Added compatibility with RedHat/OracleLinux/CentOS version 8.
(366e190 , d0754c4 , b914074) -
New variables:
patroni: (8c61cf0 , 478ca25 , 91b2257 , 95ae1fa)
synchronous_mode_strict
patroni_ttl, patroni_loop_wait
patroni_retry_timeout
patroni_maximum_lag_on_failover
patroni_master_start_timeout
patroni_postgresql_use_pg_rewind
patroni_remove_data_directory_on_rewind_failure
patroni_remove_data_directory_on_diverged_timelines
patroni_create_replica_methods
pgbouncer: (bcc9d7a)
pgbouncer_default_pool_size
pgbouncer_default_pool_mode
sudo: (0caf69c)
sudo_users
Enhancements and fixes
-
PostgreSQL: checked compatibility with PostgreSQL 12.
for Patroni version 1.6.0 and higher -
etcd: the etcd package has been updated to v3.3.18 version. (463a1f5).
-
etcd: generate
etcd_cluster_name
(ETCD_INITIAL_CLUSTER_TOKEN) based on the "patroni_cluster_name" variable (d57b55f). -
etcd: set high priority for etcd process (nice -20, ionice -c 1 -n 0) (2f41e80).
-
etcd: wait until the etcd cluster is healthy (d67313b).
-
Improved postgresql instance status check (for postgresql_exists='true') (744b3a7).
-
Waiting for CHECKPOINT to complete before stopping postgresql (for postgresql_exists='true') (8709ddd).
-
pgbouncer: automatically create database pools (via “*”) if they are not specified (cabdbe0) #18.
-
Set umask before installing pip packages (a7bd999).
-
Hide the password from the output of the "PostgreSQL users" task (c0d3316).
-
SSH Key-Based Authentication is disabled by default (2180962).
variable:enable_ssh_key_based_authentication
-
Added
PATRONICTL_CONFIG_FILE
environment variable into /etc/environment (67a7551). -
System variables moved to system.yml variable file (/vars/system.yml).
-
Added the ability to set kernel and firewall parameters individually for each host group (etcd_cluster, balancers, postgres_cluster) in the system.yml variable file.
-
Added new recommendations:
"Placement of cluster members in different data centers"
"How to prevent data loss in case of autofailover (synchronous_modes and pg_rewind)"