Migrating from the Zalando postgres-operator
This section is for users moving PostgreSQL clusters from the Zalando
postgres-operator (acid.zalan.do/v1 postgresql, the Spilo/Patroni
based stack previously shipped on Alauda Container Platform) to
CloudNativePG (postgresql.cnpg.io/v1).
- Manifest mapping — every Zalando CR field and its CloudNativePG equivalent, plus the automated conversion tool.
- Data migration — moving the data: dump/restore, logical replication, or physical clone.
Why migrate, and what to expect
-
No performance regression. Release qualification for CNPG v1.29.1 included a same-hardware A/B comparison against the Zalando stack (identical sysbench OLTP workload, matched
shared_buffersandmax_connectionsper scenario): CloudNativePG matched or exceeded the Zalando stack in all eight scenarios (TPS and P95 latency). -
Extension parity. All bundled extensions ship inside the PostgreSQL operand images:
TimescaleDB packages for Debian trixie start at PG 15 — a Zalando user on PG 14 with TimescaleDB should upgrade to PG 15+ during the migration (PG 14 is near end-of-life). The TimescaleDB build is the Apache-2 OSS edition, equivalent to Spilo's
APACHE_ONLY=true— no capability loss versus Zalando. -
Architecture simplification: no Patroni or external DCS, no Spilo mega-image, Kubernetes-native failover, declarative configuration — see Architecture.
Concept mapping
Migration checklist
- Convert the manifest (manifest mapping — review every warning the conversion tool prints).
- Pick the data path (data migration).
- Recreate credential secrets (
kubernetes.io/basic-auth) if applications must keep their passwords. - Deploy, wait for
Cluster in healthy state, run a first backup, wire monitoring (the Grafana dashboards guide, How To section). - Repoint applications (service names change), then decommission the Zalando cluster after a rollback window.