Release notes for CloudNativePG 1.16¶
History of user-visible changes in the 1.16 minor release of CloudNativePG.
For a complete list of changes, please refer to the commits on the release branch in GitHub.
Version 1.16.1¶
Releasedate: Aug 11, 2022
Enhancements:
Enable the configuration of the
huge_pagesoption for PostgreSQL (#456)Enhance log during promotion and demotion, after a failover or a switchover, by printing the time elapsed between the request of promotion and the actual availability for writes (#371)
Introduce the PostgreSQL cluster’s timeline in the cluster status (#462)
Add the
instanceNameandclusterNamelabels on jobs, pods, and PVCs to improve interaction with these resources (#534)Add instructions on how to create PostGIS clusters (#570)
Security:
Explicitly assign
securityContextto thePoolerdeployment (#485)Add read timeout values to the internal web servers to prevent Slowloris DDoS (#437)
Fixes:
Use the correct delays for restarts (
stopDelay) and for switchover (switchoverDelay), as they were erroneously swapped before. This is an important fix, as it might block indefinitely restarts ifswitchoverDelayis not set and uses the default value of 40000000 seconds (#531)Prevent the metrics collector from causing panic when the query returns an error (#396)
Removing an unsafe debug message that was referencing an unchecked pointer, leading in some cases to segmentation faults regardless of the log level (#491)
Prevent panic when fencing in case the cluster had no annotation (#512)
Avoid updating the CRD if a TLS certificate is not changed (#501)
Handle conflicts while injecting a certificate in the CRD (#547)
Database import: - Use the
postgresuser while runningpg_restorein database import (#411) - Document the requirement to explicitly setsslmodein the monolith import case to control SSL connections with the origin external server (#572) - Fix bug that prevented import from working whendbnamewas specified inconnectionParameters(#569)Backup and recovery: - Correctly pass object store credentials in Google Cloud (#454)
Version 1.16.0¶
Releasedate: Jul 7, 2022 (minor release)
Features:
OfflinedataimportandmajorupgradesforPostgreSQL: introduce the
bootstrap.initdb.importsection to provide a way to import objects via the network from an existing PostgreSQL instance (even outside Kubernetes) inside a brand new CloudNativePG 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 EXISTSunnecessarilyImprove 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 theinitdbbootstrap 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
inheritFromAzureADoption - IntroducebarmanObjectStore.s3Credentials.regionto define the region in AWS (AWS_DEFAULT_REGION) for both backup and recovery object storesSupport 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
WithActiveInstancefunction 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 ROLEstatementsBackup 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
backupIDin therecoveryTargetsection - Fix encryption parameters invokingbarman-cloud-wal-archiveandbarman-cloud-backupcommands - Stop ignoringbarmanObjectStore.serverNameoption when recovering from a backup object store using a server name that doesn’t match the current cluster namecnpgplug-in: - Make sure that the plug-in complies with the-nparameter when specified by the user - Fix thestatuscommand to sort results and remove variability in the output