Releases: vitabaks/autobase
Release 2.4.1
This release contains bug fixes since the 2.4.0 release. We recommend that you upgrade at the next available opportunity.
Several fixes were applied to ensure smoother operation in setups without TLS enabled and when accessing the Patroni API via plain HTTP.
What's Changed
- fix: Add SSL check for Patroni REST API in HAProxy config by @vitabaks in #1277
- Don't change permissions for the log directory when not needed by @bkhomuts in #1281
- fix: Restrict pg_hba task to postgres_cluster group in add_node.yml by @vitabaks in #1283
- fix: Force reload postgres after update pg_hba.conf by @cherts in #1287
- fix: Make sure PostgreSQL unix socket, log and home directory exists by @cherts in #1288
- fix: Set Patroni TLS vars only when HTTPS is enabled by @vitabaks in #1286
- internal: Build and push docker images after release by @vitabaks in #1289
Migration Notes
Please note the migration notes from release 2.4.0:
- PostgreSQL 18 is now used by default. For backward compatibility, explicitly set your current version in the
postgresql_versionvariable. - Patroni REST API now uses HTTPS with a self-signed certificate. If your external tools rely on it, you may need to disable certificate verification or set
patroni_restapi_protocol=httpfor backward compatibility. Alternatively, you can reconfigure the cluster using the deploy_pgcluster playbook with the postgresql_exists=true variable to apply the latest Autobase version. Note: This will restart the PostgreSQL service, so plan a short maintenance window. - Playbook add_pgnode.yml has been renamed to add_node.yml, because it now provides scaling capabilities not only for Postgres, but also for etcd clusters.
Full Changelog: 2.4.0...2.4.1
Release 2.4.0
🚀 Autobase 2.4 — full automation of cluster scaling
This release brings full automation for cluster scaling. While Autobase has long supported adding new PostgreSQL replicas, until now scaling the DCS (etcd or Consul) had to be done manually — Autobase now takes care of that for you!
✨ Highlights
New ansible playbooks for auto scaling
add_node- Add a new node to an existing cluster. (#1203)remove_node- Remove a node from an existing cluster. (#1207)
In Your Own Machines mode, simply describe the new server in your inventory and add the variable new_node=true for that node. See examples here. With supported cloud providers (AWS, GCP, Azure, DigitalOcean, Hetzner Cloud), it’s even easier: just change the server_count value (e.g., from 3 to 5), and Autobase will automatically create the required VMs in your cloud and add them to the cluster. See examples here.
This means you can now start with just one node and seamlessly scale your cluster as needed — fast, transparent, and fully automated.
Console (UI): Updated to Node 22, React 19, MUI 7
While there are no visible UI changes in this release, the update ensures long-term stability, performance, and compatibility with the latest ecosystem. The console has been migrated to modern frameworks (Node.js 22, React 19, Material UI 7).
HTTPS for Patroni REST API
In previous releases, TLS was enabled for all cluster components using self-signed certificates. With this release, HTTPS support has also been extended to the Patroni REST API, ensuring secure and encrypted communication across the entire cluster stack.
RHEL 10 and Debian 13 support
Added compatibility with the latest enterprise Linux distributions - RHEL/Rocky/AlmaLinux 10 and Debian 13.
PostgreSQL 18 support
Autobase is now compatible with PostgreSQL 18, so you can take advantage of the newest features and improvements right away.
As always, this release doesn’t just introduce new features — it also includes a wide range of improvements and fixes aimed at making Autobase an even more reliable solution for your database infrastructure.
For the full list of changes, please check the “What’s Changed” section 👇
What's Changed
- Console (API): fix connection info string parsing by @vitabaks in #1165
- fix etcd dir ownership by @MParvin in #1171
- fix:
check_modeimprovements forpgbackrestrole by @pat-s in #1174 - fix: run
stanza_createtasks inconfigplaybook by @pat-s in #1177 - pg_upgrade: Fix host alias usage by switching to bind_address by @vitabaks in #1180
- Add support for RHEL 10-based distributions by @vitabaks in #1181
- Console: update npm dependencies - node 22, react 19, MUI 7, MRT 3 by @renovate[bot] in #1187
- Add PostgreSQL minor version support for RedHat-based distributions by @vitabaks in #1188
- Add Debian 13 support by @vitabaks in #1191
- Add support for host-level PostgreSQL parameters by @vitabaks in #1192
- remove_cluster: Improve the pgBackRest stanza delete logic by @vitabaks in #1196
- fix: make
update_pgclusterplaybook work in Ansiblecheck_modeby @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
- fix: various fixes for
add_pgnodeplaybook 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
- Added containers startup dependencies to start console via docker compose by @cherts in #1214
- Starting console-UI without SSL by @cherts in #1215
- [Feat] Add support for enabling pgdg extras repository by @Copilot in #1211
- Switch to password-based PostgreSQL authentication in role tasks by @Copilot in #1209
- Allow adjusting logging parameters, even when patroni_log_destination is not logfile by @bkhomuts in #1223
- Allow customizing connect address and patroni postgresql authentication options by @bkhomuts in #1230
- Always separate pg_hba.conf parameters with space by @bkhomuts in #1233
- Introduce patroni_use_unix_socket and patroni_use_unix_socket_repl by @bkhomuts in #1236
- feat: automatically add new nodes to
etcdcluster by @pat-s in #1203 - Refactor: move HAProxy node addition to add_node.yml by @vitabaks in #1239
- feat: add the ability to regenerate
patroniTLS certs in config playbook by @pat-s in #1235 - Don't reconfigure PGDG repository for pgBackRest when repo has been already configured by add_repo by @bkhomuts in #1252
- Fix pgbouncer pause command in upgrade role by @vitabaks in #1253
- feat: add
remove_nodeplaybook by @pat-s in #1207 - Automate release version changes when creating a tag by @Copilot in #1245
- Allow enabling https for Patroni REST API by @bkhomuts in #1237
- Update default locale to en_US.UTF-8 by @bkhomuts in #1263
- formatting: Update connection string for target_session_attrs by @vitabaks in #1264
- config_pgcluster: Define bind_address on dedicated etcd nodes by @vitabaks in #1265
- fix: prevent always regenerating TLS certificates in config_pgcluster by @vitabaks in #1266
- fix: ignore 'Could not find the requested service' for initial deployment by @vitabaks in #1268
- Add cluster scaling support for cloud providers by @vitabaks in #1267
- Add support for PostgreSQL 18 by @vitabaks in #1274
Dependencies
- build(deps): bump form-data from 4.0.0 to 4.0.4 in /console/ui by @dependabot[bot] in #1163
- fix(deps): update npm dependencies by @renovate[bot] in #1172
- chore(deps): update dependency boto3 to v1.39.15 by @renovate[bot] in #1179
- chore(deps): ansible 11.8.0 (support for ansible-core ≥2.17) by @renovate[bot] in #1173
- 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
- fix(deps): update module github.com/docker/go-connections to v0.6.0 by @renovate[bot] in #1194
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in #1206
- chore(deps): update npm dependencies by @renovate[bot] in #1221
- fix(deps): update module github.com/go-openapi/errors to v0.22.2 by @renovate[bot] in #1220
- fix(deps): update module github.com/docker/docker to v28 [security] by @renovate[bot] in #1225
- chore(deps): update golang docker tag to v1.25 by @renovate[bot] in #1226
- chore(deps): update python dependencies by @renovate[bot] in #1240
- chore(deps): update dependency molecule-plugins to v25 by @renovate[bot] in #1241
- fix(deps): update go dependencies by @renovate[bot] in #1243
- fix(deps): update npm dependencies by @renovate[bot] in #1242
- chore(deps): update dependency vite to v7.1.5 [security] by @renovate[bot] in #1249
- fix(deps): update module github.com/jackc/pgx/v5 to v5.7.6 by @renovate[bot] in #1246
- fix(deps): update npm dependencies by @renovate[bot] in https://github.com/vitabaks/a...
Release 2.3.2
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_pgclusterplaybook work in Ansiblecheck_modeby @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_pgnodeplaybook 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
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_modeimprovements forpgbackrestrole by @pat-s in #1174 - fix: run
stanza_createtasks inconfigplaybook 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
We’re thrilled to announce Autobase 2.3.0 — a new 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!
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.
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.
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.
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.0And invoke the playbook in just one line:
- name: Run Autobase playbook
ansible.builtin.import_playbook: vitabaks.autobase.deploy_pgclusterMore 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_pgclustercheck_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_mapto pgbackrest role by @pat-s in #1151 - fix: loop over
postgres_clustergroup instead ofallinpgbackrestrole 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:
Release 2.2.0
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.
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
- @klention made their first contribution in #849
- @chobostar made their first contribution in #867
- @sbusso made their first contribution in #893
- @elijahfhopp made their first contribution in #905
- @pat-s made their first contribution in #907
- @ChuckHend made their first contribution in #924
Full Changelog: 2.1.0...2.2.0
Release 2.1.0 (Autobase)
🚀 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.
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 vCPUinstance types;EUR->USDby @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
- @ruslanloman made their first contribution in #777
- @allig4t0r made their first contribution in #828
- @nelsonic made their first contribution in #835
Full Changelog: 2.0.0...2.1.0
Release 2.0 (Clouds and UI)
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.
With this release, postgresql_cluster will automatically configure the following:
- A virtual machine (with a dedicated data disk), with all cluster components installed and configured.
- A cloud load balancer to serve as the entry point for database connections.
- 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/fstaband 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 themount.fstypevariable.
- Configure mount points in
- Automatically generate passwords (if not defined) for:
patroni_superuser_password,patroni_replication_password,patroni_restapi_password,pgbouncer_auth_password. - install
perf,FlameGraphand postgres dbgsym/debuginfo packages- variable
install_perf, default 'false'
- variable
- 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>=truevariable. - List of extensions: timescaledb, citus, pg_repack, pg_cron, pgaudit, pgvector, postgis, pgrouting, pg_stat_kcache, pg_wait_sampling, pg_partman
- 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
- 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.
- Variables:
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
- @tk-nguyen made their first contribution in #730
- @Rainbrand (UI)
- @ngurban (API)
Full Changelog: 1.11.0...2.0.0
Release 1.11.0
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
- Set variable "ansible_python_interpreter" if not defined by @vitabaks in #635
- Add retry for pgbouncer restart handler by @FabianHardt in #638
- Replacing restart pgbouncer with reload pgbouncer by @SDV109 in #673
- Update vip-manager to v2.6.0 by @vitabaks in #639 #688 #708
- Update WAL-G to v3.0.2 by @vitabaks in #693
- Update Patroni to v3.3.2 by @vitabaks in #694
- Update etcd to v3.5.15 by @vitabaks in #709
- Remove CentOS Stream 8 support (EOL) by @vitabaks in #674
Tests
New Contributors
- @FabianHardt made their first contribution in #633
- @rcknr made their first contribution in #647
- @garry-t made their first contribution in #658
- @abyss-ms made their first contribution in #684
Full Changelog: 1.10.0...1.11.0
Release 1.10.0
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.
- Added capabilities for dynamic configuration of Patroni REST API endpoints with custom tags like
Enhancements
- Adds variables to enable client tls on pgbouncer by @n-borges in #585
update_pgcluster.ymlimprovementspg_upgrade.ymlimprovements- 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
- optional, variable:
- 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)
- Variable:
- Add
patroni_restapi_listen_addrandpostgresql_listen_addrvariables by @vitabaks in #598
Fixes
update_pgcluster.ymlpg_upgrade.yml
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
New Contributors
- @weisscorp made their first contribution in #573
- @n-borges made their first contribution in #585
Full Changelog: 1.9.0...1.10.0


