Helm: Impossible d'installer/récupérer le dernier graphique si la version "pré-version"

Créé le 6 mai 2017  ·  3Commentaires  ·  Source: helm/helm

Version de barre concernée : v2.4.1

Publier

helm [install | fetch] <chart repo>/<chart> échoue si le dernier <chart> dans <chart repo> a une version "pré-version" -- c'est-à-dire, contient des valeurs supplémentaires au-delà, disons v0.1.0 , comme v0.1.0-alpha.1 ou v0.1.0-dev-sha.abc1234 .

Des détails

Travailler dans 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

Ne fonctionne pas dans 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-

Cependant, si le dernier graphique du référentiel a une version "officielle", ils sont récupérés avec succès dans v2.4.1 :

 $ 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

Problèmes similaires/connexes

https://github.com/kubernetes/charts/issues/999 a été déposé spécifiquement pour le graphique stable/traefik .

En effet, comme nous le voyons, ce graphique contient un peu d'informations supplémentaires sur la chaîne de version (version complète : 1.2.1-a , corroborant ainsi l'affirmation de ce problème selon laquelle les informations ajoutées (normalement considérées comme "pré-version") sont installation/récupération de rupture :

$ 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-

Caveat

Cependant, il est important de noter (et peut-être utile pour déboguer/identifier le problème), si la version du graphique "pré-version" est explicitement spécifiée, elle peut être installée/récupérée sans problème. Suite du dessus :

$ helm fetch stable/traefik --version 1.2.1-a

$ ls
traefik-1.2.1-a.tgz

Commentaire le plus utile

La raison en est que la version de Traefik est, selon SemVer, une pré-version. Dans Helm 2.4.1, nous avons décidé de ne pas installer les pré-versions à moins qu'une version ne leur soit explicitement donnée. #2279

La solution de contournement consiste à exécuter quelque chose qui permet aux versions préliminaires de satisfaire aux critères de plage : helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice m'a suggéré d'ajouter peut-être un indicateur pour permettre aux packages instables de satisfaire la demande. Nous pensons peut-être --devel

Tous les 3 commentaires

La raison en est que la version de Traefik est, selon SemVer, une pré-version. Dans Helm 2.4.1, nous avons décidé de ne pas installer les pré-versions à moins qu'une version ne leur soit explicitement donnée. #2279

La solution de contournement consiste à exécuter quelque chose qui permet aux versions préliminaires de satisfaire aux critères de plage : helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice m'a suggéré d'ajouter peut-être un indicateur pour permettre aux packages instables de satisfaire la demande. Nous pensons peut-être --devel

@vdice m'a suggéré d'ajouter peut-être un indicateur pour permettre aux packages instables de satisfaire la demande.

En effet, l'un de nos cas d'utilisation consiste à consacrer des dépôts de graphiques entiers à _uniquement_ des graphiques versionnés 'unstable/dev/pre-release'. Cela a l'avantage de ne pas "encombrer" nos référentiels de graphiques "officiels" qui ne contiennent que des versions officielles.

Il serait pratique de conserver la possibilité d'extraire le dernier graphique desdits référentiels de développement sans spécifier de version ou de plage de versions (comme cela pourrait être fait dans helm avant 2.4.x): helm install dev-chart-repo/dev-chart , au lieu de devoir garder une trace de la dernière version de dev-chart d'une manière ou d'une autre et fournir la plage appropriée via --version .

Si un drapeau --devel est nécessaire pour faire ce qui précède, ce serait bien.

Bien que je puisse comprendre (un peu) la raison du refus d'installer des graphiques "pré-version", je ne vois pas en quoi cela est utile avec fetch .

De plus, le message d'erreur actuel est trompeur et entraîne une perte de temps.

Cette page vous a été utile?
0 / 5 - 0 notes