Revisions 901, 902

k8s

The first stable revision of Charmed PostgreSQL 16 for Kubernetes has been released in the 16/stable channel. It comes with several new features and improvements.

Thank you to everybody who helped make this release happen!

Compatibility

Architecture

Charm revision

OCI image revision*

PostgreSQL version

Min. recommended Juju version

amd64

901

198

16.13

3.6.1+

arm64

902

198

16.13

3.6.1+

*OCI image resources:

  • postgresql-image=ghcr.io/canonical/charmed-postgresql@sha256:72d2db8fd7724691c841318d9013af61c72f44f18e79bfb31299a200dad097b7

Highlights

  • Workload upgrade from PostgreSQL 14 to 16

    • Check the official PostgreSQL 16.0 - 16.13 release notes

  • [DPE-6964] Juju storage pools for flexible storage configuration options by @marceloneppel in #941

  • [DPE-6189] Password management with Juju user secrets by @reneradoi in #926

  • New in-place upgrades & rollbacks using refresh v3 library by @marceloneppel in #1115

  • [DPE-7595] Switch to TLS v4 library by @dragomirp in #1116

    • New endpoints client-certificates and peer-certificates

    • Endpoint peer-interfaces uses TLS by default

    • See all endpoints on Charmhub

  • [DPE-7861] Several improvements to built-in roles by @marceloneppel in #1049 )

Other features

  • [DPE-7549] Add compression and restore max-process by @dragomirp in #1020 )

  • Bump PG slots max_replication_slots / max_wal_senders = 25 by @taurus-forever in #1031 )

  • [DPE-9018] Bump PG version 16.10->16.11 by @taurus-forever in #1183

  • No default scope in promote action by @dragomirp in #946

  • [DPE-8932] Expose config parameters for pg_stat_statements. by @dragomirp in #1346

  • [DPE-7379] Custom entity name by @dragomirp in #1060

  • [DPE-7302] Prefixes by @dragomirp in #1142

  • Add PostgreSQL 14 to 16 data migration guide by @a-velasco in #1153

  • Upgrade to Juju Terraform 1.0 by @shipperizer in #1157

  • Port parallel calls from VM and cached config from 14/edge by @dragomirp in #1159

  • Disable logical replication feature by @marceloneppel in #1185

  • [DPE-8861] Expose several CPU config parameters by @dragomirp in #1203

  • [DPE-9361] Strict mode configuration by @dragomirp in #1225

  • Port pgbackrest exporter by @Deezzir in #1235

  • [DPE-9444] Switch to ops tracing (16/edge) by @dragomirp in #1264

  • Add alert for multiple Patroni primaries by @Deezzir in #1282

  • Replace _ with - in config option names by @carlcsaposs-canonical in #1174

  • [DPE-9969] feat: add /var/log/patroni and /var/log/pgbackrest symlinks by @marceloneppel in #1486

  • DPE-9001 Cache _patroni property by @taurus-forever in #1188

  • Lock file maintenance Python dependencies (16/edge) by @renovate[bot] in #1126

  • [DPE-7595] Switch to pydantic2 by @dragomirp in #1105

Bug fixes

  • [DPE-6323] Handle missing stanza output by @dragomirp in #866

  • Add missing connection vars by @sinclert-canonical in #920

  • [DPE-6815] disable pgaudit during extensions changes by @dragomirp in #923

  • Don’t set tls flag if relation isn’t initialised by @dragomirp in #933

  • [DPE-6344] Persist transferred certificates upon start by @sinclert-canonical in #953

  • Extend relation-user listing syntax by @sinclert-canonical in #957

  • DPE-6662 Fix pgbackrest logs names on logs rotation by @taurus-forever in #997

  • DPE-6901 Replace md5 with scram-sha-256 in patroni/pg_hba.conf by @taurus-forever in #1068

  • [DPE-8005] Handle empty region by @dragomirp in #1099

  • [DPE-8337] Disable Patroni config to prevent possible data loss by @dragomirp in #1104

  • Update charmcraft.yaml build tools (16/edge) by @renovate[bot] in #1137

  • Update canonical/data-platform-workflows action to v40 (16/edge) by @renovate[bot] in #1146

  • [DPE-8975] Move PG16 K8s TLS tests to 1/stable by @taurus-forever in #1161

  • [DPE-8986] Check for database not running only in pre-checks and fix test by @marceloneppel in #1166

  • [DPE-9256] Endpoints cleanup by @marceloneppel in #1214

  • [DPE-9158] Limit repo listing to find the timelines by @dragomirp in #1236

  • [DPE-9370] Handle retry error in bulk update by @dragomirp in #1240

  • Add optional flags to provides endpoints for PG16 K8s by @taurus-forever in #1252

  • [DPE-7891] test: re-enable discourse integration test by @marceloneppel in #1266

  • [DPE-9534] fix(monitoring): add _total suffix to PostgreSQL counter metrics in Grafana dashboard by @marceloneppel in #1303

  • [DPE-9555] fix(test): add explicit relation endpoints for GLAuth-PostgreSQL integration by @marceloneppel in #1322

  • [DPE-9561] Create archive directory by @marceloneppel in #1328

  • [DPE-9568] fix(tests): avoid race in test_no_prefix_dbs and retry CLI errors in test_symlinks by @marceloneppel in #1330

  • [DPE-9580] fix: set up pgdata symlinks in reconcile, add CLI retry, and re-enable upgrade tests by @marceloneppel in #1342

  • [DPE-9630] fix: verify replication HBA before starting Patroni on replicas by @marceloneppel in #1359

  • [DPE-9578] Check unit’s host for restart need (16/edge) by @dragomirp in #1367

  • Update tutorial.md with secrets password management by @ugol in #1368

  • [DPE-9451] Track members of relation access by @dragomirp in #1401

  • [DPE-9841] fix: error state on missing headless service by @marceloneppel in #1440

  • [DPE-9845] fix: use real pgdata path for Patroni to fix reinit and move logs to persistent storage by @marceloneppel in #1444

  • [DPE-9705] Limit max_timelines_history to 50 by @taurus-forever in #1463

  • [DPE-9920] Fix 10th+ cluster<>cluster promotion by @taurus-forever in #1481

  • [DPE-9935] fix: fix log file bloat by removing --log-level-file=debug from backup command by @marceloneppel in #1485

  • [DPE-6964] Replace confusing error with debug by @taurus-forever in #1504

New Contributors

  • @reneradoi made their first contribution in #926

  • @shipperizer made their first contribution in #1157

Full Changelog: https://github.com/canonical/postgresql-k8s-operator/commits/v16/1.111.0