🚀 Autobase 2.6 — Blue/Green Deployment
Major PostgreSQL upgrades no longer have to mean downtime, long maintenance windows, or risky in-place migrations.
Autobase 2.6 introduces a blue-green deployment workflow that allows you to prepare a fully upgraded cluster in advance and switch traffic with near-zero downtime.
Instead of upgrading your production cluster directly, you can:
- deploy a clone of the cluster (Patroni standby cluster),
- synchronize data using physical replication,
- automatically upgrade PostgreSQL on the target cluster,
- convert it into a logical replica,
- and continue receiving live changes from production until switchover.
When ready — switch traffic in seconds with near-zero downtime!
If needed, rollback is just as fast and without data loss due to reverse logical replication.
New playbooks
pg_logical_upgrade— Upgrades the target cluster and converts a physical replica into a logical replica.pg_logical_switchover— Redirects PostgreSQL traffic from the source cluster to the target cluster with near-zero downtime.pg_logical_switchover_rollback— Switches PostgreSQL traffic back to the source cluster.pg_logical_replication_stop— Cleans up publications, subscriptions, and replication slots.
For more details, see the upgrade role README.
What's Changed
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #1356
- fix: remove export from
/etc/environmententries by @pat-s in #1361 - Add dynamic PostgreSQL archive_command variable by @vitabaks in #1362
- Correct listen and connect_address for add_node by @bkhomuts in #1364
- fix(cloud): encode string secrets without extra quotes by @Rainbrand in #1366
- fix: postgres CRON jobs for pgbackrest on AlmaLinux by @pat-s in #1360
- chore(deps): update python dependencies by @renovate[bot] in #1367
- chore(deps): update npm dependencies by @renovate[bot] in #1349
- Set etcd_tls_enable only for etcd clusters managed by Autobase by @vitabaks in #1370
- Improve Consul version lookup by @vitabaks in #1371
- Add error ignore option to chronyd restart handler by @vitabaks in #1372
- fix(patroni): use
systemdprivilege escalation instead of sudo forwatchdogsetup by @pat-s in #1373 - Add confd_install, confd_version variables by @vitabaks in #1379
- fix: fixed missing etcd_cluster field for simple mode by @Rainbrand in #1381
- Add handler to restart confd after TLS copy by @vitabaks in #1380
- chore(deps): update npm dependencies by @renovate[bot] in #1388
- fix(deps): update go dependencies by @renovate[bot] in #1389
- Run pgBackRest cron jobs only on primary to avoid lock contention by @vitabaks in #1393
- Support pg_upgrade with wal_level: logical by @bkhomuts in #1394
- Add pgBackRest bootstrap configuration directly to patroni.yml by @bkhomuts in #1384
- Support upgrade_pgcluster with custom install user by @bkhomuts in #1395
- chore(deps): update docker dependencies to v2.5.2 by @renovate[bot] in #1397
- Update: Makefile variables from recursive (=) to simple (:=) assignment. by @cod3mas0n in #1399
- Fix RedHat 9 deployment failure due to missing crb repository by @Copilot in #1401
- fix: pass down Consul host for Patroni by @khawarizmus in #1407
- fix(deps): update module github.com/go-openapi/errors to v0.22.6 by @renovate[bot] in #1409
- chore(deps): update npm dependencies by @renovate[bot] in #1410
- Console: Add bind_address variable to inventory by @vitabaks in #1411
- Set default values for pgbackrest repo1-path and repo1-type by @vitabaks in #1414
- Set --auth-local for the default pg_hba.conf at bootstrap by @bkhomuts in #1419
- Update data-checksums logic for PostgreSQL 18 by @bkhomuts in #1421
- chore(deps): update npm dependencies by @renovate[bot] in #1424
- chore(deps): update python dependencies by @renovate[bot] in #1425
- Require authentication for local replication connections by @bkhomuts in #1423
- Fix: Do not add the nofailover tag if failover_priority is set by @vitabaks in #1427
- chore(deps): update dependency lodash to v4.17.23 [security] by @renovate[bot] in #1436
- chore(deps): update npm dependencies by @renovate[bot] in #1438
- fix(deps): update module github.com/jackc/pgx/v5 to v5.8.0 by @renovate[bot] in #1439
- Allow installing etcd from system repositories by @bkhomuts in #1434
- Disable unattended-upgrades on Ubuntu to prevent automatic Patroni restarts by @Copilot in #1441
- chore(deps): update python dependencies by @renovate[bot] in #1442
- Fix patroni_slots placement: move from postgresql.slots to top-level slots by @Copilot in #1445
- Fix switchover failure when synchronous_mode enabled during updates by @Copilot in #1446
- chore(deps): update npm dependencies by @renovate[bot] in #1447
- chore(deps): update golang docker tag to v1.26 by @renovate[bot] in #1450
- chore(deps): update dependency swiper to v12.1.2 [security] by @renovate[bot] in #1458
- chore(deps): update npm dependencies by @renovate[bot] in #1460
- Preserve per-node patroni_tags in start_traffic.yml during updates by @jimnyzuk in #1459
- Allow disabling the softdog by @bkhomuts in #1465
- Bump rollup from 4.55.1 to 4.59.0 in /console/ui by @dependabot[bot] in #1466
- Zero-downtime major upgrades (blue-green deployment) by @vitabaks in #1430
- Bump etcd version to 3.5.27 by @vitabaks in #1467
- Update AWS Ubuntu 24.04 LTS AMIs by @vitabaks in #1468
New Contributors
- @cod3mas0n made their first contribution in #1399
- @khawarizmus made their first contribution in #1407
- @jimnyzuk made their first contribution in #1459
Full Changelog: 2.5.0...2.6.0