Fehlendes Tag in der Registry: auf den Tarball verweisen
Die Diagnose auf dem Zielsystem zeigte: enterprise/check-mk-enterprise
fuehrt im Zweig 2.4.0 nur p31 aufwaerts, dazu -latest und die taeglichen
Bauten. 2.4.0p9 ist dort herausgerollt - die Registry haelt nur die
juengsten Patchstaende vor.
Nachgemessen, dass das Downloadportal die Version weiterhin hat:
.../2.4.0p9/check-mk-enterprise-docker-2.4.0p9.tar.gz HTTP 401
also vorhanden, nur geschuetzt. Auch das oeffentliche Versionsarchiv
listet sie mit genau diesem Dateinamen.
Das ist kein Randfall, sondern der Normalfall bei einer Migration:
"omd restore" verlangt exakt die Version der Quell-Site, und die ist in
aller Regel aelter als das, was die Registry noch vorhaelt.
image_diagnose_ref sieht deshalb bei einem fehlenden Tag im Archiv nach
und nennt, wenn die Version dort liegt, den Tarball-Weg samt fertigem
Kommando - statt den Benutzer zwischen Registry und Portal suchen zu
lassen. Mit dem Unterschied zwischen beiden Quellen ist das jetzt auch
in beiden Sprachfassungen erklaert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -795,6 +795,19 @@ Abgefragt werden bis zu drei Quellen:
|
|||||||
| Registry (Docker Hub bzw. registry.checkmk.com) | `registry` | nur für Enterprise |
|
| Registry (Docker Hub bzw. registry.checkmk.com) | `registry` | nur für Enterprise |
|
||||||
| Downloadportal (Verzeichnis-Listing) | `download` | ja |
|
| Downloadportal (Verzeichnis-Listing) | `download` | ja |
|
||||||
|
|
||||||
|
> **Registry und Downloadportal führen nicht dasselbe.** Die Registry hält in
|
||||||
|
> der Regel nur die **jüngsten** Patchstände vor – bei `2.4.0` etwa `p31`
|
||||||
|
> aufwärts, dazu `2.4.0-latest` und die täglichen Bauten. Ältere Stände sind
|
||||||
|
> dort herausgerollt. Das Downloadportal ist dagegen ein **Archiv** und hat sie
|
||||||
|
> weiterhin.
|
||||||
|
>
|
||||||
|
> Das ist genau dann entscheidend, wenn eine **bestimmte** Version gebraucht
|
||||||
|
> wird – bei einer Migration nämlich, weil `omd restore` exakt die Version der
|
||||||
|
> Quell-Site verlangt ([Kapitel 17.4](#174-schritt-3--zielsystem-auf-die-richtige-version-bringen)).
|
||||||
|
> Für solche Fälle ist der Tarball der richtige Weg, nicht die Registry.
|
||||||
|
> `image why` weist von sich aus darauf hin, wenn ein Tag in der Registry
|
||||||
|
> fehlt, die Version im Archiv aber vorhanden ist.
|
||||||
|
|
||||||
Ohne `--source` werden alle drei versucht – so kommt auch ohne hinterlegte
|
Ohne `--source` werden alle drei versucht – so kommt auch ohne hinterlegte
|
||||||
Zugangsdaten eine brauchbare Liste zustande:
|
Zugangsdaten eine brauchbare Liste zustande:
|
||||||
|
|
||||||
|
|||||||
@@ -801,6 +801,19 @@ Up to three sources are queried:
|
|||||||
| registry (Docker Hub or registry.checkmk.com) | `registry` | only for Enterprise |
|
| registry (Docker Hub or registry.checkmk.com) | `registry` | only for Enterprise |
|
||||||
| download portal (directory listing) | `download` | yes |
|
| download portal (directory listing) | `download` | yes |
|
||||||
|
|
||||||
|
> **The registry and the download portal do not carry the same thing.** The
|
||||||
|
> registry usually keeps only the **most recent** patch levels – for `2.4.0`
|
||||||
|
> roughly `p31` upwards, plus `2.4.0-latest` and the daily builds. Older levels
|
||||||
|
> have rolled out of it. The download portal, by contrast, is an **archive** and
|
||||||
|
> still has them.
|
||||||
|
>
|
||||||
|
> This matters precisely when a **specific** version is required – during a
|
||||||
|
> migration, because `omd restore` demands exactly the version of the source
|
||||||
|
> site ([chapter 17.4](#174-step-3--bring-the-target-system-to-the-right-version)).
|
||||||
|
> For those cases the tarball is the right route, not the registry. `image why`
|
||||||
|
> points this out by itself when a tag is missing from the registry but the
|
||||||
|
> version exists in the archive.
|
||||||
|
|
||||||
Without `--source` all three are tried – so even without stored credentials you
|
Without `--source` all three are tried – so even without stored credentials you
|
||||||
get a usable list:
|
get a usable list:
|
||||||
|
|
||||||
|
|||||||
+30
-3
@@ -1294,9 +1294,36 @@ image_diagnose_ref() { # ref
|
|||||||
printf ' %sVorhanden (neueste)%s\n' "$C_BLD" "$C_RST"
|
printf ' %sVorhanden (neueste)%s\n' "$C_BLD" "$C_RST"
|
||||||
fi
|
fi
|
||||||
printf ' %s\n' "${near[@]}"
|
printf ' %s\n' "${near[@]}"
|
||||||
printf '\n Uebernehmen mit:\n'
|
|
||||||
printf ' %s image use %s/%s:<tag> --remember\n' "$SELF" "$reg" "$repo"
|
# Registries halten meist nur die juengsten Patchstaende vor. Aeltere
|
||||||
printf ' %s up\n' "$SELF"
|
# Versionen liegen weiterhin im Downloadportal - und genau die braucht
|
||||||
|
# man bei einer Migration, weil "omd restore" die exakte Version
|
||||||
|
# verlangt. Deshalb hier nachsehen, statt den Benutzer suchen zu lassen.
|
||||||
|
local tarball=""
|
||||||
|
if [ -n "$tag" ]; then
|
||||||
|
tarball="$(archive_docker_file "${CMK_EDITION:-enterprise}" "$tag" 2>/dev/null || true)"
|
||||||
|
fi
|
||||||
|
if [ -n "$tarball" ]; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
${C_BLD}Diese Version gibt es aber als Tarball${C_RST}
|
||||||
|
Registries halten in der Regel nur die juengsten Patchstaende vor;
|
||||||
|
das Downloadportal ist ein Archiv. Dort liegt:
|
||||||
|
$tarball
|
||||||
|
|
||||||
|
Holen und einspielen:
|
||||||
|
$SELF image download --edition ${CMK_EDITION:-enterprise} --version $tag
|
||||||
|
$SELF up
|
||||||
|
|
||||||
|
Das ist der richtige Weg, wenn eine BESTIMMTE Version gebraucht wird -
|
||||||
|
etwa bei einer Migration, weil "omd restore" genau die Version der
|
||||||
|
Quell-Site verlangt.
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
printf '\n Uebernehmen mit:\n'
|
||||||
|
printf ' %s image use %s/%s:<tag> --remember\n' "$SELF" "$reg" "$repo"
|
||||||
|
printf ' %s up\n' "$SELF"
|
||||||
|
fi
|
||||||
printf '\n Alle Tags: %s image versions --source registry --edition %s --all\n\n' \
|
printf '\n Alle Tags: %s image versions --source registry --edition %s --all\n\n' \
|
||||||
"$SELF" "${CMK_EDITION:-enterprise}"
|
"$SELF" "${CMK_EDITION:-enterprise}"
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
Reference in New Issue
Block a user