v1.16.0
Release date: Jul 20, 2022 (minor release)
Features:
- Offline data import and major upgrades for PostgreSQL: introduce the
bootstrap.initdb.import
section to provide a way to import objects via the network from an existing PostgreSQL instance (even outside Kubernetes) inside a brand new EDB Postgres for Kubernetes cluster using the PostgreSQL logical backup concept (pg_dump
/pg_restore
). The same method can be used to perform major PostgreSQL upgrades on a new cluster. The feature introduces two types of import:microservice
(import one database only in the new cluster) andmonolith
(import the selected databases and roles from the existing instance). - Anti-affinity rules for synchronous replication based on labels: make sure that synchronous replicas are running on nodes with different characteristics than the node where the primary is running, for example, availability zone
Enhancements:
- Improve fencing by removing the existing limitation that disables failover when one or more instances are fenced
- Enhance the automated extension management framework by checking whether an extension exists in the catalog instead of running
DROP EXTENSION IF EXISTS
unnecessarily - Improve logging of the instance manager during switchover and failover
- Enable redefining the name of the database of the application, its owner, and the related secret when recovering from an object store or cloning an instance via
pg_basebackup
(this was only possible in theinitdb
bootstrap so far) - Backup and recovery:
- Require Barman >= 3.0.0 for future support of PostgreSQL 15
- Enable Azure AD Workload Identity for Barman Cloud backups through the
inheritFromAzureAD
option - Introduce
barmanObjectStore.s3Credentials.region
to define the region in AWS (AWS_DEFAULT_REGION
) for both backup and recovery object stores
- Support for Kubernetes 1.24
Changes:
- Set the default operand image to PostgreSQL 14.4
- Use conditions from the Kubernetes API instead of relying on our own implementation for backup and WAL archiving
Fixes:
- Fix the initialization order inside the
WithActiveInstance
function that starts the CSV log pipe for the PostgreSQL server, ensuring proper logging in the cluster initialization phase - this is especially useful in bootstrap operations like recovery from a backup are failing (before this patch, such logs were not sent to the standard output channel and were permanently lost) - Avoid an unnecessary switchover when a hot standby sensitive parameter is decreased, and the primary has already restarted
- Properly quote role names in
ALTER ROLE
statements - Backup and recovery:
- Fix the algorithm detecting the closest Barman backup for PITR, which was comparing the requested recovery timestamp with the backup start instead of the end
- Fix Point in Time Recovery based on a transaction ID, a named restore point, or the “immediate” target by providing a new field called
backupID
in therecoveryTarget
section - Fix encryption parameters invoking
barman-cloud-wal-archive
andbarman-cloud-backup
commands - Stop ignoring
barmanObjectStore.serverName
option when recovering from a backup object store using a server name that doesn’t match the current cluster name
cnp
plug-in:- Make sure that the plug-in complies with the
-n
parameter when specified by the user - Fix the
status
command to sort results and remove variability in the output
- Make sure that the plug-in complies with the