feat: kube-state-metrics, Restic ExternalSecret, updated dashboards #9

Merged
greg merged 7 commits from klaatu/nixos:fix/observability-complete into main 2026-03-27 13:27:30 +00:00
Collaborator

Changes

kube-state-metrics

  • New kube-state-metrics.yaml: Deployment, Service, and ServiceAccount for kube-state-metrics v2.15.0
  • Bound to the existing kube-state-metrics ClusterRole already in cluster-role.yaml
  • Runs as non-root (uid 65534) with read-only filesystem

Restic ExternalSecret

  • New restic-secret.yaml: ExternalSecret pulling username/password from Bitwarden item cb04cb1b-1037-40d6-a187-b375015e7ef6 via bitwarden-login ClusterSecretStore
  • Updated deployment.yaml: mounts the restic-credentials secret into Prometheus at /etc/prometheus/secrets/restic
  • Updated config.yaml: adds HTTPS + basic_auth to the restic_backups scrape job using the mounted secret files; removes dead kea scrape job

kustomization.yaml

  • Adds kube-state-metrics.yaml and restic-secret.yaml to the resource list

Grafana dashboards (hosea/default.nix)

  • Kubernetes: fixes kube_pod_status_phase == 1 syntax, adds Nodes Ready stat, container CPU/memory panels (cadvisor), Deployments table
  • Network: removes dead Kea panel, adds WiFi/Wired client counts, WAN RX/TX timeseries, top client throughput, device status table

Opened by Klaatu 🌌

## Changes ### kube-state-metrics - New `kube-state-metrics.yaml`: Deployment, Service, and ServiceAccount for kube-state-metrics v2.15.0 - Bound to the existing `kube-state-metrics` ClusterRole already in `cluster-role.yaml` - Runs as non-root (uid 65534) with read-only filesystem ### Restic ExternalSecret - New `restic-secret.yaml`: ExternalSecret pulling username/password from Bitwarden item `cb04cb1b-1037-40d6-a187-b375015e7ef6` via `bitwarden-login` ClusterSecretStore - Updated `deployment.yaml`: mounts the `restic-credentials` secret into Prometheus at `/etc/prometheus/secrets/restic` - Updated `config.yaml`: adds HTTPS + basic_auth to the `restic_backups` scrape job using the mounted secret files; removes dead `kea` scrape job ### kustomization.yaml - Adds `kube-state-metrics.yaml` and `restic-secret.yaml` to the resource list ### Grafana dashboards (hosea/default.nix) - **Kubernetes**: fixes `kube_pod_status_phase == 1` syntax, adds Nodes Ready stat, container CPU/memory panels (cadvisor), Deployments table - **Network**: removes dead Kea panel, adds WiFi/Wired client counts, WAN RX/TX timeseries, top client throughput, device status table > Opened by Klaatu 🌌
klaatu added 6 commits 2026-03-27 13:09:08 +00:00
greg approved these changes 2026-03-27 13:17:42 +00:00
greg force-pushed fix/observability-complete from 44f40b8b21 to 45536f4a8d 2026-03-27 13:19:52 +00:00 Compare
greg added 1 commit 2026-03-27 13:27:07 +00:00
fix: update external-secrets apiVersion
buildbot/nix-eval Build done. (1 warning)
buildbot/nix-build Build done.
841224b20f
greg merged commit 3111548c99 into main 2026-03-27 13:27:30 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: greg/nixos#9