---
id: v1.17
title: Release notes for CloudNativePG 1.17
---

# 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](https://github.com/cloudnative-pg/cloudnative-pg/commits/release-1.17)
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 `debug` cluster's log level to the `initdb` 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 the `cnpg` plugin for `kubectl` (#1668) allowing
  the user to start a `psql` 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 the `cnpg` 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 the `cnpg` plugin for `kubectl` 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 using `pvcTemplate` (#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 the `cnpg` 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 Kubernetes `CronJob`
  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` and `renewDeadline` 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 the `PGDATA` 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 the
  `nonroot:nonroot` user (#754)

Fixes:

- Drop any active connection on a standby after it is promoted to primary (#737)
- Honor `MAPPEDMETRIC` and `DURATION` 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 the `PGDATA` defined in the main and mandatory `storage` 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 the `cnpg.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)

