Rozstrzygniecie 1. Monolit mieszal cztery typy OKF. Rozbity PER TYP po
granicy sekcji `##`:
10 x decision — pozycje backlogu (w tym backlog-aktywne 28 KB
i backlog-zamkniete 12 KB, ktore zostaja calosciami)
7 x incident — bugi/awarie dotad wtopione w backlog: cutover HA ken,
checkpoint observera, ha-diag-agent node=unknown,
deploy-local ghost-kontenery, paperless-worker config,
deploy-node nie przebudowuje obrazu, ollama bez sterownika
2 x phase — HA configs-as-code, monitoring floty Prometheus
kb/phases/backlog.md zostaje jako cienki indeks (type: phase, status: active):
oryginalna preambula + wygenerowany spis linkow do wszystkich 19 elementow.
23 przychodzace odwolania zostaja przepiete na ta sciezke w grupie 7.
NIE rozbijano po `###` (38 pozycji w "Aktywne" + 13 w "Zamkniete" = 51
plikow). Rozstrzygniecie mowi "rozbij per typ", a nie per pozycja;
rozdrobnienie do 51 plikow rozerwaloby czytelnosc backlogu.
Kontrola: preambula + 19 sekcji == oryginal z HEAD (multizbior niepustych
linii). Tresc pozycji nietknieta.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
44 lines
2.2 KiB
Markdown
44 lines
2.2 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: decision
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-08-03
|
|
links:
|
|
- ../phases/backlog.md
|
|
---
|
|
|
|
## Tech-debt: globalny porządek uid/gid/uprawnień we flocie (2026-07-10)
|
|
|
|
**Diagnoza.** Flota NIE ma spójnej mapy uid/gid. "oskar" ma różne uid per host
|
|
(PIHA: 1004, inne hosty: prawdopodobnie 1000/inne). Kontenery agentów zakładają
|
|
uid 1000 (user "homelab"). Bind-mounty przenoszą SUROWE uid (nie nazwy) między
|
|
hostem a kontenerem → gdy uid hosta ≠ uid zakładany przez kontener, pliki stają
|
|
się "cudze" i wybucha cicha awaria (klucz nieczytelny, rsync nie tworzy plików,
|
|
socket permission denied). To NIE są przypadki — to systemowy brak kanonicznej
|
|
mapy uid/gid.
|
|
|
|
**Historia incydentów (dowód że systemowe):**
|
|
- 2026-07-10: node-agent PIHA (uid 1000 homelab) montował /home/oskar/.ssh (pliki
|
|
uid 1004) → "Load key id_rsa: Permission denied" → rsync padał → 21 dni bez
|
|
eventów (wykryte przez shadow-read). Fix: dedykowany /opt/homelab/agent-ssh
|
|
chown 1000.
|
|
- Wcześniej: oskar spoza grupy `aerbot` na VPS → rsync push nie tworzył plików →
|
|
brak cleanup → 8-dniowa cicha awaria floty. Fix: usermod -aG aerbot oskar.
|
|
- 2026-07-10 (świeże, PENDING): node-agent PIHA "Docker unavailable: PermissionError(13)"
|
|
po recreate — agent nie czyta /var/run/docker.sock (grupa docker/uid). Osobny od
|
|
shippingu (nie blokuje eventów), ale ten sam rodzaj problemu — do naprawy
|
|
(grupa docker w kontenerze / gid socketu).
|
|
- LUSTRO uid pi=1000 vs PIHA oskar=1004 — różne uid "pierwszego usera" per host.
|
|
|
|
**Kierunek naprawy (do rozważenia, osobny projekt):**
|
|
- Ustalić KANONICZNE uid/gid per rola: agent=1000 wszędzie; dedykowane grupy dla
|
|
współdzielonych zasobów (aerbot dla events/rsync-sink na VPS, docker dla socketu).
|
|
- Audyt `id <user>` na KAŻDYM hoście floty (saturn/solaria/piha/vps/lustro) —
|
|
zmapować realne uid/gid, udokumentować rozjazdy.
|
|
- Rozważyć deklaratywny zapis oczekiwanych uid/gid w hosts/*/host.yaml lub
|
|
capabilities.yaml (żeby deploy mógł weryfikować/wymuszać spójność).
|
|
- Agenci NIE powinni montować prywatnego .ssh użytkownika — zawsze dedykowany
|
|
katalog z własnym kluczem pod właściwym uid (wzorzec z fixa 2026-07-10).
|
|
|