Create new empty cluster from cr.yaml with ppg12 or ppg13
load sample database/create any table
Pause cluster, change pgBouncer.size to 0
wait until full shutdown
edit perconapgcluster: change images to ppg13 (for upgrade from ppg12) or to ppg14
In case of 12->13 or 12->14 upgrade, Postgresql pods are not coming to the ready state because wal_keep_segments parameter was removed from postgresql
13->14 upgrade fails due to:
2022-08-26 00:19:57,248 INFO: stderr=2022-08-26 00:19:57.245 UTC [981] FATAL: database files are incompatible with server
2022-08-26 00:19:57.245 UTC [981] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.4.
Community Note
Tell us about the feature
I've tried to reproduce: https://docs.percona.com/percona-operator-for-postgresql/update.html
Create new empty cluster from cr.yaml with ppg12 or ppg13
load sample database/create any table
Pause cluster, change pgBouncer.size to 0
wait until full shutdown
edit perconapgcluster: change images to ppg13 (for upgrade from ppg12) or to ppg14
In case of 12->13 or 12->14 upgrade, Postgresql pods are not coming to the ready state because wal_keep_segments parameter was removed from postgresql
13->14 upgrade fails due to: 2022-08-26 00:19:57,248 INFO: stderr=2022-08-26 00:19:57.245 UTC [981] FATAL: database files are incompatible with server 2022-08-26 00:19:57.245 UTC [981] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.4.
In-place upgrade could be done with pg_upgrade, but pg_upgrade requires old version of PG to be in the image: https://docs.percona.com/postgresql/14/major-upgrade.html
Link to JIRA