{"adoption": {"forks": 1067, "observed_at": "2026-08-28T04:09:13.252826+00:00", "stars": 5225}, "canonical_url": "https://ross.abutalabs.com/products/postgres-operator-with-spilo", "card": {"archived": false, "artifact_type": "infra-config", "description": "Postgres operator creates and manages PostgreSQL clusters running in Kubernetes", "domain": ["databases", "cloud-computing", "self-hosted"], "enriched": true, "function": ["database", "deployment", "container-orchestration", "backup", "configuration-management"], "health_score": 99, "homepage": "https://postgres-operator.readthedocs.io/", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["zalando/postgres-operator", "zalando/spilo"], "name": "Postgres Operator (with Spilo)", "platform": ["go", "cloud", "self-hosted"], "pushed_at": "2026-08-20T17:28:42+00:00", "repo": "zalando/postgres-operator", "stars": 5225, "tags": ["postgres-operator", "postgresql", "patroni", "spilo", "high-availability", "database-as-a-service", "kubernetes-operator", "crd", "infrastructure-as-code", "zalando", "devops", "containers", "kubernetes", "docker"], "topics": ["kubernetes", "postgresql", "operator", "golang", "postgres", "cluster", "managed-services", "data-infrastructure", "postgres-operator", "database-as-a-service"], "urls": [], "use_cases": ["run highly available PostgreSQL clusters on Kubernetes", "manage Postgres clusters declaratively with CRD manifests", "automate rolling updates and minor version upgrades of Postgres", "restore or clone Postgres clusters from S3, GCS, or Azure backups", "set up point-in-time recovery with WAL-G or pg_basebackup", "run a managed Postgres service in-house without manual DBA operations", "deploy standby Postgres clusters from WAL archives", "manage database users and credentials from Kubernetes"], "what_it_is": "A Kubernetes operator (with the Spilo Docker image) that creates and manages highly-available PostgreSQL clusters on Kubernetes, powered by Patroni. Clusters are declaratively configured via Postgres CRD manifests, enabling infrastructure-as-code workflows and CI/CD integration.", "when_to_avoid": ["you run Postgres on VMs or bare metal rather than Kubernetes", "you need a fully managed database service and prefer cloud offerings like RDS or Cloud SQL", "your team cannot operate Kubernetes CRDs and operators or lacks Kubernetes expertise", "you need a database other than PostgreSQL"], "when_to_choose": ["you run PostgreSQL on Kubernetes and want automated failover, replication, and self-healing via Patroni", "you want GitOps/CI/CD-driven database provisioning through manifests instead of manual kubectl operations", "you need built-in backups, PITR, cloning, and volume resizing on cloud storage like EBS, S3, GCS, or Azure", "you want a battle-tested, production-proven operator with a UI and OpenShift compatibility"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/zalando/postgres-operator", "repo": "zalando/postgres-operator", "role": "main", "score": 94}, {"path": "/repos/zalando/spilo", "repo": "zalando/spilo", "role": "infra", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:13.252826+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:59:41.346092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "acd2d6d777f48f2ab5d7d59b06d6455a24f1e5227af36781d24ffcba1e67af60", "fetched_at": "2026-08-28T04:09:13.252826+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zalando/postgres-operator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3400, "days_push": 13, "days_rel": 13, "gap_med": 57, "n_releases_24m": 6}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}