Release notes for CloudNativePG 1.17
History of user-visible changes in the 1.17 minor release of CloudNativePG.
For a complete list of changes, please refer to the commits
on the release branch in GitHub.
Version 1.17.5
Release date: March 20, 2023
Warning
This is expected to be the last release in the 1.17.X series. Users are encouraged to update to a newer minor version soon.
Enhancements:
Extend the
debugcluster’s log level to theinitdbjob (#1503)Support IPv6 and custom
pg_hbafor the PgBouncer pooler (#1395)Document API calls from the instance manager (#1641)
Clarify deployment name via Helm (#1505)
Add the
psqlcommand to thecnpgplugin forkubectl(#1668) allowing the user to start apsqlsession with a pod (the primary by default)
Technical enhancements:
Adopt Renovate for dependency tracking/updating (#1367, #1473)
Fixes:
Prevent panic with error handling in the probes (#1716)
Properly show WAL archiving information with
statuscommand of thecnpgplugin (#1666)
Version 1.17.4
Release date: Feb 14, 2023
Features:
Support for Kubernetes’ projected volumes (#1269)
Support custom environment variables for finer control of the PostgreSQL server process (#1275)
Enhancements:
Introduce the
backupcommand in thecnpgplugin forkubectlto issue a new base backup of the cluster (#1348)Add a database comment on the
streaming_replicauser (#1349)Document the firewall issues with webhooks on GKE (#1364)
Add note about postgresql.conf in
recovery(#1211)Add instructions on installing plugin using packages (#1357)
Specify Postgres versions supported by each minor release (#1355)
Clarify the meaning of PVC group in CloudNativePG (#1344)
Add an example of the DigitalOcean S3-compatible Spaces (#1289)
Technical enhancements:
Added daily end-to-end smoke test for release branches (#1235)
Fixes:
Ensure that the PVC roles are always consistent (#1380)
Permit
walStorageresize when usingpvcTemplate(#1315)Avoid
PodMonitorreconcile if Prometheus is not installed (#1238)Avoid looking for
PodMonitorwhen not needed (#1213)
Version 1.17.3
Release date: Dec 21, 2022
Important announcements:
Recognizing Armando Ruocco (@armru) as a new CloudNativePG maintainer for his consistent and impactful contributions (#1167)
Remove ARMv7 support (#1092)
FINAL patch release for 1.16: 1.16.5. Release 1.16 reaches end of life.
Enhancements:
Improve compatibility with Istio: add support for Istio’s quit endpoint so that jobs with Istio sidecars do not run indefinitely (#967)
Add rpm/deb package for kubectl-cnpg plugin (#1008)
Update default PostgreSQL version for new cluster definitions to 15.1 (#908)
Documentation
Remove references to CNPG sandbox (#1120) - the CNPG sandbox has been deprecated, in favor of instructions on monitoring in the Quickstart documentation
Link to the “Release updates” discussion (#1148) - the release updates discussion will become the default channel for release announcements and discussions
Document emeritus status for maintainers in GOVERNANCE.md (#1033) - explains how maintainers should proceed if they are not ready to continue contributing
Improve instructions on creating pull requests (#1132)
Troubleshooting emergency backup instructions (#1184)
Cover the Kubernetes layer in greater detail in the Architecture documentation (#1432)
Fixes:
Ensure PGDATA permissions on bootstrap are properly set to 750 (#1164)
Ensure the PVC containing WALs is deleted when scaling down the cluster (#1135)
Ensure that we create secrets and services only when not found (#1145)
Respect configured pg-wal when restoring (#1216)
Filter out replicas from nodeToClusters map (#1194)
Technical enhancements:
Use
ciclopsfor test summary (#1064): rely on the ciclops GitHub action to provide summaries of the E2E suite, inheriting improvements from that projectAdd backport pull request workflow (#965) - automatically backport patches to release branches if they are so annotated
Make the operator log level configurable in e2e test suite (#1094)
Enable test execution based on labels (#951)
Update Go version from 1.18 to 1.19 (#1166)
Version 1.17.2
Release date: Nov 10, 2022
Security:
Add
SeccomProfileto Pods and Containers (#888)
Enhancements:
statuscommand for thecnpgplugin:Clarify display for fenced clusters (#886)
Improve display for replica clusters (#871)
Documentation:
Improve monitoring page, providing instructions on how to evaluate the observability capabilities of CloudNativePG on a local system using Prometheus and Grafana (#968)
Add page on design reasons for custom controller (#918)
Set PostgreSQL 15.0 as the new default version (#821)
Fixes:
Import a database with
plpgsqlfunctions (#974)Properly find the closest backup when doing Point-in-time recovery (#949)
Clarify that the
ScheduledBackupformat does not follow KubernetesCronJobformat (#883)Bases the failover logic on the Postgres information from the instance manager, rather than Kubernetes pod readiness, which could be stale (#890)
Ensure we have a WAL to archive for every newly created cluster. The lack could prevent backups from working (#897)
Correct YAML key names for
barmanObjectStorein documentation (#877)Fix
krewrelease (#866)
Version 1.17.1
Release date: Oct 6, 2022
Enhancements:
Introduce
leaseDurationandrenewDeadlineparameters in the controller manager to enhance configuration of the leader election in operator deployments (#759)Improve the mechanism that checks that the backup object store is empty before archiving a WAL file for the first time: a new file called
.check-empty-wal-archiveis placed in thePGDATAimmediately after the cluster is bootstrapped and it is then removed after the first WAL file is successfully archived
Security:
Explicitly set permissions of the instance manager binary that is copied in the
distroless/static:nonrootcontainer image, by using thenonroot:nonrootuser (#754)
Fixes:
Drop any active connection on a standby after it is promoted to primary (#737)
Honor
MAPPEDMETRICandDURATIONmetric types conversion in the native Prometheus exporter (#765)Ensure that timestamps that are specified with microsecond precision using the PostgreSQL format are correctly parsed (#741)
Version 1.17.0
Release date: Sep 6, 2022 (minor release)
Features:
Separate volume for WAL files: Support for separating Write Ahead Log (WAL) and database data files onto different disks, potentially leading to better performance on high write systems by easing I/O load on the data directory. This option is controlled with the introduction of the optional
walStoragesection to separate WAL files (pg_wal) in a dedicated volume, separate from thePGDATAdefined in the main and mandatorystoragesection (#513). Current limitations:walStoragecan only be set at cluster creation and cannot be added or removed when the cluster is up and running.
Enhancements:
Enable configuration of low-level network TCP settings in the PgBouncer connection pooler implementation (#584)
Make sure that the
cnpg.io/instanceNameand thecnpg.io/podRolelabels are always present on pods and PVCs (#632 and #680)Propagate the
rolelabel of an instance to the underlying PVC (#634)Introduce the
kubectl cnpg destroycommand to help remove an instance and all the associated PVCs (#643)
Fixes:
Use
shared_preload_librarieswhen bootstrapping the new cluster’s primary (#642)Prevent multiple in-place upgrade processes of the operator from running simultaneously by atomically checking whether another one is in progress (#655)
Avoid using a hardcoded file name to store the newly uploaded instance manager, preventing a possible race condition during online upgrades of the operator (#660)
Prevent a panic from happening when invoking
GetAllAccessibleDatabases(#641)