{"adoption": {"forks": 210, "observed_at": "2026-08-28T04:05:34.354722+00:00", "stars": 1774}, "canonical_url": "https://ross.abutalabs.com/products/openelb", "card": {"archived": false, "artifact_type": "service", "description": "Load Balancer Implementation for Kubernetes in Bare-Metal, Edge, and Virtualization", "domain": ["networking", "cloud-computing", "infrastructure-as-code", "self-hosted"], "enriched": true, "function": ["networking", "deployment", "cloud", "container-orchestration"], "health_score": 41, "homepage": "https://openelb.io", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["openelb/openelb"], "name": "openelb/openelb", "platform": ["go", "self-hosted"], "pushed_at": "2025-05-26T13:37:27+00:00", "repo": "openelb/openelb", "stars": 1774, "tags": ["load-balancer", "bgp", "bare-metal", "kubernetes", "edge", "k3s", "cncf", "ecmp", "ipam", "containers", "linux", "docker"], "topics": ["kubernetes", "load-balancer", "lb", "baremetal", "bare-metal", "k3s", "edge"], "urls": [], "use_cases": ["expose kubernetes loadbalancer services on bare metal", "run load balancer for k3s cluster without cloud provider", "announce kubernetes service IPs via BGP to border routers", "manage external IP address pools for kubernetes services", "replace metallb for loadbalancer services on-premise", "provide external access to services in edge or virtualized clusters"], "what_it_is": "OpenELB is an open-source load balancer implementation for exposing Kubernetes LoadBalancer-type Services in bare-metal, edge, and virtualization environments. It supports BGP and Layer 2 modes, ECMP routing, IP address pool management, and BGP configuration via CRDs, and is a CNCF Sandbox project originally created by KubeSphere.", "when_to_avoid": ["your cluster runs in a cloud with a native cloud load balancer provider", "you need a general-purpose reverse proxy or ingress controller rather than LoadBalancer Services", "you require a fully mature, graduated CNCF project with long-term commercial support"], "when_to_choose": ["you run Kubernetes or K3s on bare metal, edge, or virtualization where cloud load balancers are unavailable", "you want BGP or Layer 2 announcement of Service IPs with ECMP support", "you want CRD-based BGP configuration and IP pool management", "you use KubeSphere and want seamless LoadBalancer integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openelb", "repo": "openelb/openelb", "role": "main", "score": 33}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "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:05:34.354722+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.354722+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:25:23.924452+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9d7f736771a8218853c32f51909b930861c41b18f2ff32d398429ff16037b40", "fetched_at": "2026-08-28T04:05:34.354722+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openelb/openelb"}, {"content_hash": "e93a4d8de24b41b64182167bb89d814276b74b122294ec5cf3b2e5d2ff7edc28", "fetched_at": "2026-08-29T11:03:58.481558+00:00", "kind": "homepage", "missing": false, "url": "https://openelb.io"}, {"content_hash": "0e44aa7c0503ec352639e790a966d19e62ff8e7ebf356b630f6ccdedfff4ae4c", "fetched_at": "2026-08-29T11:03:58.483870+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/about"}, {"content_hash": "8ef598067711c6c523c76317d9289cd5c200223c7589385fa4efc10508b6fab5", "fetched_at": "2026-08-29T11:03:58.485534+00:00", "kind": "site_page", "missing": false, "url": "https://openelb.io/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 23, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2771, "days_push": 464, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 33, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}