{"adoption": {"forks": 100, "observed_at": "2026-08-28T04:03:53.175970+00:00", "stars": 1179}, "canonical_url": "https://ross.abutalabs.com/products/kubediff", "card": {"archived": true, "artifact_type": "cli-tool", "description": "Kubediff: a tool for Kubernetes to show differences between running state and version controlled configuration.", "domain": ["developer-tools"], "enriched": true, "function": ["monitoring", "configuration-management", "developer-tools"], "health_score": 10, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["weaveworks/kubediff"], "name": "weaveworks/kubediff", "platform": ["cli", "python"], "pushed_at": "2023-10-24T15:14:24+00:00", "repo": "weaveworks/kubediff", "stars": 1179, "tags": ["gitops", "kubernetes", "drift-detection", "deprecated", "prometheus", "devops", "containers", "docker"], "topics": ["observability", "gitops", "python", "kubernetes"], "urls": [], "use_cases": ["detect configuration drift between git and kubernetes cluster", "verify all kubernetes yaml changes have been applied", "check running k8s state matches version controlled config", "monitor kubernetes config drift with prometheus", "compare kubernetes manifests to live cluster state"], "what_it_is": "Kubediff is a Python CLI tool that compares YAML configuration files in version control against the live state of a Kubernetes cluster, reporting differences. It can also run as an in-cluster service that periodically syncs config from GitHub and exports results to Prometheus with a simple UI.", "when_to_avoid": ["you need a maintained tool - Kubediff is deprecated", "you want full GitOps deployment/sync rather than read-only diffing (use Flux or Argo CD)"], "when_to_choose": ["you want a simple CLI to spot drift between git-stored YAML and a running cluster", "you run a GitOps workflow and want periodic drift checks exported to Prometheus"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kubediff", "repo": "weaveworks/kubediff", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "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:03:53.175970+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:53.175970+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:26:04.504631+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "18efe09c7d29ef7a12cd42a2747d17d707210cbb5f3502b007024987def8303d", "fetched_at": "2026-08-28T04:03:53.175970+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weaveworks/kubediff"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3708, "days_push": 1044, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}