Trusted Postgres Architect 23.36.0 release notes v23

Released: 19 February 2025

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

Highlights

  • Support for Ubuntu 24.04 and SLES 15 SP6
  • Version specifiers for all cluster components
  • Better support for EDB Failover Manager (EFM) 5

Enhancements

DescriptionAddresses
Added support for package version specifiers for all cluster components

The following software packages now accept an --xxx-package-version option to the tpaexec configure command, which populates xxx_package_version in the generated config.yml - barman - pgbouncer - beacon-agent - etcd - patroni - pem-server - pem-agent - pg_backup_api - pgd_proxy - pgdcli - repmgr.

Added support for Ubuntu Noble 24.04

TPA runs on Ubuntu 24.04 and supports this OS as a target host. EDB packages for Ubuntu 24.04 will be generally available at the end of March 2025. Before that, deployments needing EDB packages will likely fail.

Added support for EFM 5 "auto resume" properties

Starting with EFM 5.0, the auto.resume.period property has been broken into two properties, one for the startup case and one for the db failure case. This change adds the correct properties based on the efm_version being used.

Added support for EFM 5 'backup.wal' property.

Starting with EFM 5.0, a new property 'backup.wal' has been added. This change adds the new property if the version of EFM is 5 or higher.

Added support for SLES 15 SP6

When SLES is requested at configure-time, TPA will now install SLES 15 SP6. The Docker and EC2 images are now SP6, and the systemd-sysvcompat package is installed on SLES, so that local boot-time scripts continue to work.

Changes

DescriptionAddresses
Use the latest Barman from PGDG on RHEL-like systems

TPA previously defaulted to Barman 3.9 when installing from PGDG on a RHEL-like system, as a workaround for broken packages. More recent barman packages are OK, so we now let yum install the latest packages.

Set up EDB repositories via setup script for RedHat and Debian

This change simplifies EDB repository setup on TPA nodes into a single task for dnf, yum and apt package managers. This should reduce the occurrence of unexpected HTTP errors when adding EDB repositories to target hosts.

Fixed documentation for efm_conf_settings

Previously, documentation stated "You can use efm_conf_settings to set any parameters, whether recognized by TPA or not. Where needed, you need to quote the value exactly as it would appear in efm.properties" However, the efm.properties.j2 template uses the values from efm_conf_settings as an Ansible dictionary, so the entries must be written in key: value form. yaml cluster_vars: efm_conf_settings: notification.level: WARNING ping.server.ip: <well known address in the network>

Bump Python dependency to version 3.12

TPA now requires Python 3.12. When installing TPA from EDB Repos 2.0, an appropriate Python interpreter will be installed automatically.

Wait for protocol version update during PGD upgrade

During upgrade from PGD3 to PGD5, the protocol version update may take some time. The PGD 5 specific config changes will fail if they are attempted before the protocol version change. We have added a wait to avoid such failures.

Update <clustername>.nodes when new nodes are added to an existing EFM cluster

In previous versions of TPA, when a new EFM node was added to config.yml, it was not listed in the Allowed node host list on the existing EFM nodes in the cluster. The task which executes efm upgrade-conf and propagates the changes from /raw/<clustername>.properties and /raw/<clustername>.nodes is now run when EITHER of these files are changed. This results in the new EFM node being written to the <clustername>.nodes file and efm cluster-status including it in the Allowed node host list.

Include PGPORT in the postgres user's .bashrc file

The PGPORT environment variable will now be exported as part of the postgres user's .bashrc file. It defaults to the port value used by the selected postgres_flavour, or postgres_port if specified in the config file.

Bug Fixes

DescriptionAddresses
Fixed an issue whereby databases were created with the default parameters rather than as configured

In previous versions of TPA, in order to suppress the CREATE EXTENSION statement for extensions that do not require it (aka 'modules'), the entire postgres_databases hash was modified. This introduced a bug, since a new hash was created that ONLY contained the database name and list of extensions, ignoring all other configuration settings for the database (owner, template, encoding etc). This resulted in databases being created with the default parameters rather than as configured. To fix this, the modules are removed from the list of extensions and the resulting list is passed to the task which runs CREATE EXTENSION.

44539
Fixed an issue with shared_preload_libraries on Patroni clusters

Entries in shared_preload libraries are now treated correctly by Patroni. This fixes a bug whereby adding the pglogical extension to a Patroni cluster via config.yml would fail.

Fixed a bug whereby deploys would fail for distributions which have no additional repository setup commands for extensions

In previous versions of TPA, when postgis was added to extra_postgres_extensions or the extensions list of a database in postgres_databases, deploys would fail for Debian, SLES and Ubuntu because their list of repository_setup_commands was empty (only RHEL has an additional command to runcrb enable). This empty list was passed to the command module, which would fail with no command given, resulting in deployment failure. The Automatically run additional repository setup commands for recognized extensions task is now skipped if the distribution has no additional commands to run.

Fixed an issue whereby TPA attempted to create replication slots even when `repmgr_use_slot` was set to 041776
Set bdr_client_dsn_attributes as the default for pgd_proxy_dsn_attributes and pgd_cli_dsn_attributes

Because pgd-proxy and pgd-cli are written in Go and use a Go driver, they do not support the full set of parameter keywords supported by libpq. In the case a cluster has installed pgd-proxy and/or pgd-cli and has configured bdr_client_dsn_attributes with parameters that the Go driver does not support, two new configuration variables must be included: pgd_proxy_dsn_attributes and pgd_cli_dsn_attributes, containing only additional DSN parameters that the Go driver supports. Conversely, if pgd-proxy and pgd-cli are installed and bdr_client_dsn_attributes does not include any Go-incompatible parameters, the connection strings for these tools will be configured with the attributes in bdr_client_dsn_attributes. This amends unexpected behavior where the pgd_proxy_dsn_attributes and pgd_cli_dsn_attributes were defaulting to empty strings when not defined, even though the user was expecting the parameters in bdr_client_dsn_attributes to be used.

44819
Use standard form of home directory for etcd

When creating the etcd user, TPA now refers to its home directory without a trailing slash, matching the usage of other tools like 'useradd'.

Fixed an issue whereby the cluster_ssh_port setting was not respected by Barman

The Barman configuration is now able to use custom ssh port set via the cluster_ssh_port in config.yml, which defaults to 22 if it is not set. The -p/--port flags are now included in the ssh command in barman.d.conf and barman-wal-restore/`barman-wal-archive' commands respectively.