{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:04:01.151108+00:00", "stars": 1215}, "canonical_url": "https://ross.abutalabs.com/products/kudo", "card": {"archived": false, "artifact_type": "framework", "description": "Kubernetes Universal Declarative Operator (KUDO)", "domain": ["cloud-computing", "infrastructure-as-code", "developer-tools", "microservices"], "enriched": true, "function": ["deployment", "infrastructure-as-code", "configuration-management", "cli", "workflow-automation"], "health_score": 20, "homepage": "https://kudo.dev", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["kudobuilder/kudo"], "name": "kudobuilder/kudo", "platform": ["go", "cli", "cloud", "self-hosted"], "pushed_at": "2023-08-22T07:57:43+00:00", "repo": "kudobuilder/kudo", "stars": 1215, "tags": ["kubernetes-operator", "operator-framework", "crd", "declarative", "application-lifecycle", "cncf", "stateful-applications", "devops", "containers", "kubernetes", "docker"], "topics": ["kubernetes", "cncf", "kubernetes-operator", "kubernetes-controller", "kafka", "mysql", "zookeeper", "operator", "sdk", "crd", "kudo", "kubernetes-community", "maestro", "cluster", "hacktoberfest"], "urls": [], "use_cases": ["build a kubernetes operator without writing go code", "deploy kafka on kubernetes with automated lifecycle management", "manage stateful applications like zookeeper or mysql on kubernetes", "declaratively define install, upgrade, and backup plans for cluster apps", "package and version operators for reuse across kubernetes clusters"], "what_it_is": "KUDO (Kubernetes Universal Declarative Operator) is a framework and CLI for building production-grade Kubernetes operators declaratively, covering the full application lifecycle without writing Go controller code. Operators are defined via CRDs and declarative YAML plans, with packaged operators available for systems like Kafka, Zookeeper, and MySQL.", "when_to_avoid": ["you need a rapidly evolving, actively developed operator toolkit - the project's latest release is from 2023 and development has slowed", "you prefer the mainstream operator-sdk or meta-operator approaches with larger current communities", "you only need simple helm-based deployments without operator-level lifecycle automation"], "when_to_choose": ["you want to create kubernetes operators declaratively instead of writing controller code in go", "you need lifecycle management (install, upgrade, backup, failover) for stateful software on kubernetes", "you want a packaged operator ecosystem for common systems like kafka or mysql"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kudo", "repo": "kudobuilder/kudo", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "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:04:01.151108+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.151108+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:17:16.768566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7bf32fef50f75dbe6d60f178a652e365398535e2e1bc34bb4ba6e46cb0fd43d3", "fetched_at": "2026-08-28T04:04:01.151108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudobuilder/kudo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 2842, "days_push": 1107, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}