Observability Local PersistentVolumes
This kustomization reserves six workload-specific Local PV binding contracts on
the root SSD. Each owner has a dedicated kubernetes.io/no-provisioner
StorageClass with WaitForFirstConsumer, Retain, and volume expansion
disabled. Every PV is ReadWriteOnce, retains its data after claim deletion,
and is affined to donghyeon-system-product-name.
| Owner | Host path | Capacity | StorageClass | Directory owner |
|---|---|---|---|---|
| Prometheus | /srv/k3s/ssd/observability/prometheus |
20Gi |
ssd-local-observability-prometheus-retain |
1000:2000 |
| Grafana | /srv/k3s/ssd/observability/grafana |
2Gi |
ssd-local-observability-grafana-retain |
472:472 |
| Alertmanager | /srv/k3s/ssd/observability/alertmanager |
1Gi |
ssd-local-observability-alertmanager-retain |
1000:2000 |
| Alloy | /srv/k3s/ssd/observability/alloy |
2Gi |
ssd-local-observability-alloy-retain |
473:473 |
| Loki | /srv/k3s/ssd/observability/loki |
5Gi |
ssd-local-observability-loki-retain |
10001:10001 |
| Tempo | /srv/k3s/ssd/observability/tempo |
5Gi |
ssd-local-observability-tempo-retain |
10001:10001 |
The declared 35 GiB is a Kubernetes binding contract, not an ext4 directory quota. Project quota is not active. All six directories share root-filesystem free space, so the later operational protections remain mandatory:
- Prometheus
retentionSize=16GBis not a whole-filesystem cap and does not cap WAL plus head data. - Loki's 512 MB setting limits WAL replay RAM; it is not a disk quota.
- Loki
disk_full_threshold=0.90usesStatfson the WAL filesystem. - Tempo 2.10.7 has no WAL byte limit or disk-full guard.
- Root-filesystem 75%, 85%, and 90% alerts, apply/smoke
duanddfcaps, and acceptance of the root-90%-full ingest-stop runbook are still required.
Run bash scripts/bootstrap/prepare-observability-local-paths.sh to inspect the
read-only plan. The separately confirmed --execute mode prepares the exact
paths at mode 0770; it does not apply Kubernetes resources.