Skip to content

Releases: vitabaks/autobase

Release 2.3.2

21 Aug 16:42
cd188b1
Compare
Choose a tag to compare

In this release, we’ve simplified launching the Autobase Console (UI) by adding a reverse proxy for the service API in the NGINX frontend configuration. This removes the need to explicitly set the API URL, which had caused difficulties for some users on their first launch.

Other improvements include the ability to set the shared_buffers parameter individually for each host — especially useful in clusters with non-uniform RAM sizes. We’ve also fixed reported bugs and added support for Debian 13.

What's Changed

  • Add Debian 13 support by @vitabaks in #1191
  • Add support for host-level PostgreSQL parameters by @vitabaks in #1192
  • fix(deps): update npm dependencies by @renovate[bot] in #1193
  • fix(deps): update module github.com/docker/go-connections to v0.6.0 by @renovate[bot] in #1194
  • remove_cluster: Improve the pgBackRest stanza delete logic by @vitabaks in #1196
  • fix: make update_pgcluster playbook work in Ansible check_mode by @pat-s in #1198
  • Ensure RemoveIPC is disabled to prevent shared memory segment issues by @vitabaks in #1200
  • Switch API access to relative path and simplify config by @vitabaks in #1201
  • chore(deps): update actions/checkout action to v5 by @renovate[bot] in #1206
  • fix: various fixes for add_pgnode playbook by @pat-s in #1202
  • feat: set shared_buffers option in local_postgresql_parameters by @pat-s in #1204
  • fix: duplicate HAProxy IPs in connection info by @vitabaks in #1208
  • Release 2.3.2 by @vitabaks in #1212

Full Changelog: 2.3.1...2.3.2

Release 2.3.1

06 Aug 07:42
26832fb
Compare
Choose a tag to compare

This release includes several bug fixes, adds support for RedHat-based distributions version 10, and introduces the ability to install specific PostgreSQL minor versions (for RedHat-based distros) via the postgresql_version_minor variable.

What's Changed

  • Console (API): fix connection info string parsing by @vitabaks in #1165
  • build(deps): bump form-data from 4.0.0 to 4.0.4 in /console/ui by @dependabot[bot] in #1163
  • chore: update boto3 update schedule by @pat-s in #1169
  • fix etcd dir ownership by @MParvin in #1171
  • fix(deps): update npm dependencies by @renovate[bot] in #1172
  • fix: check_mode improvements for pgbackrest role by @pat-s in #1174
  • fix: run stanza_create tasks in config playbook by @pat-s in #1177
  • chore(deps): update dependency boto3 to v1.39.15 by @renovate[bot] in #1179
  • pg_upgrade: Fix host alias usage by switching to bind_address by @vitabaks in #1180
  • chore(deps): ansible 11.8.0 (support for ansible-core ≥2.17) by @renovate[bot] in #1173
  • Add support for RHEL 10-based distributions by @vitabaks in #1181
  • chore(deps): update python dependencies by @renovate[bot] in #1185
  • chore(deps): update dependency python to 3.13 by @renovate[bot] in #1183
  • fix(deps): update npm dependencies by @renovate[bot] in #1186
  • Add PostgreSQL minor version support for RedHat-based distributions by @vitabaks in #1188
  • Release 2.3.1 by @vitabaks in #1190

New Contributors

Full Changelog: 2.3.0...2.3.1

Release 2.3.0

19 Jul 19:29
c533701
Compare
Choose a tag to compare

🚀 Autobase 2.3.0 — Our new Powerful release here!

We’re thrilled to announce Autobase 2.3.0 — a new major release that brings new features, essential improvements, and deeper integration capabilities. This release takes Autobase to the next level as a truly enterprise-ready, self-hosted DBaaS for PostgreSQL.

This has been a big effort — and we want to express our sincere thanks to everyone who contributed ideas, code, testing, and feedback. Your support and collaboration are what make Autobase such a strong project. We’re proud of the progress and the growing community behind it.

✨ Highlights

Dark Theme in the Console UI

One of the most requested features is here — a beautiful dark mode for the Autobase Console. A more comfortable and modern experience, especially for those late-night sessions!

image

Import Existing Clusters

