Skip to content

Releases: vitabaks/postgresql_cluster

Release 2.0 (Clouds and UI)

18 Aug 18:48
23d0219
Compare
Choose a tag to compare

We are excited to announce the release of version 2.0 🎉 , a major update that brings significant new features to the postgresql_cluster project:

  • This release introduces the capability to deploy PostgreSQL clusters across various cloud providers, including AWS, GCP, Azure, DigitalOcean, and Hetzner Cloud.
  • Additionally, we’ve developed a User Interface (UI) - PostgreSQL Cluster Console, designed to streamline the deployment process, making it easier than ever to set up your clusters.

image

With this release, postgresql_cluster will automatically configure the following:

  1. A virtual machine (with a dedicated data disk), with all cluster components installed and configured.
  2. A cloud load balancer to serve as the entry point for database connections.
  3. A storage bucket, and configured backups using pgBackRest.

🙏 A special thanks to @gslabs-dev for his contribution, @Rainbrand for developing the UI, and @ngurban for the API development.

Inspiration: We drew inspiration from the designs of Google Cloud Console, Aiven for PostgreSQL, and Postgres.AI, which greatly influenced our approach.

🔭 Looking ahead, we are planning to enhance the PostgreSQL Cluster Console with features that will enable you to manage your PostgreSQL clusters directly through the UI. If you’re interested in supporting the continued development of this feature, please consider becoming a sponsor.

New features

  • Provision of resources in a popular cloud providers for PostgreSQL cluster deployment by @vitabaks in #464
  • PostgreSQL Cluster Console (UI/API) by @gslabs-dev in #667
  • Docker image 'vitabaks/postgresql_cluster'
    • includes repository code, ansible, and all necessary dependencies.
  • New roles:
    • authorized-keys
      • These SSH public keys will be added to the server's ~/.ssh/authorized_keys file.
      • variable: ssh_public_keys (optional, default '')
    • mount
      • Configure mount points in /etc/fstab and mount the file system
      • variables: mount (optional, default ''), pg_data_mount_path (default '/pgdata'), pg_data_mount_fstype (default 'ext4')
      • Note: an empty disk will be automatically detected for cloud providers.
      • ZFS pool will be created if 'zfs' specified in the mount.fstype variable.
  • Automatically generate passwords (if not defined) for: patroni_superuser_password, patroni_replication_password, patroni_restapi_password, pgbouncer_auth_password.
  • install perf, FlameGraph and postgres dbgsym/debuginfo packages
    • variable install_perf, default 'false'
  • Extension Auto-Setup
    • This feature simplifies the integration and configuration process for PostgreSQL third-party extensions. This automated approach eliminates the need for manual configuration, allowing users to seamlessly integrate PostgreSQL extensions. To activate the "Extension Auto-Setup", specify the enable_<extension_name>=true variable.
    • List of extensions: timescaledb, citus, pg_repack, pg_cron, pgaudit, pgvector, postgis, pgrouting, pg_stat_kcache, pg_wait_sampling, pg_partman
  • Add the ability to execute pre and post-deploy command
    • Variables: pre_deploy_command, post_deploy_command
    • This can be a direct command, a bash script content, or a path to a script on the host.

Other changes

  • Support Ubuntu 24.04; Install Patroni via deb/rpm package by @vitabaks in #642
  • Update WAL-G to v3.0.3 by @vitabaks in #725
  • Remove support for RHEL 7, Debian 10 and Ubuntu 20.04 by @vitabaks in #729
  • Added default ansible_python_interpreter; Compatibility with Ansible 10 by @tk-nguyen in #730
  • Using deb822_repository module instead of apt_key and apt_repository by @FactorT in #591
  • Remove extra quotes from log_line_prefix by @vitabaks in #733

New Contributors

Full Changelog: 1.11.0...2.0.0

Release 1.11.0

02 Aug 17:01
05e360e
Compare
Choose a tag to compare

New features

