PostgresCluster custom resource. PGO then continuously reconciles the cluster, keeping it in your declared desired state so you never have to manually intervene.
Quickstart
Deploy your first PostgreSQL cluster on Kubernetes in minutes using Kustomize.
Architecture
Learn how the operator pattern, Patroni, pgBackRest, and pgBouncer work together.
Create a cluster
Provision and fully customize a PostgresCluster for your workload.
Custom resource reference
Full field-level reference for the PostgresCluster, PGUpgrade, and PGAdmin CRDs.
What PGO provides
PGO automates the day-one and day-two operations that are difficult to get right when running PostgreSQL on Kubernetes manually.High availability
Automated failover using Patroni’s distributed consensus. Failed primaries self-heal. Configure synchronous or asynchronous replication, and deploy standby clusters within or across Kubernetes environments.
Backups and disaster recovery
Full, incremental, and differential backups via pgBackRest. Store backups on S3-compatible object storage, Google Cloud Storage, Azure Blob Storage, or local volumes — simultaneously across multiple repositories.
Connection pooling
Built-in pgBouncer integration manages database connections efficiently, reducing overhead for applications that open many short-lived connections.
Monitoring
Out-of-the-box Prometheus metrics, Grafana dashboards, and Alertmanager rules using the pgMonitor library. Add custom queries or export via OpenTelemetry.
TLS everywhere
PGO enforces TLS on all connections by default, including replication traffic. Use PGO-managed PKI or supply your own certificates via
customTLSSecret.Cluster customization
Set container resources, storage sizes, node affinity, pod tolerations, topology spread constraints, custom PostgreSQL parameters, and init SQL — all in the
PostgresCluster spec.Major version upgrades
Perform in-place major PostgreSQL version upgrades using the
PGUpgrade custom resource with minimal downtime.pgAdmin web UI
Optionally deploy pgAdmin 4 alongside your cluster for a browser-based management interface, configured through the
userInterface field or the standalone PGAdmin resource.Included components
Every PostgreSQL cluster deployed by PGO includes the following open source components:
The PostgreSQL container also ships with contrib modules, PL/Python, PL/Perl, PL/Tcl, pgAudit, pg_cron, pg_partman, wal2json, TimescaleDB (Apache edition), and LLVM JIT support. A separate PostGIS-enabled image adds PostGIS and pgRouting.
Supported Kubernetes platforms
PGO is tested and supported on the following distributions:- Kubernetes
- Red Hat OpenShift
- Rancher
- Google Kubernetes Engine (GKE), including Anthos
- Amazon EKS
- Microsoft AKS
- VMware Tanzu
PGO automatically detects OpenShift environments and adjusts pod security context settings accordingly. See supported platforms for version compatibility details.
Installation
PGO is distributed as part of Crunchy Postgres for Kubernetes and can be installed using Kustomize or Helm.Install with Kustomize
The recommended path for most users. Fork the examples repository and apply two commands.
Install with Helm
Deploy PGO using the official Helm chart for environments that prefer Helm-based workflows.