You can now import existing clusters into the Autobase UI — for example, those previously deployed via CLI — and instantly gain a visual overview and monitoring of the cluster’s state.

image

Export Clusters to Ansible Inventory

Autobase now supports exporting clusters to an Ansible inventory file directly from the UI. This is perfect for switching to a CI/CD-driven workflow after visual deployment.

image

AWS Network Load Balancer (NLB)

We’ve added support for AWS Network Load Balancer — a high-performance, low-latency option for handling large volumes of traffic efficiently in production environments.

Source

Ansible Collection

We’ve refactored the automation system into a modern Ansible Collection. This makes it easier than ever to integrate Autobase into your own infrastructure projects.

Simply declare the collection:

collections:
  - name: vitabaks.autobase
    version: 2.3.0

And invoke the playbook in just one line:

- name: Run Autobase playbook
  ansible.builtin.import_playbook: vitabaks.autobase.deploy_pgcluster

More information about the autobase ansible collection is available here.

And That’s Not All…

This release includes many additional fixes, performance improvements, and quality-of-life updates, all aimed at making Autobase even more stable, efficient, and user-friendly.

Check out the full changelog in the “What’s Changed” section 👇

What's Changed

  • Collection structure migration by @pat-s in #903
  • Use a more flexible Ansible dependency notation by @pat-s in #950
  • Use file logging for patroni and reduce log level by @pat-s in #955
  • fix: ssh known_hosts parsing for pgbackrest role by @pat-s in #956
  • Exclusion of redefinition of copy_files_to_all_server in GitOps by @SDV109 in #959
  • Configure Renovate by @renovate[bot] in #957
  • Relax Ansible dep requirements in galaxy.yml by @pat-s in #960
  • feat: versionize nested dependencies via renovate by @pat-s in #970
  • feat: modify renovate config by @pat-s in #971
  • Simplify the molecule test workflow by @vitabaks in #977
  • Fix data directory cleanup condition by @vitabaks in #980
  • Add support for dynamic PostgreSQL slot configuration via patroni_slots by @Fissium in #981
  • Add support for target_roles in the postgresql_privs task by @Fissium in #982
  • chore(config): migrate renovate config by @renovate[bot] in #994
  • Add common role as dependency by @vitabaks in #992
  • Extension Auto-Setup: Looking up the latest available package by @vitabaks in #1001
  • Move all playbooks to 'playbooks/' directory (collection structure) by @vitabaks in #998
  • Tune default PostgreSQL parameters by @vitabaks in #1015
  • Fix Patroni package installation error on RHEL 8 by @vitabaks in #1016
  • Update remove_cluster playbook by @vitabaks in #1019
  • Download Patroni requirements.txt from GitHub repository by @vitabaks in #1021
  • update_pgcluster: Fix become_user for pgbackrest host tasks by @vitabaks in #1024
  • Docs: Update to Run Console using Docker Compose by @cloudsbird in #1029
  • Improve Patroni leader switchover logic by @vitabaks in #1027
  • Remove the offline installation method by @vitabaks in #1031
  • PgBackrest: Create a repo directory for the posix type only by @vitabaks in #1038
  • AWS: Add support for Network Load Balancer (NLB) by @vitabaks in #1041
  • add 'share vcpu' label for instance types by @abhishek818 in #1045
  • Avoid using "hosts: all" in the deploy_pgcluster playbook by @vitabaks in #1053
  • Update Console UI icons by @vitabaks in #1054
  • feat: Add dark mode theme switcher by @onyedikachi-david in #1058
  • add support for import of an existing cluster in console by @abhishek818 in #1048
  • Improve handling of PostgreSQL AppStream module (RHEL) by @vitabaks in #1076
  • Prevent ‘item is undefined’ error in pgbackrest tasks by @vitabaks in #1081
  • fix: (log-watcher) lookup cluster info by cluster id instead of operation id by @abhishek818 in #1072
  • Fix: Do not perform on the Standby Cluster by @vitabaks in #1084
  • Add bind_address variable with private IP autodetection by @vitabaks in #1089
  • consul: add hcl config template by @evgeny-bushuev-incountry in #1098
  • chore: adjust renovate grouping and schedule by @pat-s in #1142
  • feat: skip packages installation if already present by @pat-s in #1135
  • fix: config_pgcluster check_mode by @pat-s in #1132
  • docs: update playbook execution example by @pat-s in #1141
  • fix: robustify private interface detection; bind_address role by @pat-s in #1134
  • Add CI workflow to publish Ansible collection by @pat-s in #1140
  • allow option to enable or disable public ip for instance by @pen-pal in #1022
  • remove_cluster: Run stanza-delete on repo-host by @vitabaks in #1121
  • feat: use the chrony ntp service by default by @algoritmsystems in #1128
  • Console (UI): Fix the alignment of the cloud provider icon by @vitabaks in #1147
  • Fix delegate to when fetch TLS certificates from master by @evgeny-bushuev-incountry in #1146
  • Add the ability to create Postgres users without a password by @vitabaks in #1148
  • Check if pgbouncer user exists by @vitabaks in #1149
  • Console (UI/API): Fix sorting on the operations page by @vitabaks in #1150
  • fix: add pgdg_architecture_map to pgbackrest role by @pat-s in #1151
  • fix: loop over postgres_cluster group instead of all in pgbackrest role by @pat-s in #1153
  • Console (DB): Update AWS Ubuntu 24.04 LTS cloud images by @vitabaks in #1156
  • Fix TLS certificate SAN field to use service-specific bind addresses by @Copilot in #1155
  • Release 2.3.0 by @vitabaks in #1160

