🚀 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_mode
improvements forpgbackrest
role by @pat-s in #1174 - fix: run
stanza_create
tasks inconfig
playbook 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_pgcluster
playbook work in Ansiblecheck_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
- 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
- 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
etcd
cluster by @pat-s in #1203 - Refactor: move HAProxy node addition to add_node.yml by @vitabaks in #1239
- feat: add the ability to regenerate
patroni
TLS 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_node
playbook 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 #1269
- chore(deps): update python dependencies by @renovate[bot] in #1270
Migration Notes
- 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.
- By default, 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=http
for backward compatibility.
New Contributors
- @MParvin made their first contribution in #1171
- @CHERTS made their first contribution in #1214
- @bkhomuts made their first contribution in #1223
Full Changelog: 2.3.0...2.4.0