Trusted Postgres Architect 23.37.0 release notes v23

Released: 24 March 2025

New features, enhancements, bug fixes, and other changes in Trusted Postgres Architect 23.37.0 include the following:

Highlights

  • The upgrade command now supports minor-version upgrades of Postgres in Patroni and EFM clusters
  • Upgrades in repmgr clusters have also been improved

Enhancements

DescriptionAddresses
Minor-version Postgres upgrades for M1 + Patroni clusters

TPA can now upgrade Postgres to the latest minor version on an M1 cluster which uses Patroni as the failover manager. The upgrade process stops Barman on any Barman server in the cluster, then upgrades the replicas in the cluster. Then it switches to one replica as a temporary primary, upgrades Postgres on the original primary, and switches back to the original primary. Patroni's handling of the cluster is paused during the process and resumed afterwards. Then Barman is restarted and cluster health checks are run.

102662
Improved minor-version Postgres upgrade for M1 + repmgr clusters

Witness nodes were previously omitted from upgrade, they are now upgraded along with replicas. Postgres service restart is now more reliable and always run right after the package upgrade on the node is finished.

Minor-version Postgres upgrades for M1 + EFM clusters

TPA can now upgrade Postgres to the latest minor version on an M1 cluster which uses EFM as the failover manager. The upgrade process stops Barman on any Barman server in the cluster, then upgrades the replicas in the clusters. Then it switches to one replica as a temporary primary, upgrades Postgres on the original primary, and switches back to the original primary. The EFM agent is started and stopped on the different servers at the correct times. Then Barman is restarted and cluster health checks are run.

103595
Separated changed from unchanged tasks in output

In TPA's default output plugin, tasks which return "ok" but with no changes are now separated from ones that have reported changes, which are now highlighted in yellow.

Improved the speed of Docker instance deprovisioning

When deprovisioning docker instances, TPA now kills the container instead of stopping it, and does so to all the instances in parallel.

Added check.num.sync.period property for EFM 5.x

Starting with EFM 5.0, there is a new property check.num.sync.period that defines how often a primary agent will check to see if num_sync needs to change on the primary database. This can now be specified in config.yml.

Changes

DescriptionAddresses
TPA will now copy EFM config files if they are removed, even if no configuration changes

If either the efm.nodes or efm.properties configuration files do not exist in the top-level EFM directory, the efm upgrade-conf command copies them from the /raw directory, even if there have been no configuration changes. This amends previous behavior that required a configuration change before the upgrade-conf command would run and copy files.

TPA will now verify that the URI for EDB repository setup is accessible

The EDB repos are set up using the setup script following the EDB Repos 2.0 documentation: piping the cURL output to bash for execution. However, if a user passes a nonexistent EDB_SUBSCRIPTION_TOKEN or repository to cURL, the exit code gets silently swallowed and replaced with a 0 because bash executes an empty input. In this version, a request is dispatched to a repository's GPG key endpoint to ensure a 404 response is not returned before continuing to download the setup script. Additionally, tasks related to EDB repository set up are now skipped if the repository has already been set up.'

TPA will now raise an ArchitectureError when BDR-Always-ON is configured with BDR version 5

An architecture error is now raised during tpaexec configure if --bdr-version 5 is passed with -a BDR-Always-ON alerting the user that BDR version 5 should be used with PGD-Always-ON.

Bug Fixes

DescriptionAddresses
Fixed shared_preload_libraries computation during deploy

Fixed a limitation of Ansible's handling of list ordering that would trigger unneeded and uncontrolled rewriting of the shared_preload_libraries and subsequently require a Postgres service restart, even on second deployment scenarios with no changes to the configuration.

Fixed an issue whereby unnecessary replication slots were created when configuring Patroni

When setting up a Patroni cluster, a replication slot was created for each etcd-only node. This caused problems because the unused slots cause the WAL to accumulate. Slots are now only created for the DB servers.

Fixed patronictl switchover command usage

TPA will now correctly use --leader instead of the deprecated --master parameter when using patronictl switchover command.

Fixed an issue with counting instances in BDR-Always-ON clusters containing PEM

Fixed a bug whereby in certain circumstances, TPA would incorrectly calculate the number of instances in a BDR-Always-ON cluster with a PEM server, causing "tpaexec configure" to fail with "StopIteration".

Fixed an issue whereby a PEM server could be incorrectly picked as a cluster primary in EFM cluster.

If a cluster is created with a pem-server, that backend is not monitored by EFM, hence, that node shouldn't be included when discovering a Postgres primary for the entire cluster. This behavior is now correctly implemented by TPA.

45279
Fixed duplicated lines in .pgpass files

Fixed a bug whereby extra lines could be added to .pgpass for the same user when re-running 'tpaexec deploy'.