Dependency updates:

Click here to expand...

  • chore(deps): update dependency vite to v5.4.19 [security] by @renovate[bot] in #961
  • chore(deps): update dependency @types/node to v20.17.40 by @renovate[bot] in #962
  • chore(deps): update dependen...
Read more

Release 2.2.0

23 Mar 14:15
bcd456c
Compare
Choose a tag to compare

This release brings Autobase to version 2.2.0, with a focus on security, compatibility, and improved reliability. This update introduces TLS support across all cluster components, adds compatibility with ARM architecture, and automates backups to Hetzner Object Storage (S3). We’ve also integrated Netdata as the default monitoring system and delivered numerous performance and stability improvements under the hood.

Just open your web browser of choice and navigate to http://NODE:19999 to access excellent system and Postgres metrics charts, including logs and built-in alerts.

2025-03-23_20-30-54

Autobase continues to grow!
Since the 2.0 release, we’ve surpassed 2,300 stars on GitHub and gained the trust of more and more teams using Autobase in production environments.

We’re also seeing a rise in community support through sponsorships — something that truly helps us move faster and build better. ❤️

→ Interested in helping us build this future? Consider becoming a sponsor

What's Changed

  • Enabled TLS encryption for PostgreSQL and PgBouncer by @klention in #849
  • Auto set the number of max_worker_processes and max_parallel_workers by @klention in #853
  • Enabled TLS encrypted communication for etcd by @klention in #857
  • Add support for configuring Patroni REST API request queue size by @chobostar in #867
  • Add patroni_replicatefrom variable for cascading replication by @vitabaks in #883
  • AWS: Fixed an error when specifying a AWS Subnet ID by @vitabaks in #888
  • Set maintenance variable for add_pgnode.yml by @vitabaks in #890
  • Change log file path for pre/post deploy commands to /var/tmp by @vitabaks in #894
  • feat: add Console Stack with Caddy, API, UI, and PostgreSQL by @sbusso in #893
  • Set LimitNOFILE for Patroni systemd service by @vitabaks in #897
  • WAL-G: Point-In-Time Recovery (PITR) Improvements by @vitabaks in #891
  • Automating backups to Hetzner Object Storage (S3 bucket) by @vitabaks in #898
  • Fix task execution by replacing run_once with host condition by @vitabaks in #900
  • Add support for WAL-G prefetch directory creating by @chobostar in #902
  • Install Netdata monitoring by default; update config template by @vitabaks in #904
  • Change HTTP links to HTTPS. by @elijahfhopp in #905
  • fix for "Connection info" task by @artemsafiyulin in #909
  • Add formatters and apply rules; code refactoring by @pat-s in #907
  • Add arm64 support by @pat-s in #906
  • TLS support on dedicated etcd nodes by @vitabaks in #922
  • AWS: update ansible for more description security group rules by @ChuckHend in #924
  • Add TLS Certificate Generation for Consul cluster by @vitabaks in #923
  • Update etcd to version 3.5.20 by @vitabaks in #927
  • Update wal-g to version 3.0.5 by @vitabaks in #928
  • deps: bump dependencies for automation/ui/api by @vitabaks in #929
  • Release 2.2.0 by @vitabaks in #931

