fix: automate verified Unraid update workflows
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# Automatischer Unraid-Docker-Updateablauf
|
||||
|
||||
Stand: 24. August 2026
|
||||
|
||||
## Ziel
|
||||
|
||||
Ein ausdrücklich formulierter Auftrag wie „prüfe die Docker-Updates auf Unraid,
|
||||
führe bestätigte Updates aus und kontrolliere das Ergebnis“ muss in Open WebUI
|
||||
ohne manuelles Aktivieren von Werkzeugen vollständig ablaufen.
|
||||
|
||||
## Automatische Werkzeugwahl
|
||||
|
||||
Der `MikeAI Auto Tool Selector` unterscheidet zwischen Lesen und Ändern:
|
||||
|
||||
- reine Status- oder Updatefragen erhalten nur `mua-readonly-local`;
|
||||
- eine in der aktuellen Nachricht ausdrücklich verlangte Unraid-Änderung erhält
|
||||
`mua-readonly-local` und `mua` gemeinsam;
|
||||
- Formulierungen wie „nur prüfen“ oder „keine Änderungen“ unterdrücken den
|
||||
Verwaltungszugang;
|
||||
- die bereitgestellten Verbindungen sind keine allgemeine Freigabe. Der Auftrag
|
||||
muss die konkrete Änderung selbst enthalten.
|
||||
|
||||
Der vorgesehene Ablauf lautet immer:
|
||||
|
||||
1. Zustand und Kandidaten read-only erfassen.
|
||||
2. Die engste gebündelte Änderung ausführen.
|
||||
3. Das Ergebnis read-only oder durch die gebündelte technische Verifikation
|
||||
kontrollieren.
|
||||
|
||||
## Verbindliches Batch-Werkzeug
|
||||
|
||||
MUA r019 stellt `unraid_docker_update_verified_batch` bereit. Das Werkzeug
|
||||
akzeptiert 1 bis 25 exakte, mit `|` getrennte Containernamen.
|
||||
|
||||
Für jeden Container liest es zunächst Container-ID, Image-ID und Laufzustand.
|
||||
Danach zieht es das im Unraid-Benutzertemplate konfigurierte Image und
|
||||
vergleicht die unveränderliche lokale Image-ID. Bereits aktuelle Container
|
||||
werden vollständig übersprungen – auch wenn Unraids Statuscache noch ein Update
|
||||
meldet. Nur bei tatsächlich geänderter Image-ID wird neu erstellt. Laufend
|
||||
bleibt laufend, gestoppt bleibt gestoppt.
|
||||
|
||||
Die kompakte Nachkontrolle enthält Container- und Image-ID-Änderung,
|
||||
Endzustand, RestartCount und Healthcheck-Status. Templates, Ports, Volumes und
|
||||
Netzwerke werden nicht verändert. Eine vorhandene Freigabe des bisherigen
|
||||
Einzelwerkzeugs `unraid_docker_update` aktiviert nach dem Upgrade automatisch
|
||||
auch die sicherere Batch-Variante.
|
||||
|
||||
## Idempotenz
|
||||
|
||||
Der Cache `/var/lib/docker/unraid-update-status.json` ist nur ein
|
||||
Kandidatenhinweis. Er darf nie allein eine Neuerstellung auslösen. Autoritativ
|
||||
ist der Image-ID-Vergleich nach dem Pull.
|
||||
|
||||
Ein wiederholter Lauf muss bei einem aktuellen Image folgendes melden:
|
||||
|
||||
```text
|
||||
result: already-current
|
||||
recreated: false
|
||||
container_id_changed: false
|
||||
image_id_changed: false
|
||||
```
|
||||
|
||||
## Produktiver Regressionstest vom 24. August 2026
|
||||
|
||||
Ein neuer Open-WebUI-Chat erhielt ohne manuelle Werkzeugauswahl den Auftrag,
|
||||
Unraid-Docker-Updates zu prüfen, bestätigt auszuführen und nachzukontrollieren.
|
||||
|
||||
- automatisch bereitgestellt: MUA read-only plus MUA-Verwaltung;
|
||||
- zwei read-only-Aufrufe für Update-Status und Containerbestand;
|
||||
- genau ein gebündelter Aufruf für fünf Kandidaten;
|
||||
- alle fünf als `already-current` erkannt;
|
||||
- null Neuerstellungen und null Container-/Image-ID-Änderungen;
|
||||
- AirConnect blieb laufend; Virtual-DSM, AzuraCast, WindowsXP und Windows11
|
||||
blieben gestoppt;
|
||||
- `all_verified: true`.
|
||||
|
||||
Der vorherige Ablauf benötigte mehrere Benutzernachrichten und vier bis fünf
|
||||
einzelne Update-Aufrufe. Dieser Pfad ist ersetzt.
|
||||
|
||||
## Recovery-Prüfung
|
||||
|
||||
1. MUA-Health muss r019 oder neuer melden.
|
||||
2. Open WebUI muss den Auto Tool Selector 3.3.0 oder neuer enthalten.
|
||||
3. „Gibt es Docker-Updates auf Unraid? Nur prüfen“ darf nur MUA read-only
|
||||
bereitstellen.
|
||||
4. Ein ausdrücklich schreibender synthetischer Auftrag muss beide MUA-Zugänge
|
||||
bereitstellen und das Batch-Werkzeug wählen.
|
||||
5. Ein Wiederholungstest mit aktuellem Image darf keine Neuerstellung auslösen.
|
||||
|
||||
Reference in New Issue
Block a user