Betroffene Helmversion: v2.4.1
helm [install | fetch] <chart repo>/<chart>
schlägt fehl, wenn das neueste <chart>
in <chart repo>
eine "Vorabversion" hat - das heißt, zusätzliche Werte jenseits von v0.1.0
enthält, wie z v0.1.0-alpha.1
oder v0.1.0-dev-sha.abc1234
.
Arbeiten in v2.3.1
:
$ helm version
Client: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
$ helm search -r workflow-dev
NAME VERSION DESCRIPTION
workflow-dev/workflow v2.13.1-dev-20170504190907-sha.3d6bbf9 Deis Workflow
$ helm fetch workflow-dev/workflow
$ ls
workflow-v2.13.1-dev-20170504190907-sha.3d6bbf9.tgz
Funktioniert nicht in v2.4.1
:
$ helm version
Client: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
$ helm search -r workflow-dev
NAME VERSION DESCRIPTION
workflow-dev/workflow v2.13.1-dev-20170504190907-sha.3d6bbf9 Deis Workflow
...
$ helm fetch workflow-dev/workflow
Error: chart "workflow" not found in workflow-dev index. (try 'helm repo update'). No chart version found for workflow-
Wenn das neueste Diagramm im Repo jedoch eine "offizielle" Release-Version hat, werden sie erfolgreich in v2.4.1
abgerufen:
$ helm search -r jenkins
NAME VERSION DESCRIPTION
stable/jenkins 0.6.2 Open source continuous integration server. It s..
$ helm fetch stable/jenkins
$ ls
jenkins-0.6.2.tgz
https://github.com/kubernetes/charts/issues/999 wurde speziell für das Diagramm stable/traefik
eingereicht.
Wie wir sehen, enthält dieses Diagramm in der Tat ein paar zusätzliche Informationen zur Versionszeichenfolge (Vollversion: 1.2.1-a
, was die Behauptung dieser Ausgabe bestätigt, dass die hinzugefügten Informationen (normalerweise als "Vorabversion" betrachtet) sind brechende Installation/Abruf:
$ helm search -r traefik
NAME VERSION DESCRIPTION
stable/traefik 1.2.1-a A Traefik based Kubernetes ingress controller w...
$ helm fetch stable/traefik
Error: chart "traefik" not found in stable index. (try 'helm repo update'). No chart version found for traefik-
Es ist jedoch wichtig zu beachten (und möglicherweise beim Debuggen/Präzisieren des Problems hilfreich), wenn die „Vorabversion“-Diagrammversion explizit angegeben ist, kann sie ohne Probleme installiert/abgerufen werden. Fortsetzung von oben:
$ helm fetch stable/traefik --version 1.2.1-a
$ ls
traefik-1.2.1-a.tgz
Der Grund ist, dass es sich bei Traefiks Version laut SemVer um eine Vorabversion handelt. In Helm 2.4.1 haben wir uns entschieden, keine Vorabversionen zu installieren, es sei denn, es wird ausdrücklich eine Version angegeben. #2279
Die Problemumgehung besteht darin, etwas auszuführen, das es Vorabversionen ermöglicht, die Bereichskriterien zu erfüllen: helm fetch stable/traefik --debug --version=">1.0.0-a"
@vdice hat mir vorgeschlagen, dass wir vielleicht ein Flag hinzufügen, damit instabile Pakete die Anfrage erfüllen können. Wir denken vielleicht --devel
@vdice hat mir vorgeschlagen, dass wir vielleicht ein Flag hinzufügen, damit instabile Pakete die Anfrage erfüllen können.
Tatsächlich besteht ein Anwendungsfall von uns darin, ganze Chart-Repos _nur_ 'unstable/dev/pre-release' versionierten Charts zu widmen. Dies hat den Vorteil, dass unsere „offiziellen“ Chart-Repos, die nur offizielle Versionen enthalten, nicht „überfüllt“ werden.
Es wäre praktisch, die Möglichkeit zu behalten, das neueste Diagramm aus besagten Dev-Repo(s) abzurufen, ohne eine Version oder einen Versionsbereich anzugeben (wie dies in Helm vor 2.4.x möglich wäre): helm install dev-chart-repo/dev-chart
, statt Irgendwie den Überblick über die neueste Dev-Chart-Version behalten und den richtigen Bereich über --version
liefern müssen.
Wenn ein --devel
-Flag benötigt wird, um das oben Genannte zu tun, wäre das in Ordnung.
Obwohl ich (etwas) die Gründe dafür verstehe, "Vorabversions" -Diagramme nicht zu installieren, kann ich nicht sehen, wie das bei fetch
von Nutzen sein soll.
Außerdem ist die aktuelle Fehlermeldung irreführend und verursacht Zeitverlust.
Hilfreichster Kommentar
Der Grund ist, dass es sich bei Traefiks Version laut SemVer um eine Vorabversion handelt. In Helm 2.4.1 haben wir uns entschieden, keine Vorabversionen zu installieren, es sei denn, es wird ausdrücklich eine Version angegeben. #2279
Die Problemumgehung besteht darin, etwas auszuführen, das es Vorabversionen ermöglicht, die Bereichskriterien zu erfüllen:
helm fetch stable/traefik --debug --version=">1.0.0-a"
@vdice hat mir vorgeschlagen, dass wir vielleicht ein Flag hinzufügen, damit instabile Pakete die Anfrage erfüllen können. Wir denken vielleicht
--devel