New Contributors

Full Changelog: 2.1.0...2.2.0

Release 2.1.0 (Autobase)

16 Dec 16:14
0c8abff
Compare
Choose a tag to compare

🚀 Meet Autobase

We’re excited to present the next evolution of our platform — autobase, the powerful automated database platform for PostgreSQL®, now with a fresh name, a new logo, and bold ambitions.

autobase logo

Why autobase? Autobase stands for automated database platform for PostgreSQL®. Our new logo—a cloud icon with arrows pointing up and down—reflects our core value: enabling you to host data effortlessly in the cloud, on-premises, or migrate between environments. Autobase provides full control over your infrastructure—no limits, no compromises.

🎯 DBA as a Service (DBAaaS): We’ve introduced dedicated support packages. Each package includes a PostgreSQL expert (DBA) dedicated to your database cluster, providing personalized assistance and operational expertise.
→ Learn more about support packages here.

🔭 Looking Ahead: Soon, you’ll be able to manage PostgreSQL clusters through an intuitive user interface, simplifying database operations even further. A few examples of what we’re planning for the upcoming releases can be found here and here. These are just initial steps — in future releases, we aim to cover the entire database management lifecycle through the autobase Console (UI).
→ Interested in helping us build this future? Consider becoming a sponsor.

What's Changed

  • Possibility of adding privileges to objects by @abyss-ms in #740
  • ParadeDB (pg_search, pg_analytics) by @vitabaks in #758
  • config_pgcluster: Create extensions after restarting Postgres by @vitabaks in #761
  • Add pgvectorscale extension by @vitabaks in #762 #796
  • Fix typo in aws_s3_bucket_name variable by @vitabaks in #772
  • Login to Azure using Service Principal by @vitabaks in #773
  • Install WAL-G from the binary file by @vitabaks in #768
  • pg_upgrade.yml: Add ‘string’ filter for postgresql version variables by @ruslanloman in #777
  • GCP: Add support for bare metal instances by @vitabaks in #780
  • pgBackRest: Run "Create stanza" only on master if it's not posix by @vitabaks in #786
  • pgpass: run the task as the root user by @vitabaks in #791
  • pg_upgrade.yml: Use pg_old_dir for old psql binaries before upgrade by @vitabaks in #800
  • pgBackRest: Point-In-Time Recovery (PITR) Improvements by @vitabaks in #765
  • Fix maximum_lag_on_failover case when value set to 0 by @garry-t in #808
  • Updated consul config template and parameters to comply with latest version by @garry-t in #806
  • Fix: Prevent division by zero in HugePages calculation by @vitabaks in #810
  • Ensure retrieval of hugepage size in check mode by @vitabaks in #814
  • pgBackRest: Fix timeline divergence after PITR by @SDV109 in #820
  • [Rebranding] Rename postgresql_cluster to autobase by @vitabaks in #821
  • Add support for PostgreSQL 17 by @vitabaks in #827
  • patroni_replication_username in hba by @allig4t0r in #828
  • pgBackRest: update configuration file include-path option by @SDV109 in #829
  • Add Upgrade Support for Standby Cluster by @vitabaks in #830
  • Upgrade: Add PATH for patronictl; Override become_method in Molecule tests by @vitabaks in #832
  • Hetzner: Add shared vCPU instance types; EUR -> USD by @nelsonic in #835
  • Update vip-manager to v3.0.0; Patroni REST API support by @vitabaks in #840
  • Update etcd to v3.5.17 by @vitabaks in #844
  • Allow pgvectorscale tasks execution in check_mode by @vitabaks in #846
  • Allow WAL-G tasks execution in check_mode by @vitabaks in #847
  • automation: Update requirements by @vitabaks in #845
  • Release 2.1.0 by @vitabaks in #850

New Contributors

Full Changelog: 2.0.0...2.1.0

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:

  • 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