Percona Operator for PostgreSQL 3.1.0 has been released
Percona Operator for PostgreSQL 3.1.0 has been released on September 9, 2026.
This version establishes Percona Operator for PostgreSQL as a hard fork of the Crunchy PGO project , making it fully independent and empowering the Percona team and community to drive and rapidly deliver features and improvements tailored to user needs.
Try it out using the Quickstart guide.
New features and improvements introduced by this release include:
-
Encrypt data at rest with
pg_tde. Tables, indexes, temporary files and WAL stay unreadable without the keys, even if storage is compromised. Enablepg_tdein the Custom Resource and configure HashiCorp Vault as the key provider. The Operator installs and configures encryption for you. Encrypted tables, backups, and restores work as usual once the Operator can reach the key. Available with PostgreSQL 17 and 18. See our documentation to learn more. -
Keep logs after Pod restarts and configure log rotation. PostgreSQL and
pgBackRestlogs now persist across Pod restarts so that you have the trail you need for an incident. The Operator uses Fluent Bit to collect logs and stream them either as JSON lines or forward them to your custom destination such as S3 or OpenTelemetry. See our documentation to learn more. Also, tune log rotation in the Custom Resource so you keep enough history for troubleshooting or compliance without filling the disk. -
Offload reads with declarative logical replicas. Point reporting or other heavy queries at a read-only replica in the same cluster instead of the primary. Declare the replica in the Custom Resource. The Operator creates the volume, copies the data, converts the physical replica to a logical one and exposes a dedicated Service. Patroni does not promote the logical replica so the endpoint stays stable. Requires PostgreSQL 17 or later. See our documentation to learn more.
-
Pause pgBouncer without dropping clients. Set
proxy.pgBouncer.pausedfor a short window to restart PostgreSQL, run a switchover or drain backends. Active queries finish while new requests wait until you resume. The pause survives Pod restarts. -
Grow backup storage before it fills. Automatic storage scaling now covers pgBackRest repository volumes, not only data volumes. The Operator watches usage and expands the PVC up to the limit you set, so a full
pgBackRestrepository volume no longer stops backups. See our documentation to learn more. -
Mount extra files into PostgreSQL instances. Share full-text search dictionaries or other assets outside the data directory. Configure the volume once under
instances.extraVolumesand every instance in the set sees the same mount. Use a ConfigMap, Secret, PersistentVolumeClaim, emptyDir, or another volume source that Kubernetes supports. See our documentation to learn more. -
Fit PostgreSQL into your platform PKI. If you sync certificates from AWS Secrets Manager or External Secrets, a briefly missing Secret no longer makes the Operator generate a new CA and restart Pods. Set
certManagementPolicy: userProvidedOnlyso applications keep using the certificates already loaded. Learn more about TLS management policy in our documentation. For client mTLS, add your corporate CA to pgBouncer withadditionalTrustedCAswhile the Operator still rotates cluster certificates. Check the setup guide for the steps. -
Support of UBI 8, 9 and 10 as the base image for PostgreSQL UBI 9 remains the default. Stay on UBI 8 for older extensions or Enterprise Linux 8, or move to UBI 10 to align with RHEL 10 and a longer support window. Treat a UBI change as an OS upgrade: collation and indexes can break until you reindex.
-
Run the Operator with community or your own PostgreSQL images. Point
spec.image, pgBouncer, and pgBackRest at community tags or your private registry. The Operator manages the cluster the same way. Percona-only features such aspg_tdeare not available on community images. -
Evaluate PostgreSQL 19 (tech preview). Deploy Community PostgreSQL 19 now to test the next major version and plan your upgrade before GA.
-
RKE2 and full ARM64 support. Official RKE2 testing adds a new supported Kubernetes distribution. Full ARM64 images let you run natively on ARM-based cloud and edge clusters.
-
Deprecation, rename and removal:
-
Removed support for PMM2. This Operator release no longer supports PMM2 as it has reached the end-of-life state. Upgrade to PMM3 as soon as possible.
-
The
extensions.builtinsection is deprecated and will be removed after version 3.4.0. We encourage you to useextensions.<extension>.enabled. You can still use the old form during the transition. If both forms are set at the same time,extensions.builtintakes precedence. -
pg_cronandset_userextensions have been added to the list of built-in extensions. Your existing setup viaextensions.customremains unchanged and works as expected after the upgrade. Reconfigure the extensions after you upgraded the database to ensure the cluster finishes each change in one pass. Switch to built-in extensions as follows: -
Remove the extension from the
extensions.customlist - Set
extensions.pg_cron.enabledorextensions.set_user.enabledtotrue.
You must do these two Custom Resource changes in the same apply so they land in one reconciliation loop. Removing the extension from
extensions.customalone instructs the Operator to delete it.- Field descriptions were removed from the inherited
CrunchyBridgeClusterCRD (upstream.pgv2.percona.com/v1beta1). The object schema and cluster behavior are unchanged. Runningkubectl explainfor those fields no longer shows help text.
-
Learn more in Percona Operator for PostgreSQL 3.1.0 release notes.