Kubernetes & Self-Hosted Postgres

Zalando Postgres Operator Alternative: Beyond Patroni-Based HA

The Zalando postgres-operator provides HA PostgreSQL via Patroni but lacks database branching, developer self-service, and modern org-wide RBAC. See how Vela compares as a BYOC alternative.

Last updated: March 2026

The Zalando postgres-operator is one of the original Kubernetes PostgreSQL operators — it powers PostgreSQL at Zalando's scale and introduced Patroni-based HA for K8s-managed clusters. For teams wanting production-grade HA with PgBouncer pooling and multi-team resource isolation, it remains a solid choice. But like all Kubernetes operators, it is an infrastructure primitive. It provides no database branching, no copy-on-write cloning, no developer self-service, and no organization-wide RBAC beyond Kubernetes namespaces. Teams that need those capabilities alongside their own-cloud data control typically look for a BYOC alternative.

What is Zalando postgres-operator?

The Zalando postgres-operator (github.com/zalando/postgres-operator) is an open-source MIT-licensed Kubernetes operator that manages highly available PostgreSQL clusters using Patroni for automatic failover. It uses the Spilo Docker image (PostgreSQL + Patroni) and includes built-in PgBouncer connection pooling. Zalando uses it internally to run hundreds of PostgreSQL clusters. The operator supports multi-team resource isolation via Kubernetes namespaces and team APIs.

What Zalando does well

  • Patroni-based HA with automatic leader election and failover
  • Built-in PgBouncer connection pooling via Spilo
  • Multi-team resource isolation with team API
  • Continuous WAL archiving for PITR
  • Battle-tested at Zalando scale (hundreds of clusters)
  • MIT licensed (open source)
  • Supports custom PostgreSQL extensions via Spilo

Where Zalando falls short

  • Less active upstream maintenance compared to CloudNativePG (fewer releases in 2024–2025)
  • Steeper learning curve — Spilo, Patroni, and the operator each have their own config surface
  • No instant database cloning or copy-on-write branching
  • No developer self-service — all cluster operations go through the platform team
  • No org-wide RBAC beyond Kubernetes namespace isolation
  • No built-in web UI
  • Complex networking configuration for multi-namespace setups
  • Requires Kubernetes and Patroni expertise to operate well

Best for: Large organizations already running Zalando's Patroni-based PostgreSQL stack who want to bring it to Kubernetes without changing their HA approach.

Zalando vs Vela: Feature Comparison

How Zalando postgres-operator compares to Vela BYOC across key dimensions

Feature Zalando Vela BYOC
Deployment model Kubernetes operator (Patroni + Spilo) BYOC — managed control plane in your cloud
High availability Patroni automatic leader election and failover Built-in HA with live migration support
Automated failover Yes — Patroni handles primary election Yes — managed by control plane
Connection pooling Built in (PgBouncer via Spilo) Built-in connection management
Instant database cloning No — full cluster required per environment Yes — copy-on-write, any database size, seconds
Git-style DB branching No — must implement yourself Yes — branch per PR / pipeline / developer
Developer self-service No — infra team provisions clusters Yes — developers spin up DB branches via UI/API
Org-wide RBAC Kubernetes namespace isolation + team API Organization-wide RBAC across all databases
SSO / SAML / LDAP Not included Built-in SSO/SAML/LDAP integration
Backup & PITR Continuous WAL archiving (WAL-E / WAL-G) Automated backups with configurable retention
Monitoring Prometheus metrics (Patroni + PostgreSQL) Built-in observability dashboard
Upstream activity Moderate — fewer releases since 2024 Active development
Kubernetes expertise needed High — Patroni, Spilo, operator config Low — abstracted by control plane
License MIT (open source) Commercial (BYOC — data stays in your cloud)

Frequently Asked Questions

What is the Zalando postgres-operator and what are its limitations?

The Zalando postgres-operator is an open-source MIT-licensed Kubernetes operator that manages HA PostgreSQL clusters using Patroni for automatic failover. It uses the Spilo Docker image and includes PgBouncer for connection pooling. Its main limitations are: no database branching or copy-on-write cloning (each environment needs a full cluster), no developer self-service, no org-wide RBAC beyond Kubernetes namespaces, and a steeper learning curve than newer operators like CloudNativePG.

How does the Zalando postgres-operator compare to CloudNativePG (CNPG)?

Both are mature Kubernetes PostgreSQL operators, but they differ in approach and momentum. CNPG uses a declarative CRD model and has stronger CNCF community momentum as of 2026. Zalando uses Patroni + Spilo and has built-in PgBouncer pooling (CNPG requires a separate PgBouncer deployment). For new projects, CNPG is generally recommended for its more active community. Zalando is preferred by teams already using Zalando's Patroni-based stack or needing the team API isolation model. Neither provides database branching or developer self-service.

Can the Zalando postgres-operator create instant database copies for testing?

No. Like all Kubernetes PostgreSQL operators, the Zalando operator creates clusters, not branches. To create a test copy of a database, you must provision a new cluster and restore from a backup or pg_dump. For large databases this takes significant time and incurs full storage costs per copy. Vela's copy-on-write cloning creates an instant branch in seconds — storage is shared for unchanged blocks, so a 500 GB database clone uses near-zero additional space until writes occur.

Is the Zalando postgres-operator still actively maintained?

The Zalando postgres-operator is open source and still maintained as of 2026, but its release cadence has slowed compared to CloudNativePG. CloudNativePG, backed by EDB and in the CNCF sandbox, has had more frequent releases and a larger contributor base in recent years. For new projects, the community trend is toward CNPG. The Zalando operator remains a good choice for teams already invested in the Patroni/Spilo stack.

What RBAC does the Zalando postgres-operator support?

The Zalando operator supports team-based resource isolation using a team API — teams can own specific PostgreSQL clusters within their Kubernetes namespace. But this is Kubernetes namespace-level isolation, not database-level org RBAC. It does not support SSO/SAML/LDAP, role-based access at the database project level, or fine-grained permissions for developer self-service workflows. For enterprise org-wide RBAC, Vela provides hierarchical RBAC, SSO/SAML/LDAP integration, and audit logging.

What's the best alternative to the Zalando postgres-operator for a modern developer experience?

If you need developer-friendly workflows (branching, instant cloning, self-service) in your own cloud: Vela BYOC adds copy-on-write cloning, Git-style branching, and org-wide RBAC as a managed control plane. If you need a pure open-source K8s operator with more community momentum, CloudNativePG is the better choice over Zalando for new projects. If you need self-hosted serverless Postgres with branching, Neon OSS is an option but complex to operate at scale.

Go Beyond What Zalando Offers

Keep your data in your own cloud. Add instant database cloning, Git-style branching, and org-wide RBAC — without replacing your infrastructure.