Helm: Não é possível instalar/buscar o gráfico mais recente se a versão de 'pré-lançamento'

Criado em 6 mai. 2017  ·  3Comentários  ·  Fonte: helm/helm

Versão do leme afetada: v2.4.1

Questão

helm [install | fetch] <chart repo>/<chart> falhará se <chart> mais recente em <chart repo> tiver uma versão de "pré-lançamento" -- ou seja, contém valores adicionais além de, digamos, v0.1.0 , como v0.1.0-alpha.1 ou v0.1.0-dev-sha.abc1234 .

Detalhes

Trabalhando em 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

Não está funcionando em 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-

No entanto, se o gráfico mais recente no repositório tiver uma versão de lançamento 'oficial', eles serão buscados com sucesso em 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 semelhantes/relacionados

https://github.com/kubernetes/charts/issues/999 foi arquivado especificamente para o gráfico stable/traefik .

De fato, como vemos, este gráfico tem algumas informações extras sobre a string de versão (versão completa: 1.2.1-a , portanto, corroborando a afirmação deste problema de que as informações adicionadas (normalmente consideradas "pré-lançamento") são quebrando a instalação/busca:

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

Embargo

No entanto, é importante observar (e talvez útil na depuração/identificação do problema), se a versão do gráfico "pré-lançamento" for especificada explicitamente, ela poderá ser instalada/buscada sem problemas. Continuando de cima:

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

$ ls
traefik-1.2.1-a.tgz

Comentários muito úteis

O motivo é que a versão do Traefik é, segundo a SemVer, um pré-lançamento. No Helm 2.4.1, decidimos não instalar pré-lançamentos, a menos que explicitamente dada uma versão. #2279

A solução alternativa é executar algo que permita que os pré-lançamentos satisfaçam os critérios de intervalo: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice sugeriu-me que talvez adicionemos um sinalizador para permitir que pacotes instáveis ​​satisfaçam a solicitação. Estamos pensando que talvez --devel

Todos 3 comentários

O motivo é que a versão do Traefik é, segundo a SemVer, um pré-lançamento. No Helm 2.4.1, decidimos não instalar pré-lançamentos, a menos que explicitamente dada uma versão. #2279

A solução alternativa é executar algo que permita que os pré-lançamentos satisfaçam os critérios de intervalo: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice sugeriu-me que talvez adicionemos um sinalizador para permitir que pacotes instáveis ​​satisfaçam a solicitação. Estamos pensando que talvez --devel

@vdice sugeriu-me que talvez adicionemos um sinalizador para permitir que pacotes instáveis ​​satisfaçam a solicitação.

De fato, um caso de uso nosso é dedicar repositórios de gráficos inteiros a gráficos versionados _only_ 'unstable/dev/pre-release'. Isso tem o benefício de não 'lotar' nossos repositórios de gráficos 'oficiais' que contêm apenas versões oficiais.

Seria útil manter a capacidade de extrair o gráfico mais recente do(s) referido(s) repositório(s) de desenvolvimento sem especificar qualquer versão ou intervalo de versão (como poderia ser feito no helm pré-2.4.x): helm install dev-chart-repo/dev-chart , em vez de ter que acompanhar a versão mais recente do gráfico de desenvolvimento de alguma forma e fornecer o intervalo adequado via --version .

Se um sinalizador --devel for necessário para fazer o mencionado acima, tudo bem.

Embora eu possa entender (um pouco) a razão por trás da recusa de instalar gráficos de "pré-lançamento", não consigo ver como isso é útil com fetch .

Além disso, a mensagem de erro atual é enganosa e causa perda de tempo.

Esta página foi útil?
0 / 5 - 0 avaliações