{"slug": "cloudnativepg", "name": "CloudNativePG", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 13, "commenters": 18, "warners": 1, "score": 11.07, "rising": -2.93, "first": "2025-12-05", "latest": "2026-10-12", "why": "I'm truly impressed - it's a piece of art when it comes to postgres automation", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 13, "neutral": 6, "compare": 0, "warn": 0}, "spark": [0, 6, 0, 0, 0, 1, 0, 3, 2, 0, 0, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "I'm truly impressed - it's a piece of art when it comes to postgres automation", "kind": "", "icon": true, "domain": "cloudnative-pg.io", "github_repo": null, "official_url": "https://cloudnative-pg.io", "pricing": "", "aliases": ["CloudNativePG"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 800878400, "item_id": 50054900, "url": "https://news.ycombinator.com/item?id=50054900", "by": "smartbit", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "CloudNativePG supports Kubernetes Local Storage as one of its main features", "excerpt": "CloudNativePG supports Kubernetes Local Storage as one of its main features [0] Persistent volume management, including: Support for Local Persistent Volumes with PVC templates. Reuse of Persistent Volumes storage in Pods. Separate volumes for WAL files and tablespaces. Chapter Temporary PostgreSQL Cluster Degradation [1] describes how to set it up and starts with this > While the standard approach ensures service re", "context": "", "use_case": "", "switched_from": "", "story": "Postgres isn't slow, your storage is"}, {"id": 784174112, "item_id": 49010882, "url": "https://news.ycombinator.com/item?id=49010882", "by": "geoka9", "date": "2026-07-22", "version": null, "stance": "recommend", "quote": "why not just use cnpg?", "excerpt": "If you already run k8s, why not just use cnpg? https://github.com/cloudnative-pg/cloudnative-pg", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "The startup's Postgres survival guide"}, {"id": 780055088, "item_id": 48753443, "url": "https://news.ycombinator.com/item?id=48753443", "by": "chatmasta", "date": "2026-07-01", "version": null, "stance": "recommend", "quote": "CloudNativePG uses this for its Image Volume Extensions feature", "excerpt": "Are you aware of extension_control_path? [0] Since PG18 it allows specifying multiple non-$system directories for extension control paths, which makes it easier to adopt composable patterns of extension bundling with immutable images. CloudNativePG uses this for its Image Volume Extensions feature [1]. A lot of the CNPG team worked on contributing this to PG core because previously the only alternative was baking \u201cGo", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Pglayers \u2013 PostgreSQL extensions as stackable Docker layers"}, {"id": 775672464, "item_id": 48479529, "url": "https://news.ycombinator.com/item?id=48479529", "by": "globular-toast", "date": "2026-06-10", "version": null, "stance": "recommend", "quote": "Have you looked into things like CloudnativePG?", "excerpt": "Have you looked into things like CloudnativePG? https://cloudnative-pg.io/", "context": "", "use_case": "", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775644385, "item_id": 48477774, "url": "https://news.ycombinator.com/item?id=48477774", "by": "tux3", "date": "2026-06-10", "version": null, "stance": "recommend", "quote": "If you use something like CloudNativePG they automate parts of the process with cli tools and declarative syntax.", "excerpt": "Logical replication is how this is typically done. If you have some infra-as-code setup, you create a new cluster with identical settings except for the major version, import the schema, start copying data from a read-replica running the old version, stop accepting writes from the old version (downtime starts), sync the sequence numbers, and point your services to the new cluster (downtime ends). If you use something", "context": "", "use_case": "automate Postgres cluster ops", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 741771426, "item_id": 46360714, "url": "https://news.ycombinator.com/item?id=46360714", "by": "ahachete", "date": "2025-12-22", "version": null, "stance": "warn", "quote": "the split brain that CNPG suffers", "excerpt": "Thank you for your feedback. I'm trying to extract possible improvement actions from your comment, and here are my thoughts. That certificate expiry issue was unfortunate, but was resolved (if I'm not mistaken) a couple of years ago. StackGres is just a control plane, your database is as stable as a standalone one. StackGres itself may fail and it won't affect your database, it's not on the data plane. Indeed, it has", "context": "", "use_case": "", "switched_from": "", "story": "Your Supabase is public if you turn off RLS"}]}], "who": [{"by": "psc007", "context": "runs Postgres on Kubernetes", "url": "https://news.ycombinator.com/item?id=48612858", "date": "2026-06-20"}], "tags": [], "use_cases": ["postgresql on kubernetes", "postgres on kubernetes", "automate postgres cluster ops"], "compared": [{"slug": "postgresql", "name": "PostgreSQL", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "patroni", "name": "Patroni", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "barman", "name": "Barman", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "kubernetes", "name": "Kubernetes", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "longhorn", "name": "Longhorn", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "autobase", "name": "Autobase", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46336947", "title": "Go ahead, self-host Postgres", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=48476466", "title": "PgDog is funded and coming to a database near you", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47948526", "title": "Barman \u2013 Backup and Recovery Manager for PostgreSQL", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46189616", "title": "From Azure Functions to FreeBSD", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50052163", "title": "Postgres isn't slow, your storage is", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49005787", "title": "The startup's Postgres survival guide", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 2, "recommend": 6}, "2026-01": {}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {"recommend": 1}, "2026-05": {"neutral": 2}, "2026-06": {"recommend": 3, "neutral": 1}, "2026-07": {"recommend": 2}, "2026-08": {}, "2026-09": {}, "2026-10": {"recommend": 1}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 800878400, "item_id": 50054900, "url": "https://news.ycombinator.com/item?id=50054900", "by": "smartbit", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "CloudNativePG supports Kubernetes Local Storage as one of its main features", "excerpt": "CloudNativePG supports Kubernetes Local Storage as one of its main features [0] Persistent volume management, including: Support for Local Persistent Volumes with PVC templates. Reuse of Persistent Volumes storage in Pods. Separate volumes for WAL files and tablespaces. Chapter Temporary PostgreSQL Cluster Degradation [1] describes how to set it up and starts with this > While the standard approach ensures service re", "context": "", "use_case": "", "switched_from": "", "story": "Postgres isn't slow, your storage is"}, {"id": 784174112, "item_id": 49010882, "url": "https://news.ycombinator.com/item?id=49010882", "by": "geoka9", "date": "2026-07-22", "version": null, "stance": "recommend", "quote": "why not just use cnpg?", "excerpt": "If you already run k8s, why not just use cnpg? https://github.com/cloudnative-pg/cloudnative-pg", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "The startup's Postgres survival guide"}, {"id": 780055088, "item_id": 48753443, "url": "https://news.ycombinator.com/item?id=48753443", "by": "chatmasta", "date": "2026-07-01", "version": null, "stance": "recommend", "quote": "CloudNativePG uses this for its Image Volume Extensions feature", "excerpt": "Are you aware of extension_control_path? [0] Since PG18 it allows specifying multiple non-$system directories for extension control paths, which makes it easier to adopt composable patterns of extension bundling with immutable images. CloudNativePG uses this for its Image Volume Extensions feature [1]. A lot of the CNPG team worked on contributing this to PG core because previously the only alternative was baking \u201cGo", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Pglayers \u2013 PostgreSQL extensions as stackable Docker layers"}, {"id": 777805728, "item_id": 48612858, "url": "https://news.ycombinator.com/item?id=48612858", "by": "psc007", "date": "2026-06-20", "version": null, "stance": "neutral", "quote": "benchmark my own CNPG on k8s", "excerpt": "Tldr? Can I use this to benchmark my own CNPG on k8s to see if there is improvement to be made on the deployment?", "context": "runs Postgres on Kubernetes", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "PostgresBench: A Reproducible Benchmark for Postgres Services"}, {"id": 775672464, "item_id": 48479529, "url": "https://news.ycombinator.com/item?id=48479529", "by": "globular-toast", "date": "2026-06-10", "version": null, "stance": "recommend", "quote": "Have you looked into things like CloudnativePG?", "excerpt": "Have you looked into things like CloudnativePG? https://cloudnative-pg.io/", "context": "", "use_case": "", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775644385, "item_id": 48477774, "url": "https://news.ycombinator.com/item?id=48477774", "by": "tux3", "date": "2026-06-10", "version": null, "stance": "recommend", "quote": "If you use something like CloudNativePG they automate parts of the process with cli tools and declarative syntax.", "excerpt": "Logical replication is how this is typically done. If you have some infra-as-code setup, you create a new cluster with identical settings except for the major version, import the schema, start copying data from a read-replica running the old version, stop accepting writes from the old version (downtime starts), sync the sequence numbers, and point your services to the new cluster (downtime ends). If you use something", "context": "", "use_case": "automate Postgres cluster ops", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 774397153, "item_id": 48399822, "url": "https://news.ycombinator.com/item?id=48399822", "by": "nastya_geller", "date": "2026-06-04", "version": null, "stance": "recommend", "quote": "Strong plus: CloudNativePG", "excerpt": "Stream (https://getstream.io/) | Staff Database Reliability Engineer - PostgreSQL | Amsterdam or Remote (Europe) | Full-time | Visa Sponsorship Stream runs 35\u201340 PostgreSQL databases (largest: 15TB) behind high-write, high-concurrency APIs serving billions of requests a month. We're migrating from AWS RDS to self-hosted Postgres on Kubernetes and need someone who has owned this end-to-end: query plans, vacuum and blo", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (June 2026)"}, {"id": 767842128, "item_id": 47990133, "url": "https://news.ycombinator.com/item?id=47990133", "by": "mkroman", "date": "2026-05-02", "version": null, "stance": "neutral", "quote": "CloudNativePG also implements support for volume snapshots", "excerpt": "The plugin is specifically for handling backups via object storage. CloudNativePG also implements support for volume snapshots: https://cloudnative-pg.io/docs/1.29/backup#backup-methods", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "Barman \u2013 Backup and Recovery Manager for PostgreSQL"}, {"id": 767799425, "item_id": 47987464, "url": "https://news.ycombinator.com/item?id=47987464", "by": "ninjaoxygen", "date": "2026-05-02", "version": null, "stance": "neutral", "quote": "We use Barman inside Kubernetes via CloudNativePG's plugin", "excerpt": "We use Barman inside Kubernetes via CloudNativePG's plugin, as it is the default backup plugin. Barman has always been solid for backup and restore, however configuring backup in CNPG is a little more interesting - WAL limits need to be set carefully or you just end up filling WAL volumes and the database becoming unavailable.", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "Barman \u2013 Backup and Recovery Manager for PostgreSQL"}, {"id": 766707185, "item_id": 47919199, "url": "https://news.ycombinator.com/item?id=47919199", "by": "vbezhenar", "date": "2026-04-27", "version": null, "stance": "recommend", "quote": "for example cloudnativepg allows you to declaratively describe postgres", "excerpt": "1. Assuming managed service, it frees me from host OS management. So basically the same proposition, as good old \"PHP+MySQL\" hosters. You upload your website, they make sure it works. But without limitations and with much better independence. 2. It allows me to configure everything using standard manifests. I need to provision the cluster itself initially, then everything could be done with gitops of various automati", "context": "", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "Dear friend, you have built a Kubernetes (2024)"}, {"id": 758726689, "item_id": 47420418, "url": "https://news.ycombinator.com/item?id=47420418", "by": "SayThatSh", "date": "2026-03-17", "version": null, "stance": "neutral", "quote": "CloudNativePG operator manages PostgreSQL with automatic failover", "excerpt": "I've realized the mechanics behind the site may not be all that interest to some (and likely disliked by many), so figured I'd share some of the technical details to give a little more 'meat' to the post. The whole thing runs on three used Intel mini PCs (i5-10500T, 16-24GB RAM each) under my desk. k3s cluster with embedded etcd for HA. Total electricity cost is about $11/month. Database: CloudNativePG operator manag", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": null}, {"id": 741771426, "item_id": 46360714, "url": "https://news.ycombinator.com/item?id=46360714", "by": "ahachete", "date": "2025-12-22", "version": null, "stance": "warn", "quote": "the split brain that CNPG suffers", "excerpt": "Thank you for your feedback. I'm trying to extract possible improvement actions from your comment, and here are my thoughts. That certificate expiry issue was unfortunate, but was resolved (if I'm not mistaken) a couple of years ago. StackGres is just a control plane, your database is as stable as a standalone one. StackGres itself may fail and it won't affect your database, it's not on the data plane. Indeed, it has", "context": "", "use_case": "", "switched_from": "", "story": "Your Supabase is public if you turn off RLS"}, {"id": 741540640, "item_id": 46346290, "url": "https://news.ycombinator.com/item?id=46346290", "by": "solatic", "date": "2025-12-21", "version": null, "stance": "recommend", "quote": "CloudNative PG actually gives you really nice dashboards out-of-the-box for free", "excerpt": "> even the metrics that RDS gives you for free make the thing pay for itself, IMO. The thought of setting up grafana to monitor a new database makes me sweat. CloudNative PG actually gives you really nice dashboards out-of-the-box for free. see: https://github.com/cloudnative-pg/grafana-dashboards", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "Go ahead, self-host Postgres"}, {"id": 741530784, "item_id": 46345674, "url": "https://news.ycombinator.com/item?id=46345674", "by": "_rwo", "date": "2025-12-21", "version": null, "stance": "recommend", "quote": "I'm truly impressed - it's a piece of art when it comes to postgres automation", "excerpt": "> So something like pgBouncer together with transactional queries FYI - it's already supported by cloudnativepg [1] I was playing with this operator recently and I'm truly impressed - it's a piece of art when it comes to postgres automation; alongside with barman [2] it does everything I need and more [1] https://cloudnative-pg.io/docs/1.28/connection_pooling [2] https://cloudnative-pg.io/plugin-barman-cloud/", "context": "", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "Go ahead, self-host Postgres"}, {"id": 741402741, "item_id": 46337671, "url": "https://news.ycombinator.com/item?id=46337671", "by": "kachapopopow", "date": "2025-12-20", "version": null, "stance": "recommend", "quote": "PostgreSQL specifically: https://github.com/cloudnative-pg/cloudnative-pg", "excerpt": "since this is on the front page (again?) I guess I'll chime in: learn kubernetes - it's worth it. It did take me 3 attempts at it to finally wrap my head around it I really suggest trying out many different things and see what works for you. And I really recommend starting with *default* k3s, do not look at any alternatives to cni, csi, networked storage - treat your first cluster as something that can spontaniously ", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "Go ahead, self-host Postgres"}, {"id": 741401682, "item_id": 46337605, "url": "https://news.ycombinator.com/item?id=46337605", "by": "franckpachot", "date": "2025-12-20", "version": null, "stance": "recommend", "quote": "", "excerpt": "Be sure to read the \u041c\u0443ths and Truths about Synchronous Replication in PostgreSQL (by the author of Patroni) before considering those solutions as cloud-native high availability: https://www.postgresql.eu/events/pgconfde2025/sessions/session/6559/slides/663/Myths%20and%20Truths%20about%20Synchronous%20Replication%20in%20PostgreSQL.pdf", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "Go ahead, self-host Postgres"}, {"id": 741396130, "item_id": 46337258, "url": "https://news.ycombinator.com/item?id=46337258", "by": "mfalcao", "date": "2025-12-20", "version": null, "stance": "recommend", "quote": "is a great option if you\u2019re using Kubernetes", "excerpt": "The most common way to achieve H\u00c1 is using Patroni. The easiest way to set it up is using Autobase (https://autobase.tech). CloudNativePG (https://cloudnative-pg.io) is a great option if you\u2019re using Kubernetes. There\u2019s also pg_auto_failover which is a Postgres extension and a bit less complex than the alternatives, but it has its drawbacks.", "context": "", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "Go ahead, self-host Postgres"}, {"id": 740380562, "item_id": 46273785, "url": "https://news.ycombinator.com/item?id=46273785", "by": "ahachete", "date": "2025-12-15", "version": null, "stance": "recommend", "quote": "", "excerpt": "Hi, StackGres founder here. We're constantly striving to improve the user experience and the quality of StackGres. Would you mind sharing some feedback as to what made your experience not good with it? Did you join the Slack Community (https://slack.stackgres.io/) to ask if you were facing some trouble? It always helps, even if it is just by sharing your troubles. (If you'd like to share feedback and do so privately,", "context": "", "use_case": "PostgreSQL on Kubernetes", "switched_from": "", "story": "From Azure Functions to FreeBSD"}, {"id": 740167874, "item_id": 46260492, "url": "https://news.ycombinator.com/item?id=46260492", "by": "brikym", "date": "2025-12-13", "version": null, "stance": "neutral", "quote": "I hear the cloud native pg operator is okay though?", "excerpt": "I have a personal project and I used a tiny Azure 'dev/test' postgres database like OP mentioned and it went down for a day with no explanation. Restoring from back ups did not work. Now Auzre have a new DB service in preview called Horizon which I'd hope is more reliable. Before that I used stackgres on kubernetes which was awful. I hear the cloud native pg operator is okay though? Another problem I had was Bitnami ", "context": "", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "From Azure Functions to FreeBSD"}, {"id": 738743009, "item_id": 46171438, "url": "https://news.ycombinator.com/item?id=46171438", "by": "globular-toast", "date": "2025-12-05", "version": null, "stance": "neutral", "quote": "I use Cloud Native Postgres for DBs so I have backups already configured.", "excerpt": "I've been running Immich on my Kubernetes cluster for a few months now. It was one of the harder things to install. I didn't use the \"official\" Helm chart because I didn't like it, instead just set it up myself. I use Cloud Native Postgres for DBs so I have backups already configured. I had to use a special image with vectorchord in it. It auto updates with flux and has been fine. The only time it wasn't fine was whe", "context": "", "use_case": "Postgres on Kubernetes", "switched_from": "", "story": "Self-hosting my photos with Immich"}]}