homelab: Images ohne Container sind kein Docker-Update; neuer Kernel heißt Neustart

Nach dem ersten echten „Alle aktualisieren“ (25.09., 8 Schritte grün):
- 9 veraltete Images, die kein Container benutzt (Basis-Images für Builds/CI),
  blieben für immer „neu“ – Arcanes Updater tauscht nur Container. Sie zählen
  jetzt nicht mehr, der Grund nennt sie als Aufräum-Hinweis.
- Proxmox legt bei Kernel-Updates kein /var/run/reboot-required an: 7.0.14-19
  war installiert, 7.0.14-12 lief, kein Neustart-Knopf. Der Ausführer vergleicht
  jetzt den neuesten installierten (oder festgepinnten) Kernel mit dem laufenden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-25 11:46:26 +02:00
co-authored by Claude Opus 5.5
parent 903fbbfbb9
commit 17d4ee3ea8
3 changed files with 57 additions and 0 deletions
+10
View File
@@ -196,6 +196,13 @@ def _arcane_bausteine(basis: str | None, zid: str, gast: dict) -> list[BausteinS
except Exception:
docker.grund = "Arcane verweigert die Auskunft oder antwortet nicht (Schlüssel prüfen)."
else:
# Nur Images, die ein Container benutzt: Arcanes Updater tauscht Container aus. Ein veraltetes Image ohne
# Container (Basis-Images für Builds, CI) bliebe sonst für immer „neu“ (25.09.2026: 9 von 11 nach dem Lauf).
ohne = [i for i in images if not i.get("benutzt")]
images = [i for i in images if i.get("benutzt")]
if ohne:
docker.grund = (f"{len(ohne)} ältere Images ohne Container ({', '.join(i['name'] for i in ohne[:4])}"
+ (" …" if len(ohne) > 4 else "") + ") betreffen nichts; aufräumen in Arcane unter Images.")
if images:
docker.zustand, docker.kurz = "neu", f"{len(images)} Images"
docker.grund = ", ".join(i["name"] for i in images[:6]) + (" …" if len(images) > 6 else "")
@@ -259,6 +266,9 @@ def _host_ziel(host: dict) -> ZielStand:
if host.get("neustart_noetig"):
ziel.bausteine.append(BausteinStand(
id="neustart", name="Neustart", zustand="neu", kurz="steht an",
installiert=host.get("kernel"), verfuegbar=host.get("kernel_neu"),
grund=(f"Neuer Kernel {host['kernel_neu']} ist installiert, es läuft noch {host.get('kernel')}."
if host.get("kernel_neu") else "Ein Update verlangt einen Neustart."),
aktion=Aktion("POST", "/api/homelab/ziele/pve/neustart",
"Den Proxmox-Host jetzt neu starten? ALLE Container und die Arcane-VM sind dann ein paar "
"Minuten weg. Die KI-Box prüft danach von außen, ob alles wiederkommt.",