homelab-forge

← All tasks

TASK-012

a monitoring and alerting system for the forge, capable of sending alert

review

Goal

Deploy a Prometheus + Grafana observability stack on k3s so the operator has portfolio-grade dashboards and declarative alerts when steady-state deployments (Argo CD Applications and their workloads) are unhealthy or the single-node host shows resource pressure. Notifications route to ntfy and Slack via Alertmanager — without modifying host-watch, UFW, or factory task-thread Slack routing (TASK-011).

Acceptance criteria

  • kube-prometheus-stack (Prometheus Operator, Prometheus, Grafana, Alertmanager, kube-state-metrics, node-exporter) deployed via Argo CD Helm Application in a dedicated monitoring namespace; worker does not kubectl apply Argo-managed apps
  • Grafana reachable on HTTPS Ingress (TLS via cert-manager) with admin credentials from Vault via ExternalSecret; at least three provisioned dashboards documented for portfolio use (cluster overview, node resources, workload health)
  • PrometheusRule resources in git encode alert conditions A1–A8 (see plan); firing alerts reach ntfy and a dedicated Slack ops channel through Alertmanager receivers
  • ExternalSecret projects secret/forge/ntfy (existing) and secret/forge/alerts/slack webhook_url into monitoring; no secrets, webhook URLs, or Slack user IDs in git
  • Minimal shell CronJob forge-node-alert in k8s/platform/metrics/alerts.yaml removed or superseded by Prometheus rules; no parallel custom alert checker
  • k8s/platform/metrics/README.md documents Vault bootstrap, Grafana URL, dashboard tour, and operator smoke-test procedure (including safe alert trigger)
  • kubectl kustomize k8s/platform/metrics (and helm values lint/template in CI) passes review; factory/review/CHECKLIST.md completed on the PR
  • After human merge to main, Argo CD syncs metrics overlay and monitoring Application only (ADR-008)
Assignee
worker-localpower
Branch
factory/task-012-a-monitoring-and-alerting-system-for-the
Sandbox
agent-cell
Risk
medium

Artifacts

Agent runs

Message history