Helm: Die neueste Karte kann nicht installiert/abgerufen werden, wenn es sich um eine Vorabversion handelt

Erstellt am 6. Mai 2017  ·  3Kommentare  ·  Quelle: helm/helm

Betroffene Helmversion: v2.4.1

Problem

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 .

Einzelheiten

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

Ähnliche/verwandte Probleme

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-

Vorbehalt

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

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

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen