Skip to content

Kromgo

Purpose

kubernetes/apps/observability/kromgo generates the cluster's status badges (Talos, Kubernetes, Flux, node/pod counts, CPU, memory, power, age, uptime, active alerts, and three Gatus-backed service checks) by evaluating PromQL against kube-prometheus-stack.

Why the chart signature check is scoped per-chart

The OCIRepository's verify.matchOIDCIdentity.subject matches only home-operations/kromgo/.github/workflows/release.yaml, not a broader home-operations/.* pattern covering every chart the org publishes. Each ghcr.io/home-operations/charts/* chart releases from its own repository's release workflow, so there is no shared identity to match against. A regular expression loose enough to cover all of them would let any repository in the organization sign any chart, which defeats the point of checking the signature at all.

This verification (#3632) started as a canary for the pattern, landing on kromgo first because it had just missed riding along with an earlier PR. It has since proven out and extended to six more home-operations chart sources (#3631), including tuppr, miroir and konflate.

Why the connectivity badge uses min()/max()

The Internet, Alertmanager and Grafana badges wrap their gatus_results_endpoint_success query in min() or max() rather than reading the series directly. Gatus currently runs a single replica, so today the wrapper is a no-op, but it means the badges keep working without a query change if Gatus ever scales past one replica and starts producing a per-replica series.

The Internet badge's connectivity group checks reachability to Cloudflare, Google and Quad9's public DNS resolvers.