docs(sesja): inwentaryzacja floty 2026-06-30 + dysk SATURN + safeclean; backlog 23 rozjazdy

This commit is contained in:
Oskar Kapala 2026-06-30 19:56:50 +02:00
parent 229f85bd9b
commit 727cb999ef
2 changed files with 95 additions and 0 deletions

View file

@ -387,3 +387,42 @@ oknem offline (statyczna reguła jest głupia, ale przewidywalna). Uwzględnić
**Na teraz**: targety scrape'owane BEZ polityki alertowej, label tylko `node:`. Prometheus **Na teraz**: targety scrape'owane BEZ polityki alertowej, label tylko `node:`. Prometheus
gromadzi historię. Anomaly detection = osobny świadomy projekt później (CC, z testami). gromadzi historię. Anomaly detection = osobny świadomy projekt później (CC, z testami).
---
## Rozjazdy repo<->rzeczywistosc (z inwentaryzacji 2026-06-30)
**Zrodlo**: `docs/infra/inventory-2026-06-30.md` (23 rozjazdy, pelna tabela tam).
Ponizej te wymagajace akcji, pogrupowane wg ryzyka. Naprawa = osobny task/kilka.
### Grupa A — czyste docs, zero ryzyka
- **forgejo** `service.yaml owner_node`: saturn -> piha (biega na PIHA always-on)
- **mosquitto** `service.yaml owner_node`: piha -> vps (biega na VPS, nie na PIHA)
- **capabilities SATURN**: RAM 8 -> 14GiB; dysk sd-card 64GB -> /dev/sda 159GB
- **capabilities SOLARIA**: CPU 24 -> 32 nproc
- **`hosts/saturn/services.yaml`** nie istnieje — 5 kontenerow bez deklaracji
- **`hosts/vps/services.yaml`** niekompletne (4 z 9 z topology); **solaria** tez (brak planner-agent)
### Grupa B — wymaga decyzji
- **npm x2**: PIHA (LAN ingress :80/:443) + VPS (public). Repo zna jedna (owner=vps).
Decyzja: zostawic oba (intentional, wildcard cert via NPM@PIHA) czy usunac PIHA?
Jesli oba zamierzone -> dodac piha do service.yaml + hosts/piha.
- **control-plane na SATURN**: biega (control-plane-ui UNHEALTHY) obok VPS. Repo zna tylko VPS.
Decyzja: dev-instance czy pomylka? Usuniecie odzyska zasoby + zlikwiduje UNHEALTHY.
- **ollama**: `service.yaml owner=solaria` ale NIE biega. Wdrozyc czy wyrzucic z repo?
### Grupa C — sprzatanie
- **control-plane-ui healthcheck**: uzywa `curl` ktorego NIE MA w obrazie -> failuje w
kolko -> UNHEALTHY + log spam (4.2G syslog na SATURN). Fix: wget/nc w healthcheck
albo curl w Dockerfile. (Przyczyna rozjazdu #6 znaleziona przy gaszeniu dysku.)
- **homeassistant5 na PIHA** (HA "ken" :8123) niedeklarowany -> dodac do hosts/piha + topology
- **VPS**: outline-postgres-1 anonimowy image (4e6e670bb069) -> named tag;
joplin-db postgres:18 (pre-release) -> postgres:17/16; humanai-landing/mailer/umami do repo
- **PIHA: 33 shadow kontenery** poza GitOps (immich, vaultwarden, wikijs, actual,
audiobookshelf, elasticsearch, grafana, prom, portainer, code-server, diskover...)
-> audyt + stopniowo do hosts/piha/services.yaml
- **zigbee2mqtt** topology mowi chelsty-infra, biega na PIHA -> poprawic topology
- **stability-agent / node_exporter** owner_node single, biegaja wielomiejscowo -> per-host
### Tech debt SATURN (z gaszenia dysku 2026-06-30)
- **`/opt/anaconda3` 16G** — najwiekszy pojedynczy zjadacz dysku (env-y Pythona). Decyzja Oskara kiedy/czy czyscic.
- Dysk 91% -> 83% ugaszone (docker prune + journal + syslog), ale `/home` zaszyfrowany
i ciasny strukturalnie. SATURN dzwiga dev + drugi control-plane + agent-webui — napiecie.

View file

@ -0,0 +1,56 @@
# Sesja 2026-06-30 — Inwentaryzacja floty + gaszenie dysku SATURN
## Cel
Pełna inwentaryzacja floty (repo↔rzeczywistość) jako fundament przed dalszą
architekturą dokumentów KB. Start od weryfikacji stanu faktycznego wszystkich nodów.
## Zrobione
### Inwentaryzacja floty (główna robota)
- CC (Sonnet 4.6) w worktree `fleet-inventory` zebrał stan faktyczny (docker ps +
free/df/nproc) z 4 dostępnych nodów: PIHA, VPS, SOLARIA, SATURN. LUSTRO+CHELSTY
offline (timeout :22) -> oznaczone UNREACHABLE.
- Wynik: `docs/infra/inventory-2026-06-30.md` — 23 zpriorytetyzowane rozjazdy.
- Kluczowe ustalenia:
- **forgejo** biega na PIHA (always-on), ale `service.yaml owner_node=saturn` — rozjazd
- **mosquitto** biega na VPS, `service.yaml owner=piha`, na PIHA go nie ma
- **npm** — dwie instancje: PIHA (LAN ingress :80/:443) + VPS (public); repo zna jedna
- **homeassistant5** na PIHA (HA "ken", :8123) niedeklarowany w repo
- **control-plane** biega na VPS (healthy) I SATURN (control-plane-ui UNHEALTHY)
- **PIHA: 40 kontenerow, ~6 w GitOps, 33 "shadow" poza repo** (immich, vaultwarden,
wikijs, actual, audiobookshelf, elasticsearch, grafana, prom, portainer...)
- capabilities nieaktualne: SATURN RAM 8->14GiB, dysk 64->159GB; SOLARIA CPU 24->32
- ollama zadeklarowana (owner=solaria) ale NIE biega
### Gaszenie dysku SATURN (pilne — ugaszone)
- SATURN dysk 91% (15G wolne) = jedyne realne ryzyko awarii.
- `docker image prune -a -f` -> +4.1G (k3s/k3d sprzed 4 lat, stary HA 2.3G, postgresy)
- `journalctl --vacuum-size=200M` -> +3.7G
- `rm syslog.1 + rotacje` -> +4.2G
- Wynik: **91% -> 83%** (27G wolne), poza strefa ryzyka.
- Bonus diagnostyczny: przyczyna `control-plane-ui UNHEALTHY` = healthcheck uzywa
`curl`, ktorego NIE MA w obrazie -> failuje w kolko -> log spam (4.2G syslog).
- `/opt/anaconda3` 16G = najwiekszy pojedynczy zjadacz dysku (env-y Pythona, decyzja Oskara).
### safeclean.sh — 3 bugi naprawione (repo ubuntu-scripts, osobne)
- BUG #1: dry-run pokazywal reclaimable z `docker system df` (bez filtra), a apply
prune'owal z `--filter until=168h` -> dry-run obiecywal 4.8G, apply robil 0B. Fix:
dry-run pokazuje teraz realny reclaim z filtrem + tip o `--docker-all`.
- BUG #2: `du` podwojnie liczyl eCryptfs home -> warning dodany.
- BUG #3: rotated rsyslog (`syslog.1` 4.2G) byl poza zakresem -> dodana kategoria
"rotated system logs" (kasuje tylko zrotowane, nigdy aktywne).
- Commit `37233f0` na main (ubuntu-scripts).
## Nastepna sesja — naprawa 23 rozjazdow (pogrupowana)
- **Grupa A** (czyste docs, zero ryzyka): capabilities SATURN/SOLARIA, forgejo
owner_node->piha, mosquitto->vps, brakujace `hosts/saturn/services.yaml`
- **Grupa B** (wymaga decyzji): npm x2 (zostawic oba czy usunac PIHA?), control-plane
na SATURN (dev-instance czy usunac? + healthcheck curl fix), ollama nie biega
- **Grupa C** (sprzatanie): postgres:18->17, anonimowy outline-postgres image,
humanai/umami do repo, audyt 33 shadow kontenerow PIHA
## Watek wstrzymany (z poprzedniej sesji)
Architektura dokumentow KB — decyzje zamkniete (SSO=Forgejo-OIDC, ingress LAN-only,
archiwum hybryda Nextcloud-kopia/Paperless-referencja), host OTWARTY (PIHA ~0.5G wolne
RAM -> Nextcloud sie nie zmiesci). Wrocic po naprawie rozjazdow — inwentaryzacja
potwierdzila ze PIHA przeciazona (40 kontenerow), wiec host dokumentow wymaga decyzji.