[Vision/Konzept] Generic-Host-Agent: Nicht-Proxmox-Hosts (NAS/Standalone) ins System aufnehmen #190
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Status: KONZEPT / Planung (Vision-Epic) — später bauen
Ziel: Hosts ins System aufnehmen, die NICHT über einen Proxmox-Host laufen (NAS, Raspi, Standalone-Linux-Server, Switch mit Linux …). Eigener schlanker Generic-Host-Agent mit vollem Funktionsumfang (Monitoring + Updates + Reboot + Command-Ausführung + Docker-Management).
Warum das ein Architektur-Schritt ist (nicht nur ein Feature)
Heute gibt es zwei Agent-Typen, beide an Proxmox gebunden:
Ein NAS passt in keinen: kein PVE-Host "darüber" zum Relayen, selbst kein Hypervisor. → dritter Agent-Typ nötig.
Designentscheidung (getroffen)
Eigener schlanker
theprox-host-agent(separat vom Node-Agent), NICHT Node-Agent-Umbau, NICHT Relay.Verbindung — wiederverwendet die schon gehärtete Strecke
Verbindet direkt zum Backend wie der Node-Agent (kein Relay). Nutzt dieselbe Maschinerie:
Das ist die einfache Hälfte — die Strecke existiert bereits.
Funktionsumfang (voll)
collect/mod.rsdocker/compose_check/update) → wiederverwenden, nicht neu schreiben. (Profitiert vom Multi-Arch-Digest-Fix #91.)KERN-AUFWAND: Backend-Modell + UI müssen "Host ohne Gäste" können
Auch mit separatem Agent bleibt Backend/UI-Arbeit unvermeidbar:
Node.kind(neu):proxmox|generic_host(Default proxmox; Migration). Es gibt KEIN Typ-Feld heute.generic_hosthat keine VMs/CTs — Telemetrie-Ingest, Scheduler-Kandidaten (#174), Bulk-Update (#123) müssen das sauber behandeln (kein VM-Scan, keine VM-Liste).kindunterschiedlich rendern.Wichtig: gemeinsames Rust-Crate ZUERST (sonst Code-Duplikation)
Es gibt keinen Cargo-Workspace; Node-/VM-/Win-Agent duplizieren bereits Logik (WS-Client, run_cmd, collect/docker, künftig auth/identity #185, transport #187, self-update). Ein vierter Agent würde das verschärfen.
→ Voraussetzung/Begleit-Arbeit: gemeinsame Bausteine in ein shared crate (Cargo-Workspace) ziehen — WS/Reconnect, ed25519-Identity+Handshake, Transport-Validierung, Self-Update, run_cmd, Docker-Collect. Host-Agent UND Node-Agent nutzen es. (Das war schon im Struktur-Review als Schwäche notiert.)
Offene Punkte (vor dem Bau zu klären)
host_metrics/docker/updates) als gemeinsame Basis?theprox-host-agent, systemd-Unit, Pfade.Bezug
#68 (Hypervisor-Abstraktion — verwandt), Struktur-Review (Rust-Workspace/shared crate), #185/#187/#189 (Auth/Transport — wiederverwendet), #117 (Allowlist), #91 (Docker-Digest), #94 (NodeCard-Rendering), #123/#174 (VM-Annahmen entkoppeln).
NICHT JETZT
Reines Konzept. Bau erst nach Priorisierung; Voraussetzung ist das shared crate.