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
Version 1.17 has reached End-of-Life (EOL). Version 1.17.5 is the last that will be released for the 1.17 minor version.
Enhancements:
- Extend the
debug
cluster's log level to theinitdb
job (#1503) - Support IPv6 and custom
pg_hba
for the PgBouncer pooler (#1395) - Document API calls from the instance manager (#1641)
- Clarify deployment name via Helm (#1505)
- Add the
psql
command to thecnpg
plugin forkubectl
(#1668) allowing the user to start apsql
session 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
status
command of thecnpg
plugin (#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
backup
command in thecnpg
plugin forkubectl
to issue a new base backup of the cluster (#1348) - Add a database comment on the
streaming_replica
user (#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
walStorage
resize when usingpvcTemplate
(#1315) - Avoid
PodMonitor
reconcile if Prometheus is not installed (#1238) - Avoid looking for
PodMonitor
when 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
ciclops
for test summary (#1064): rely on the ciclops GitHub action to provide summaries of the E2E suite, inheriting improvements from that project - Add 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
SeccomProfile
to Pods and Containers (#888)
Enhancements:
status
command for thecnpg
plugin:- 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
plpgsql
functions (#974) - Properly find the closest backup when doing Point-in-time recovery (#949)
- Clarify that the
ScheduledBackup
format does not follow KubernetesCronJob
format (#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
barmanObjectStore
in documentation (#877) - Fix
krew
release (#866)
Version 1.17.1
Release date: Oct 6, 2022
Enhancements:
- Introduce
leaseDuration
andrenewDeadline
parameters 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-archive
is placed in thePGDATA
immediately 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:nonroot
container image, by using thenonroot:nonroot
user (#754)
Fixes:
- Drop any active connection on a standby after it is promoted to primary (#737)
- Honor
MAPPEDMETRIC
andDURATION
metric 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
walStorage
section to separate WAL files (pg_wal
) in a dedicated volume, separate from thePGDATA
defined in the main and mandatorystorage
section (#513). Current limitations:walStorage
can 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/instanceName
and thecnpg.io/podRole
labels are always present on pods and PVCs (#632 and #680) - Propagate the
role
label of an instance to the underlying PVC (#634) - Introduce the
kubectl cnpg destroy
command to help remove an instance and all the associated PVCs (#643)
Fixes:
- Use
shared_preload_libraries
when 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)