Skip to content

Release 1.8.0

Compare
Choose a tag to compare
@vitabaks vitabaks released this 19 Aug 22:18
· 114 commits to master since this release
7ec51a3

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

  • 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

Full Changelog: 1.7.0...1.8.0

Consider sponsoring the project via GitHub or Patreon