Helm: No se puede instalar/recuperar el gráfico más reciente si la versión es 'prelanzamiento'

Creado en 6 may. 2017  ·  3Comentarios  ·  Fuente: helm/helm

Versión de timón afectada: v2.4.1

Asunto

helm [install | fetch] <chart repo>/<chart> falla si el último <chart> en <chart repo> tiene una versión de "prelanzamiento", es decir, contiene valores adicionales además de v0.1.0 , como v0.1.0-alpha.1 o v0.1.0-dev-sha.abc1234 .

Detalles

Trabajando en 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

No funciona en 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-

Sin embargo, si el último gráfico en el repositorio tiene una versión de lanzamiento 'oficial', se obtienen con éxito en 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

Problemas similares/relacionados

https://github.com/kubernetes/charts/issues/999 se archivó específicamente para el gráfico stable/traefik .

De hecho, como vemos, este gráfico tiene un poco de información adicional sobre la cadena de versión (versión completa: 1.2.1-a , por lo tanto, corrobora la afirmación de este problema de que la información agregada (normalmente considerada "prelanzamiento") es interrumpir la instalación/recuperación:

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

Advertencia

Sin embargo, es importante tener en cuenta (y tal vez sea útil para depurar/señalar el problema), si la versión del gráfico "prelanzamiento" se especifica explícitamente, se puede instalar/recuperar sin problemas. Continuando desde arriba:

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

$ ls
traefik-1.2.1-a.tgz

Comentario más útil

La razón es que la versión de Traefik es, según SemVer, un prelanzamiento. En Helm 2.4.1, decidimos no instalar versiones preliminares a menos que se proporcione explícitamente una versión. #2279

La solución es ejecutar algo que permita que los lanzamientos preliminares satisfagan los criterios de rango: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice me sugirió que tal vez agreguemos una bandera para permitir que los paquetes inestables satisfagan la solicitud. Estamos pensando en tal vez --devel

Todos 3 comentarios

La razón es que la versión de Traefik es, según SemVer, un prelanzamiento. En Helm 2.4.1, decidimos no instalar versiones preliminares a menos que se proporcione explícitamente una versión. #2279

La solución es ejecutar algo que permita que los lanzamientos preliminares satisfagan los criterios de rango: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice me sugirió que tal vez agreguemos una bandera para permitir que los paquetes inestables satisfagan la solicitud. Estamos pensando en tal vez --devel

@vdice me sugirió que tal vez agreguemos una bandera para permitir que los paquetes inestables satisfagan la solicitud.

De hecho, uno de nuestros casos de uso es dedicar repositorios de gráficos completos a _solo_ gráficos versionados 'inestables/dev/prelanzamiento'. Esto tiene la ventaja de no "saturar" nuestros repositorios de gráficos "oficiales" que solo contienen versiones oficiales.

Sería útil mantener la capacidad de extraer el gráfico más reciente de dicho(s) repositorio(s) de desarrollo sin especificar ninguna versión o rango de versión (como podría hacerse en helm pre-2.4.x): helm install dev-chart-repo/dev-chart , en lugar de tener que realizar un seguimiento de la última versión del gráfico de desarrollo de alguna manera y proporcionar el rango adecuado a través --version .

Si se necesita una bandera --devel para hacer lo mencionado anteriormente, estaría bien.

Si bien puedo entender (algo) la razón detrás de negarse a instalar gráficos de "prelanzamiento", no puedo ver cómo eso es de alguna utilidad con fetch .

Además, el mensaje de error actual es engañoso y provoca una pérdida de tiempo.

¿Fue útil esta página
0 / 5 - 0 calificaciones