Bezugsweg als Schalter, schlankes "Image holen", up holt selbst

Drei zusammenhaengende Vereinfachungen aus der Bedienung heraus:

1. CMK_IMAGE_SOURCE bestimmt, woher ein fehlendes Image kommt:
     auto      erst Registry, dann Downloadportal (Vorgabe)
     registry  nur Registry
     download  nur Tarball
   "auto" ist die sinnvolle Vorgabe, weil Registries nur die juengsten
   Patchstaende vorhalten - genau die aeltere Version, die eine
   Migration braucht, liegt dann nur noch im Archiv. Der Wechsel
   geschieht ohne Rueckfrage.

2. "image get" holt ueber diesen Weg, ohne dass Edition und Version
   erneut abgefragt werden. Im Menue fragt "Image holen" entsprechend
   nur noch nach dem Bezugsweg; der eingestellte ist gekennzeichnet.
   Der vollstaendige Assistent bleibt als eigener Punkt daneben, fuer
   den Fall, dass Edition oder Version geaendert werden sollen.

3. "up" beschafft ein lokal fehlendes Image selbst, bevor compose
   startet. Vorher lief compose in einen nackten Pull, der bei einer nur
   im Downloadportal vorhandenen Version scheitern musste - genau der
   Fall mit 2.4.0p9. Mit "up --no-fetch" bleibt das aus.

Durchgespielt mit einer absichtlich nicht existierenden Version: up
erkennt das fehlende Image, versucht die Registry, weicht auf das
Downloadportal aus, bricht nach beiden Fehlschlaegen ab - und ruft
compose gar nicht erst auf. Mit --no-fetch geht es direkt zu compose.

Nebenbei: im Auswahlmenue erschien der eingestellte Bezugsweg doppelt
(einmal als "wie eingestellt", einmal unter seinem Namen) - zwei
Eintraege mit derselben Kennung. Jetzt wird der eingestellte nur noch
gekennzeichnet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-20 19:00:04 +02:00
co-authored by Claude Opus 5
parent 7a74042394
commit 4d2e234c36
5 changed files with 255 additions and 10 deletions
+44 -2
View File
@@ -543,6 +543,7 @@ Die wichtigsten Schalter:
| `CMK_RUNTIME` | leer = automatische Erkennung, sonst `docker` oder `podman` |
| `CMK_IMAGE` | **das tatsaechlich verwendete Image**, immer vollqualifiziert – siehe [Kapitel 8](#8-checkmk-image-beschaffen-raw-enterprise--co) |
| `CMK_EDITION`, `CMK_VERSION` | nur Vorgaben fuer den Image-Downloader |
| `CMK_IMAGE_SOURCE` | `auto`/`registry`/`download` – woher das Image geholt wird |
| `CMK_REGISTRY_USER/-PASSWORD` | Anmeldung an `registry.checkmk.com` (Enterprise) |
| `CMK_DOWNLOAD_USER/-PASSWORD` | Anmeldung am Checkmk-Downloadportal |
| `CMK_SITE_ID` | Site, die der Container anlegt bzw. beim Start hochfährt |
@@ -836,7 +837,47 @@ In der Oberfläche gibt es den Punkt **image → „Verfügbare Versionen
auflisten"**; beim Holen eines Images muss die Version ohnehin nicht mehr
abgetippt werden – dort erscheint eine Auswahlliste.
### 8.6 Image holen – drei Wege
### 8.6 Image holen – ein Kommando, drei Wege
Stehen Edition und Version fest, genügt:
```bash
sudo ./scripts/cmk-manage.sh image get
```
Woher geholt wird, steuert **`CMK_IMAGE_SOURCE`**:
| Wert | Wirkung |
|---|---|
| `auto` (Vorgabe) | erst die Registry, dann das Downloadportal |
| `registry` | nur aus der Registry |
| `download` | nur als Tarball vom Downloadportal |
Einmalig abweichen: `image get --source download`.
`auto` ist die sinnvolle Vorgabe, weil Registries nur die jüngsten Patchstände
vorhalten – eine ältere, für eine Migration nötige Version liegt dann nur noch
im Downloadportal. Der Wechsel geschieht automatisch, ohne Rückfrage.
**Beim `up` wird automatisch geholt.** Fehlt das Image lokal und sind Edition
und Version gesetzt, beschafft `up` es zuerst über diesen Weg – sonst versucht
compose einen nackten Pull, der bei einer nur im Archiv vorhandenen Version
scheitern muss:
```
[ INFO ] Das Image ist lokal nicht vorhanden - hole es (auto) ...
[ INFO ] Bezugsweg 'auto': zuerst die Registry ...
[ WARN ] Aus der Registry nicht zu bekommen - versuche das Downloadportal.
```
Mit `up --no-fetch` bleibt das aus.
In der Oberfläche liegt das unter **image → „Image holen"**. Dort wird nur noch
der Bezugsweg abgefragt – der eingestellte ist gekennzeichnet. Wer Edition oder
Version ändern will, wählt dort **„Etwas anderes waehlen"** oder gleich den
Assistenten.
#### Die Einzelschritte
> **In der Oberfläche geht das als Assistent:** **image → „Image beschaffen"**
> führt in einem Durchgang durch Edition, Version und Bezugsweg, setzt danach
@@ -1931,7 +1972,7 @@ Eine Dateiauswahl mit Verzeichnisnavigation ist eingebaut.
| Kommando | Wirkung |
|---|---|
| `up` / `down` / `restart` / `pull` | Stack steuern |
| `up [--no-fetch]` / `down` / `restart` / `pull` | Stack steuern; `up` holt ein fehlendes Image selbst |
| `status` | Container, Sites, Zugangsadressen |
| `logs [-f]` | Container-Logs |
| `sites` | Sites im Container auflisten |
@@ -1942,6 +1983,7 @@ Eine Dateiauswahl mit Verzeichnisnavigation ist eingebaut.
| `job list\|add\|set\|del\|run\|auto` | geplante Backups (eigene Zielpfade je Job) |
| `restore …` | Backup zurückspielen |
| `import …` | Migrations-Bundle einspielen |
| `image get` | Image über den eingestellten Bezugsweg holen |
| `image status\|list\|versions\|repos\|why\|test\|pull\|download\|load\|use` | Checkmk-Image beschaffen, auswählen und Fehler erklären |
| `browser [--engine …]` | Terminal-Browser im Container – Proxy Manager lokal bedienen |
| `config list\|get\|set\|edit` | Einstellungen der `.env` anzeigen und ändern |