Enhancements

  • Add more tls config values to pgbouncer.ini by @FabianHardt in #633
  • Make keepalived role more configurable (issue #683) by @abyss-ms in #684
  • update_pgcluster.yml: Update pgBackRest package on the backup server by @vitabaks in #648
  • pgBackRest: Add '--no-online' option to stanza-create by @vitabaks in #695
  • pgBackRest: Ensure directories exist with correct permissions by @vitabaks in #704
  • Add basic security for Patroni REST API by @rcknr in #647
  • confd: haproxy: optional log-format by @jimnydev in #687

Fixes

  • Not ansible_check_mode for import ssh_keys by @SDV109 in #650
  • Syntax problem with cron wal-g command by @garry-t in #658
  • Add wal_g_path variable; fix "wal-g: not found" (issue 658) by @rrrru in #679
  • Fix (Upgrade): Delegate maintenance mode tasks to 'balancers' group by @vitabaks in #699
  • Fix (Upgrade): Update pg-path in local pgbackrest.conf by @vitabaks in #700
  • WAL-G: Specify the '--config' option by @vitabaks in #703
  • ssh-keys: Fix the typo in the condition by @vitabaks in #706
  • Fix issue with jija2 template interpolation by @garry-t in #719

Other

Tests

  • Molecule: Avoid requests 2.32.0 during testing by @vitabaks in #663

New Contributors

Full Changelog: 1.10.0...1.11.0

Release 1.10.0

16 Apr 15:00
8e7151c
Compare
Choose a tag to compare

New features

  • Enhanced Multi-Data Center Traffic Management
    • Added capabilities for dynamic configuration of Patroni REST API endpoints with custom tags like datacenter=<name>, enabling optimized local load balancing and improved read efficiency across geographically distributed Postgres clusters.
      • Add the ability to set Patroni tags (including custom tags) by @vitabaks in #611
        • Variable: patroni_tags
      • Add the ability to set tags for HAProxy load balancers by @vitabaks in #613 #618
        • Variable: balancer_tags

Enhancements

  • Adds variables to enable client tls on pgbouncer by @n-borges in #585
  • update_pgcluster.yml improvements
    • Wait for caches to warm up after reboot by @vitabaks in #580
    • Use Patroni REST API instead of patronictl command to switchover by @SDV109 in #596
  • pg_upgrade.yml improvements
    • Analyze a PostgreSQL database (optimizer statistics) immediately after the upgrade by @vitabaks in #601
    • Monitor and terminate the long-running transactions during statistics collection by @vitabaks in #601
      • optional, variable: vacuumdb_analyze_terminate_threshold
    • Upgrade and rollback Improvements by @vitabaks in #608
  • Patroni: Add permanent replication slots by @vitabaks in #614
    • Variable: patroni_slots (by default, the value is not defined)
  • Add patroni_restapi_listen_addr and postgresql_listen_addr variables by @vitabaks in #598

Fixes

  • update_pgcluster.yml
  • pg_upgrade.yml
    • Apply timeout directly to psql in PgBouncer pause script by @vitabaks in #600
    • Make sure that the 'recovery.signal' file is absent by @vitabaks in #607

Other

  • Python 3.11 use on RedHat 8 and above by @weisscorp in #573
  • Update ansible dependencies and fix lister's warnings by @vitabaks in #579
  • Replace the pg_ctlcluster command with pg_ctl and increase the timeout by @vitabaks in #590
  • pgbackrest : Add pg1-socket-path option by @vitabaks in #606
  • ansible_python_interpreter: Use Python 3 (by default) by @vitabaks in #624
  • Update the tasks to check the availability of the VIP address by @vitabaks in #623
  • Update Patroni to v3.3.0 by @vitabaks in #621
  • Update WAL-G to v3.0.0 by @vitabaks in #629

Tests

  • Molecule: Update all system packages before testing by @vitabaks in #575

New Contributors

Full Changelog: 1.9.0...1.10.0

Release 1.9.0

03 Feb 21:15
139535c
Compare
Choose a tag to compare

New features

  • Support for multiple PgBouncer processes (using so_reuseport) by @vitabaks in #487
    • PgBouncer is single-threaded and uses one CPU core per instance, this option is a way to get PgBouncer to use multiple CPU cores. Variable: pgbouncer_processes (default: 1)
  • Add patroni_maximum_lag_on_replica variable by @vitabaks in #569 #570
    • The implementation involves appending an optional ?lag=<max-lag> parameter to the health check for replica and async endpoints. By doing so, it enables excluding those replicas from load balancing whose lag exceeds the specified maximum, as determined by the patroni_maximum_lag_on_replica setting (default: "100MB").

Enhancements

Fixes

  • WAL-G: fix command for task "Check the latest available Go version" and install make package by @vitabaks in #446
  • Fix: Compatibility with custom patroni_superuser_username by @vitabaks in #462
  • Fix: Do not use a proxy when accessing the Patroni API by @vitabaks in #465
  • Change to avoid the error "AnsibleUndefinedVariable: 'ansible_hostname'" by @TommasoDb in #483
  • Fix patroni.yml: Remove extra '+' from 'endfor' in etcd3.hosts by @vitabaks in #490
  • PgBouncer: drop -q option from call by @jimnydev in #491
  • PgBouncer: Fix "local" pg_hba rule by @vitabaks in #508
  • Fix: perform tasks of the "copy" role with root privilege by @vitabaks in #525
  • Fix add_pgnode.yml: Clear the data directory for the new node for bootstrapping by @vitabaks in #527
  • Fix: Set the dependency versions for the "yedit" module. by @vitabaks in #529
  • Fix: Skip creating DB users and functions in Standby Cluster leader by @vitabaks in #533
  • upgrade: Fix PgBouncer socket dir permissions on RHEL by @vitabaks in #534
  • upgrade: Ensure correct permissions for PgBouncer unix socket directory by @vitabaks in #544
  • Import AlmaLinux repository GPG key by @vitabaks in #557 #566
  • Disable 'pgdg' repo during system packages installation (RHEL) by @vitabaks in #561
  • add-repository: Do not delete the 'epel-release' package if it is installed (RHEL) by @vitabaks in #567
  • Consul: Add a nameserver entry poining to localhost for dnsmasq by @vitabaks in #571

Other

  • HAProxy: enable direct connections apart from pgbouncer ones (#548) by @jimnydev in #549
  • issues 449,448 remove_cluster.yml improvements by @rrrru in #450
  • PgBouncer: Ensure pgbouncer service is enabled by @vitabaks in #454
  • PgBouncer: Install the latest version of the pgbouncer package by @vitabaks in #461
  • PgBouncer: Use the RuntimeDirectory option in the systemd unit file. by @vitabaks in #506
  • config_pgcluster.yml: Add compatibility with check mode by @vitabaks in #459
  • PgBackRest: do not perform the role of ssh_keys in check mode by @vitabaks in #466
  • PgBackRest: Create a unique cron file name by @vitabaks in #468
  • vip-manager: do not install in check mode by @vitabaks in #467
  • etcd: compatibility with check mode by @vitabaks in #470
  • etcd: Parameters for patroni etcd username, password and namespace by @lavr in #473
  • confd: requires an additional 'basic_auth' flag for etcd authorization by @lavr in #475
  • pgpass: do not output the contents to the log by @vitabaks in #469
  • Add PIP_BREAK_SYSTEM_PACKAGES to the pip module by @vitabaks in #486
  • Add "keepalived_virtual_router_id" variable by @vitabaks in #513
  • Do not use a proxy when accessing the Patroni API by @vitabaks in #521
  • add_pgnode.yml: Fix the list of hosts to configure pgbackrest by @vitabaks in #517
  • pg_upgrade: Use 50% CPU cores for vacuumdb (analyze) by @vitabaks in #523
  • Optimize PostgreSQL parameters for SSD storage by @vitabaks in #536
  • Describe "Changing PostgreSQL configuration parameters" by @vitabaks in #556
  • Specify Patroni version (don't use 'latest' by default) by @vitabaks in #474
  • PostgreSQL 16 (by default) by @vitabaks in #526
  • Update Patroni to v3.2.0 by @vitabaks in #492
  • Update ETCD to v3.5.11 by @vitabaks in #545
  • Update Consul to v1.15.8 by @vitabaks in #546
  • Update Patroni to v3.2.2 by @vitabaks in #554
  • Update vip-manager to v2.3.0 by @vitabaks in #565
  • Remove compatibility with Ubuntu 18.04 by @vitabaks in #495

Tests

  • Molecule: Add config_pgcluster.yml and update_pgcluster.yml playbooks to tests by @vitabaks in #478
  • Molecule: exclude ubuntu 18.04 from pg_upgrade tests by @vitabaks in #479
  • Add the Molecule tests for the Type C schema (Consul) by @vitabaks in #511

New Contributors

Full Changelog: 1.8.0...1.9.0

Release 1.8.0

19 Aug 22:18
7ec51a3
Compare
Choose a tag to compare

New features

  • Automate updates for PostgreSQL HA Cluster (#281)
    • update_pgcluster.yml playbook is designed to update the PostgreSQL HA Cluster to a new minor version (postgresql, patroni, or the system)
    • More details can be found here
  • Automate in place major upgrades for PostgreSQL (#301)
    • pg_upgrade.yml playbook is designed for in-place major upgrades of PostgreSQL (e.g., from 14 to 15, etc)
    • Upgrade Plan and more details can be found here
  • Simple cluster deployment with timescaledb (#335)
    • to deploy a PostgreSQL HA Cluster with the TimescaleDB extension, you just need to specify only one variable enable_timescale=true
  • Added restart option in config_pgcluster.yml (by @artemsafiyulin in #354)
  • Added pgbouncer authentication via auth_user and auth_query (by @chuegel in #401, #409, #433)
  • Added the functionality of assigning roles to users (by @sgremyachikh in #439)
  • New roles

Enhancements

  • Automate the tuning of shared_buffers and effective_cache_size (b6be91f)
  • Added watchdog support by @tanganellilore in #250
  • Added callbacks by @artemsafiyulin in #248
  • Add PowerTools repository to install dependencies (a98ca02)
  • Enable CodeReady Linux Builder (crb) repository (for RHEL 9) (0bea22f)
  • Enable CodeReady Builder repository for Oracle Linux (7531a94)
  • PITR: password reset for PostgreSQL users (b64d8b0)
  • pgbackrest: stanza-create (392dc34, eb35ebc)
  • pgbackrest: Add the ability to configure a dedicated pgBackRest server (#379)
  • pgbackrest: Ensure 'repo1-host' and 'repo1-host-user' are set correctly (#399)
  • Automate 'archive_command' configuration for pgBackRest and WAL-G (#394)
  • Automate cron jobs configuration for WAL-G and minor fixes (#395)
  • Update the etcd and vip-manager version (use API v3) (#274)
  • Ability to configure connection limits by @mrsrvman in #280
  • Several attempts to install apt and package by @FactorT in #285
  • Improvements and simplification of the cluster scaling process (#290)
  • pgbouncer: Add the pgbouncer_listen_addr variable (55b0e98)
  • pgbouncer: Update pool size calculation algorithm (#362)
  • custom_wal_dir: Refactoring custom WAL directory setup (#425)
  • Refactor config_pgcluster.yml, add the leader identification and backup settings (#444)

Fixes

  • PITR: clear data directory for replicas before restoring if patroni_create_replica_method does not contain pgbackrest (9313991)
  • PITR: don't try to stop Postgres if "pg_ctl status" returned 4 (6a9934c)
  • PITR: Remove patroni.dynamic.json file before start PostgreSQL for Recovery (476df01)
  • pgbackrest: fix condition for task ssh_keys (48a7ecc)
  • etcd: exclude performance tuning (nice/ionice) for containers (cc2bd54, 2483a71)
  • exclude "Disable Transparent Huge Pages" for containers (775c80c)
  • exclude role swap for containers (a6dd4df)
  • Set permissions for the etcd directory by @mrsrvman in #268
  • repaired pgbackrest (fix typo) by @wolacinio in #282
  • vip-manager: fix task "Wait for the cluster ip address (VIP) is running" (e4a7524)
  • fix: define all groups in the firewall_additional_rules_for variable (59b6100)
  • firewall: prevent errors when there are host groups undefined in firewall_allowed_tcp_ports_for and firewall_additional_rules_for variables (db81ac6)
  • sysctl: avoid errors when there are host groups undefined in sysctl_conf variable (0d9287f)
  • Fix the condition for the "Create Dnsmasq configuration" task loop (0449e67)
  • Fix: Disable privilege escalation for temp file deletion tasks (#421)
  • Make sure that the cron package is installed (#426)
  • Consul: Fix '_consul_lan_servers' variable to resolve 'hostvars[' ']' not defined' (#440)

Other

  • config_pgcluster: add role "copy" (4895da2)
  • consul: Make sure the python3-pip package are present on controlling host (12812fb)
  • consul: Make sure the unzip package are present on the control host (f94da57)
  • consul: Install netaddr dependency on the control host (#442)
  • Describe the requirements for standby cluster (ca77724)
  • Do not install pip using get-pip.py (581cf53)
  • pg_probackup: Add repo for Centos and Oracle Linux (#263)
  • remove_cluster: Delete PgBackRest cron by @mrsrvman in #264
  • Deleting local files after copying from the master by @mrsrvman in #267
  • Ability to install packages for patroni as a list by @mrsrvman in #269
  • Added information about the system in ansible log (b0c7616)
  • rename "etcd_ver" variable to "etcd_version" (afe2de9)
  • remove_cluster: ignore the error if the patroni service is unavailable (7924d46)
  • Add patroni_restapi_port variable (#279)
  • pgbouncer: add query_wait_timeout parameter on pgbouncer.ini.j2 by @mbobrovskyi in #296
  • remove_cluster: stop consul service if remove_consul is true by @bazzzsh in #300
  • timezone: Make sure that the tzdata package is installed (6491595)
  • replace the "UTC" timezone with "Etc/UTC" (58cd484)
  • Increase track_activity_query_size to 4096 (3111db6)
  • Configure tcp_keepalives settings for PostgreSQL (53edccd)
  • Make inventory group 'balancers' optional in Ansible tasks (16c63c5)
  • Patroni: Replace md5 with postgresql_password_encryption_algorithm in pg_hba.conf section (#398)
  • Patroni: switch to Patroni REST API endpoint '/primary' (#400)
  • Remove compatibility with Ansible versions older than 2.11.0 (#403)
  • WAL-G: Perform weekly full backup and retain 4 full backups (cf84295)
  • Do not install PowerTools repository and postgresql devel package by default (RedHat) (#443)
  • Improving the codebase of roles and playbooks:
  • Update etcd to version 3.5.9 (2d96cf6)
  • Update Consul to version 1.14.7 (ca5a5fe)
  • Debian 12 (Bookworm) support (#382)

Dev and Tests

Read more

Release 1.7.0

28 Jan 18:38
Compare
Choose a tag to compare

New features

Enhancements

  • Added the ability to install new versions of WAL-G. Update to version 2.0.1 (#226)
  • Added compatibility with the Red Hat family version 9 (5eb45fc)
  • Make sure that the total size of the pgbouncer pools does not exceed max_connections (#237, thanks @artemsafiyulin)

Fixes

  • Fix yamllint warnings (e005628)
  • Compatibility with python 3.6 for the task "install pip" (7c152f6)
  • postgresql_parameters: fix log_filename parameter (#230)
  • Role confd: fixe URL to the etcd cluster nodes (for dcs_exists: true) (#231)
  • Role hostname: change hostname in /etc/hosts for localhost only (42840a2)
  • Fix /etc/environment error for variable PATRONICTL_CONFIG_FILE (#242, thanks @anyuta1166)
  • Fix typo in confd role (#243, thanks @anyuta1166)
  • Pin setuptools package to version <66 (#244)

Other

  • Update firewall_ports_dynamic_var, firewall_rules_dynamic_var (a6c7d40)
  • packages: change state from latest to present (3c9429d)
  • Added pipelining mode to Ansible configuration (20dad13)
  • Remove the "warn: false" argument for the command module for compatibility with Ansible version 7 (b4e1c86).
  • Update requirements.txt (switch to boto3 and add pysyncobj module) (f2f70f9)
  • Add tag "install_packages" for the task of installing postgresql packages (af1dc80)
  • pgbouncer: update the path to the pid file (4f1d890)
  • haproxy: update the path to the pid file (cedd92b)
  • Remove compatibility with Debian 9 Stretch (1e26921)
  • PostgreSQL 15 (by default) (b71473c)

Tests

  • Add .yamllint file (4ed1f6e)
  • Update .ansible-lint (14a1927)
  • Molecule: add cgroupns_mode to fix CI workflow (42b56fd)
  • Molecule: remove CentOS 7 and Oracle Linux 7 from tests (844baf4)
  • Add CentOS Stream 8 and 9, Rocky Linux 9, AlmaLinux 9, Oracle Linux 9 to tests (d9cdfc9, e731b19)
  • Remove "curl" from the "system_packages" list to prevent failures in CI (9e91e4b)

Comparing changes: 1.6.1...1.7.0

Release 1.6.1

08 Nov 13:56
e23d43c
Compare
Choose a tag to compare

New features

  • Automate database backup: create crontab for pgbackrest (#215 thanks @chlordk)
  • Add PostgreSQL schemas. New variable: postgresql_schemas (#187 thanks @chlordk)
  • Add playbook remove_cluster.yml (#188, #189 thanks @chlordk)

Enhancements

  • pgbouncer: new variable: ignore_startup_parameters (#163 thanks @jimnydev)
  • pgbouncer: new variables: pgbouncer_admin_users, pgbouncer_stats_users (23565bd)
  • Restart Patroni service if it crashed (b56d504)
  • Add compatibility with ubuntu 22.04 (44aeb5d)

Fixes

  • Support different patroni_superuser_username (271a357, 83a2f3e)
  • Role postgresql-users: add "postgres" as the default database to connect (0752de8)
  • Role sysctl: improve sysctl_conf_dynamic_var variable (issue #211, MR #214 thanks @linuxfreakus)

Other

  • Gathering Facts from all servers, tags: always (6daa875)
  • Do not configure firewall (iptables) by default (aee2562)
  • Do not generate the locale "ru_RU" by default (09c9b6f)
  • PostgreSQL: increase the max_worker_processes parameter (6027669)
  • PostgreSQL: add auto_explain.sample_rate parameter (584e807)
  • Comment out the "net.netfilter.nf_conntrack_max" kernel parameter (a911cb5)
  • Comment out the "kernel.sched_migration_cost_ns" kernel parameter (bf3fd84)
  • README: Index - Table Of Content (#190 thanks @chlordk)
  • README: Make image path relative (#198 thanks @chlordk)

Tests

Comparing changes: 1.6.0...1.6.1

Release 1.6.0

20 Apr 14:38
d17a520
Compare
Choose a tag to compare

New features

  • Add support for the Patroni standby cluster. Variable patroni_standby_cluster (8b002d1)
  • Add role "netdata". Variables: netdata_install, netdata_install_options, netdata_conf (c176367, a8f1c76)
  • Add role "copy". Variables: fetch_files_from_master, copy_files_to_all_server (#154)
  • Add role "swap". Variables: swap_file_create, swap_file_path, swap_file_size_mb (#160)
  • Add support Rocky Linux (e5f71a6, 8873479)
  • add support AlmaLinux (thanks @jonathanspw) (#127)
  • Add support pg_probackup for the Patroni cluster bootstrap and create replica (thanks @shipiguzev) (#134, d4506a1, 9724859)

Enhancements

Fixes

  • Fix: "urllib3 (1.26.6) or chardet (3.0.4) doesn't match a supported version" (33cad15)
  • Fix nf_conntrack_ipv4 modprobe for RHEL 8.3 and 8.4 (c899ed6)
  • netdata: Enable PowerTools repository for RHEL 8 (dee14e5)
  • Fix: HAProxy package version for Debian 11 (60c3d8c)
  • Fix: server certificate verification failed for apt.postgresql.org (Debian 9) (f4ee06c)
  • Disable the "master is the leader with the lock" check for standby leader (2eda7aa)
  • Fix vip-manager URL for RedHat (thanks @nwaddon) (#159)

Other

  • Update requirements (requests>=2.25.1) (5429441)
  • Molecule: add namespace to meta/main.yml (0417a84)
  • Move OS-specific variables to include_vars (e496a25)
  • Add the "always" tag to include_vars (6acba3c)
  • Update galaxy_info (meta/main.yml) (0058beb)
  • Add Port requirements to README (a477dc6)

Tests

  • Molecule: add Debian 11 "bullseye" (1684cfa)
  • Molecule: add HAProxy installation tests (524663e, a50a3d6)
  • Update molecule.yml and add almalinux8 (4491d09)
  • Fix ansible-lint error (cannot import name 'render_group') (af0bdf6)
  • Update .ansible-lint (9cace0c)
  • Update workflow ansible-lint (479d318, 9b6498a)

Release 1.5.0

23 Aug 10:06
0fbe739
Compare
Choose a tag to compare

New features

  • Custom WAL location ("postgresql_wal_dir" variable) (ac3850d)
  • Allow conversion of the basic primary-standby replication to the patroni cluster (1b5516e)
  • Compatibility with Oracle Linux 7 and 8.

Enhancements

  • Add "disable_archive_command" and "keep_patroni_dynamic_json" variables (61bf839)
  • patroni: add log settings (4172977)
  • wal-g (custom bootstrap): Wait for PostgreSQL Recovery to complete (WAL apply) (a374b8d)
  • Allow execution of the "generate pg_hba.conf on Replica" task for RedHat-based systems, if the "postgresql_exists" variable is "true" (a7f683b)
  • Allow to perform pg_hba tasks before executing the add_pgnode.yml playbook for cluster scaling:
    ansible-playbook deploy_pgcluster.yml --tags pg_hba (a7f683b)
  • Add "haproxy_maxconn" and "haproxy_timeout" variables (1f0ac50, f190881)
  • add sysctl parameter "net.ipv4.tcp_tw_reuse" (5046b77)
  • Add --wait and --timeout options for pg_ctl stop command (923c776)
  • Add Development repository for OracleLinux 7 (6463894)
  • Reinstall glibc-common to avoid problem when generating locales (for OracleLinux 7) (5837ae4)
  • pgbackrest: install gnupg and apt-transport-https packages (323ab6e)
  • etcd: set "initial-selection-tick-advance=false" (0f651c7)
  • etcd role: Make sure the unzip/tar packages are present (dd5ee62)
  • etcd_ver: "v3.3.25" (dc49266)
  • wal_g_ver: "v0.2.19" (1b37807)
  • postgresql: 13 (by default) (7b301b9)

Fixes

  • Don't generate pg_hba.conf on every PITR (3952a49)
  • add extra_opts: --no-same-owner for unarchive module (f21316c)
  • Restrict standard local port range (9bfb151)
  • fix issue with "is search" condition for ansible older then 2.9 (54ed666)
  • do not generate pg_hba.conf on replica if postgresql_conf_dir=postgresql_data_dir (3128767)
  • check that the /etc/locale.conf exists (2575ed1)
  • Use ansible_python_interpreter: /usr/bin/python3 for pip3 tasks (f14191a)

Other

  • comment out the example nameservers (88337b4)
  • ansible: disable deprecation_warnings (06fb7af)
  • Update requirements.txt (ff3e01e)
  • remove wal_e vars (f546561)
  • Add meta/main.yml (c52b46c)
  • Upgrade urllib3 to version 1.25.9 or later (e55d295)

Tests

EOL

  • Delete Ubuntu 16.04 from the list of supported OS (75afbc2)

Release 1.4.1

05 Nov 09:42
Compare
Choose a tag to compare

Enhancements

  • Patroni: use .pgpass_patroni instead of the default ".pgpass" password file (353877b)
  • Patroni: add pg_ident.conf support (d7f3536)
  • Patroni: add synchronous_node_count variable (d1486ab)
  • stats_temp_directory variables (3be08fc)
  • Install the latest system packages (e6c8d9e)
  • locales: set system locale (LANG,LC_ALL) (fc3c5f6)
  • Use https only for external URL`s (a8ca372)
  • Make sure the apt-transport-https package is present (deban/ubuntu) (6127827)
  • vip-manager: version 1.0 (75022e9)

Fixes

  • PITR (pgbackrest): fix ERROR unable to set ownership for patroni.dynamic.json (f81b200)
  • Set owner to patroni conf directory (17f947a)
  • fix task "Enable Software Collections (SCL) repository for RedHat 7" (769dc8a)
  • fix "Failed to validate GPG signature" (d684b22)
  • fix error "non-zero return code rc: 3" for task "check PostgreSQL is started" (1701264)
  • vip-manager.service: add "After=network-online.target" (6cee7e5)
  • patroni.service: fix "Not an absolute path, ignoring: ~" (280ecf0)

Other

  • pgbackrest: disable pgbackrest bootstrap script (not used) (2656603)
  • wal-g: disable wal_g bootstrap script (use no_params option) (af8d115)
  • rename variable install_pgbouncer to pgbouncer_install (618d222)
  • add example port to firewall_allowed_tcp_ports (c386e43)
  • move role vip-manager-disable to vip-manager/disable (a9e27e6)

Tests