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
- to deploy a PostgreSQL HA Cluster with the TimescaleDB extension, you just need to specify only one variable
- Added restart option in config_pgcluster.yml (by @artemsafiyulin in #354)
- Added pgbouncer authentication via
auth_user
andauth_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
andeffective_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:
- Integrate code improvements and add linters by @ThomasSanson in #307 #315 #368 #370 #373 #371 #377 #417
- Add the Fully Qualified Collection Name (FQCN) to each Ansible task by @pa-decarvalho in #412
- Improve jinja spacing by @pa-decarvalho in #413
- Update etcd to version 3.5.9 (2d96cf6)
- Update Consul to version 1.14.7 (ca5a5fe)
- Debian 12 (Bookworm) support (#382)
Dev and Tests
- Add a CONTRIBUTING.md file and Makefile to guide new contributors by @ThomasSanson in #305 #378
- molecule: set ubuntu2204 by default (9e34a3e)
- Add .gitpod.yml and gitpod Dockerfile (#256, f7b10df)
- Fixing MTU issues in Docker (925ba79)
- molecule: return the value "swap_file_create: false" (4f1bbc8)
- molecule: reduce the number of docker containers to save resources during tests (cb9eec8)
- Use makefile for molecule tests in CI/CD (#309)
- Freeze Python Dependencies Versions for Better Stability and Reproducibility by @ThomasSanson in #344
- Fix tput: No value for $TERM and no -T specified error in GitHub Actions pipeline by @ThomasSanson in #345
- Implement DRY principle with a shared config.yml file for Molecule scenarios by @ThomasSanson in #348
- Add shell flags to the Makefile for better error handling and safer scripting by @ThomasSanson in #349
- Implement DRY principle for Python version management in the project by @ThomasSanson in #350
- Add .venv/ to .dockerignore for Docker build efficiency by @ThomasSanson in #351
- Refactor Makefile to include all makefiles in subdirectories by @ThomasSanson in #355
- Resolves Multiple Issues and Enhances Docker Setup by @ThomasSanson in #352
- Refactor Project Structure and Makefile Targets by @ThomasSanson in #357
- Add a GitHub Action for Docker (make docker-build) by @ThomasSanson in #365
- Add tests for Ansible Verifier by @ThomasSanson in #367
- Cleanup of ansible-lint.yml file by @ThomasSanson in #376
- Molecule: Add role "timezone" to tests (f7db5dc)
- Remove Molecule tests for CentOS 8 (EOL) (#404)
- Dockerfile Optimization with Multi-Stage Builds by @AurelienToitot in #387
New Contributors
- @tanganellilore made their first contribution in #250
- @mrsrvman made their first contribution in #264
- @wolacinio made their first contribution in #282
- @FactorT made their first contribution in #285
- @mbobrovskyi made their first contribution in #296
- @bazzzsh made their first contribution in #300
- @ThomasSanson made their first contribution in #305
- @chuegel made their first contribution in #401
- @AurelienToitot made their first contribution in #387
- @pa-decarvalho made their first contribution in #412
- @sgremyachikh made their first contribution in #439
Full Changelog: 1.7.0...1.8.0