zalando/postgres-operator

Postgres operator creates and manages PostgreSQL clusters running in Kubernetes

Go

5,253

1,319 commits

updated Oct 2, 2026

See the code

README

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 or remote host
  • 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
  • Multi-arch support

PostgreSQL features

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

Supported Postgres & K8s versions

ReleasePostgres versionsK8s versionsGolang
v2.0.314 → 181.27+1.26.4
v1.15.113 → 171.27+1.25.3
v1.14.013 → 171.27+1.23.4
v1.13.012 → 161.27+1.22.5
v1.12.011 → 161.27+1.22.3
v1.11.011 → 161.27+1.21.7

Getting started

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

Migrating from v1 to v2 operator

If you have been using Postgres Operator since v1.x (thank you), make sure you have read the migration docs before deploying a v2 operator.

Documentation

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

cluster
database-as-a-service
data-infrastructure
golang
kubernetes
managed-services
operator
postgres
postgres-operator
postgresql

zalando/postgres-operator

Postgres operator creates and manages PostgreSQL clusters running in Kubernetes

Go

5,253

1,319 commits

updated Oct 2, 2026

See the code

README

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 or remote host
  • 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
  • Multi-arch support

PostgreSQL features

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

Supported Postgres & K8s versions

ReleasePostgres versionsK8s versionsGolang
v2.0.314 → 181.27+1.26.4
v1.15.113 → 171.27+1.25.3
v1.14.013 → 171.27+1.23.4
v1.13.012 → 161.27+1.22.5
v1.12.011 → 161.27+1.22.3
v1.11.011 → 161.27+1.21.7

Getting started

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

Migrating from v1 to v2 operator

If you have been using Postgres Operator since v1.x (thank you), make sure you have read the migration docs before deploying a v2 operator.

Documentation

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

cluster
database-as-a-service
data-infrastructure
golang
kubernetes
managed-services
operator
postgres
postgres-operator
postgresql

Project health

Overall

6.5/10

Maintained

10/10

Code review

7/10
OpenSSF Scorecard

Latest release

v1.15.1 · Dec 16, 2025

Releases this year

2

Significant stargazers

(top 24 of 67)

Joshua Peek

2,592 followers · starred Jan 2026

Frederic Branczyk

949 followers · starred Dec 2018

Ian Douglas Scott

417 followers · starred Oct 2021

Matthias Loibl

541 followers · starred Nov 2017