Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
johannesknauft b350c9d3df
Merge 6c1f75e7c1 into d495825f4b
2026-03-02 16:08:27 +01:00
.github Modernize code generation (#3003) 2026-01-09 14:22:10 +01:00
charts Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
cmd Add abitility to set QPS and Burst limits for api client (#2667) 2024-12-23 08:53:27 +01:00
docker Separate pipeline for internal/external build and support multi arch (#2991) 2025-12-10 16:45:42 +01:00
docs Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
e2e Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
hack Standby section improvements (#3033) 2026-01-19 13:54:27 +01:00
kubectl-pg bump to v1.15.1 (#3011) 2025-12-16 19:25:12 +01:00
logical-backup Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
manifests Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
mocks
pkg Merge 6c1f75e7c1 into d495825f4b 2026-03-02 16:08:27 +01:00
ui Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
.flake8
.gitignore Checkin CRD to make go get work (#3047) 2026-02-18 14:20:46 +01:00
.golangci.yml
.zappr.yaml Min 2 zalando approvers. (#1338) 2021-01-29 11:12:08 +01:00
CODEOWNERS add Mikkel (#3002) 2025-12-03 11:00:59 +01:00
CONTRIBUTING.md
LICENSE bump to v1.15.0 (#2965) 2025-10-21 11:56:33 +02:00
MAINTAINERS add Mikkel (#3002) 2025-12-03 11:00:59 +01:00
Makefile bugfix: fix image naming to use it correctly in e2e test (#3037) 2026-01-29 11:22:50 +01:00
README.md Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
SECURITY.md
build-ci.sh Modernize code generation (#3003) 2026-01-09 14:22:10 +01:00
delivery.yaml Checkin CRD to make go get work (#3047) 2026-02-18 14:20:46 +01:00
go.mod add support for global maintenance windows (#3038) 2026-01-30 11:37:21 +01:00
go.sum Generate CRD for postgresteam resource (#3004) 2026-01-10 19:39:08 +01:00
mkdocs.yml
run_operator_locally.sh Modernize code generation (#3003) 2026-01-09 14:22:10 +01:00

README.md

Postgres Operator

Tests E2E Tests Coverage Status

The Postgres Operator delivers an easy to run highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni. It is configured only through Postgres manifests (CRDs) to ease integration into automated CI/CD pipelines with no access to Kubernetes API directly, promoting infrastructure as code vs manual operations.

Operator features

  • Rolling updates on Postgres cluster changes, incl. quick minor version updates
  • Live volume resize without pod restarts (AWS EBS, PVC)
  • Database connection pooling with PGBouncer
  • Support fast in place major version upgrade. Supports global upgrade of all clusters.
  • Pod protection during bootstrap phase and configurable maintenance windows
  • Restore and cloning Postgres clusters on AWS, GCS and Azure
  • Additionally logical backups to S3 or GCS bucket can be configured
  • Standby cluster from S3 or GCS WAL archive
  • Configurable for non-cloud environments
  • Basic credential and user management on K8s, eases application deployments
  • Support for custom TLS certificates
  • UI to create and edit Postgres cluster manifests
  • Compatible with OpenShift

PostgreSQL features

The Postgres Operator has been developed at Zalando and is being used in production for over five years.

Supported Postgres & K8s versions

Release Postgres versions K8s versions Golang
v1.15.1 13 → 17 1.27+ 1.25.3
v1.14.0 13 → 17 1.27+ 1.23.4
v1.13.0 12 → 16 1.27+ 1.22.5
v1.12.0 11 → 16 1.27+ 1.22.3
v1.11.0 11 → 16 1.27+ 1.21.7
v1.10.1 10 → 15 1.21+ 1.19.8

Getting started

For a quick first impression follow the instructions of this tutorial.

Supported setups of Postgres and Applications

Features Features

Documentation

There is a browser-friendly version of this documentation at postgres-operator.readthedocs.io