postgres-operator-cloudnative-pg-migration

Solid

Migrate PostgreSQL clusters from the Zalando postgres-operator (acid.zalan.do `postgresql` CRs, Spilo/Patroni, WAL-G) to CloudNativePG (CNPG) on Kubernetes, incl. fully air-gapped clusters. Core knowledge: the two walls (Spilo↔CNPG glibc/collation divergence that corrupts physically-copied indexes; WAL-G↔Barman archive incompatibility that strands old backups), three migration paths (logical replication default; initdb.import for small DBs/PG≤13; pg_basebackup as the discouraged same-major exception), the acid.zalan.do→Cluster manifest field map with no-equivalent gaps (preparedDatabases, sidecars, logical-backup cron), backup re-plumbing onto the barman-cloud CNPG-I plugin, HA parity (synchronous + failoverQuorum vs Patroni failsafe), consumer cutover (service/secret renames, scram, cnpg_ metrics), air-gap mirroring, stay-vs-migrate evidence.

API & Backend 3 stars 1 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 79/100

Stars 20%
20
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# postgres-operator-cloudnative-pg-migration Migrate PostgreSQL clusters from the Zalando postgres-operator (Spilo + Patroni) to CloudNativePG with data intact, indexes trustworthy, backups restorable at every phase, and no dependency left on maintenance-mode artifacts. Facts below were verified 2026-07-24 against primary sources (both operator repos at HEAD, release manifests, maintainer statements); re-verify anything version-gated before relying on it in a later year. Version anchor at authoring time: Zalando 1.15.1 (Spilo-17 4.0-p3, PG 13–17), CNPG 1.30.0 / 1.29.2 (PG 14–18), plugin-barman-cloud v0.13.0. ## Why this migration exists Zalando's operator is in maintainer-confirmed maintenance mode ("a little idle state… not encouraged by management", issue #2921, June 2025): ~1 release/year, one sustained maintainer, no release in 2026 despite a commit rebound. CNPG runs ~7× the human commit volume, releases quarterly across three maintained lines, entered CNCF Sandbox (Jan 2025, incubation pending), and has a documented migration wave (IBM Instana ships official Zalando→CNPG docs). **This is strategic, not an emergency**: Zalando is safe to run through ~2027 (v1.15.x covers PG13–17 and the K8s-1.33 Endpoints deprecation), Patroni itself is thriving, and CNPG brings its own churn costs (quarterly operator upgrades that rolling-restart every cluster; a backup-plugin transition in flight). Full evidence, the skeptic's case, and alternatives: `references/decision.md`. Migrat...

Details

Author
air-gapped
Repository
air-gapped/skills
Created
3 months ago
Last Updated
yesterday
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

cnpg

Create and operate CloudNativePG (CNPG) Postgres databases on Kubernetes the GitOps/Flux way - on managed cloud (GKE + GCS via Workload Identity) OR self-hosted (K3s/bare-metal + any S3-compatible store via a credentials secret). Covers Cluster + ScheduledBackup manifests, barman WAL archiving, pgvector, PITR, prod→dev clones, and the NetworkPolicies a default-deny cluster needs. Use when provisioning a new app database, cloning prod into dev, enabling pgvector, wiring backups/PITR, writing CNPG NetworkPolicies, or debugging the silent "WAL archiving failed → PVC fills → Postgres CrashLoop → app can't read data" chain on CloudNativePG.

2 Updated today
vanducng
AI & Automation Listed

pg-upgrade-internals

PostgreSQL's `pg_upgrade` — the tool that upgrades a data directory in-place from one major version to another without a dump-restore. Covers `src/bin/pg_upgrade/` architecture, the pre-upgrade checks, catalog dump-restore, relfilenode preservation (or rewriting), the two allocation strategies (link vs copy vs clone), and the "check for known upgrade issues" list. Loads when the user asks about pg_upgrade internals, common upgrade failures ("could not connect to source cluster", ERROR at pg_dump extraction, relfilenumber mismatch), --link vs --clone vs --copy tradeoffs, upgrade-blocking features (unlogged tables, sequences, extensions), or extension upgrade paths. Skip when the ask is about major-version release notes semantics (see `wiki-distilled` corpus) or about pg_dump alone.

0 Updated 4 days ago
matejformanek
API & Backend Listed

postgres-migration-safety

Plan and review PostgreSQL production changes for locks, scans, rewrites, compatibility, bounded backfills, constraint validation, concurrent indexes, replication, observability, failure cleanup, and rollback or roll-forward. Use when a target schema or data change is approved for rollout. Do not use to choose the domain model, diagnose a query, or design the backup program.

1 Updated today
genaptic