Repository navigation
Description
🤖 Generated by the Agentic Engineer
Evidence
The two Coroot profiles (k8s/clusters/{local,prod}-coroot) already drop Loki, Alloy and OpenCost (#96, #81). They still ship kube-prometheus-stack in full, because the infrastructure-controllers-coroot overlays include ../infrastructure/controllers/ and no component removes it. scripts/validate-observability-option.sh asserts this on purpose. Watchdog, FluxHelmReleaseNotReady and the platform-critical metric rules still run on Prometheus and Alertmanager.
So a platform started from a Coroot profile gets two observability UIs today: Coroot, and Grafana plus the Prometheus and Alertmanager web UIs. The second set is published through HTTPRoutes, the auth proxy, a Dex redirect and a Grafana OIDC secret.
Audience and problem
People who create a platform from this template and pick Coroot. They get a second set of dashboards the reference platform no longer runs, and three extra sign-in-protected endpoints to secure and maintain.
Hypothesis
Removing only the UI and ingress surfaces from the Coroot profiles leaves one observability UI, with no change to alerting. The alert engines and CRDs stay in place until later slices move their rules.
Smallest useful change
A k8s/components/observability-coroot/remove-kps-ui/ component, wired into both infrastructure-controllers-coroot overlays and following the remove-controllers-loki-alloy pattern. It:
- disables Grafana in the kube-prometheus-stack HelmRelease;
- deletes the grafana, prometheus and alertmanager HTTPRoutes;
- removes the auth-proxy routers and services for prometheus and alertmanager, using test-then-remove;
- deletes the
grafana-oidcExternalSecret; - removes the Dex redirect URI for Grafana.
Acceptance criteria
- The Coroot renders contain none of those routes, auth-proxy entries, the
grafana-oidcExternalSecret or the Dex Grafana redirect. The default renders still contain each of them exactly once. - The kube-prometheus-stack HelmRelease still renders with Watchdog on the
heartbeatreceiver, and theFluxHelmReleaseNotReadyrule is still kept (the existingassert_watchdog_enabledandassert_legacy_flux_alert_deduplicatedchecks pass). -
scripts/validate-observability-option.shasserts the removals, and its doc-phrase checks match the updateddocs/TEMPLATING.mdanddocs/dr/alerting.md. - The default profiles render byte-identical, and
validate-scaffoldis green.
Later slices (not this issue)
- Move
FluxHelmReleaseNotReadyto a FluxAlert. - Give the remaining
platform-criticalrules Coroot parity, or delete them. - Replace Watchdog with the cluster heartbeat alone.
- Remove the Tetragon ServiceMonitors and the CRDs.
- Delete the release and the
monitoringnamespace, together with its network-policy, policy-exception, secret and homepage references.
Size: M.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Start date
Target date
Effort
Projects
- StatusShow more project fields✅ Done
Activity
chore: agent-claim #202 nonce=73dae1c1ef4ed3f15778bab3263f2dc5