// the find
reactive-tech/kubegres
Kubegres is a Kubernetes operator allowing to deploy one or many clusters of PostgreSql instances and manage databases replication, failover and backup.
Kubegres is a Kubernetes operator that handles PostgreSQL cluster management — streaming replication, automatic failover, and scheduled backups — through a single custom resource. It's aimed at teams that need Postgres-on-Kubernetes without the full weight of Zalando's postgres-operator or Crunchy Data's PGO. The scope is deliberately narrow, which is both its strength and its ceiling.
The CRD surface area is small and readable — a single `Kubegres` kind covers replicas, storage, backup schedule, and custom config, so you aren't learning a new DSL. The test suite is real: 99 automated tests using kind clusters that exercise actual failover, replication, and spec changes, not mocked Kubernetes clients. The codebase is genuinely small (~30 Go files in the controller) and structured clearly enough that you can read the failover path in an afternoon. Sponsored production usage at 25+ clusters gives some confidence it doesn't fall apart under load.
Last commit was January 2025 and the pace has slowed considerably — issues mentioning connection pooling (PgBouncer), point-in-time recovery, and TLS between replicas have sat open for years, features that competing operators shipped long ago. Backup is a cron job that runs pg_dump to a PVC, which means restoring under pressure involves manual steps and no built-in PITR. There's no support for connection pooling at the operator level, so you're bolting PgBouncer on yourself. Failover promotes a replica automatically but there's no documented split-brain protection or fencing mechanism described — if your primary is partitioned but not dead, you could end up with two nodes thinking they're primary.