Helm: Не удается установить/получить последнюю диаграмму, если версия «предварительного выпуска»

Созданный на 6 мая 2017  ·  3Комментарии  ·  Источник: helm/helm

Затронутая версия шлема: v2.4.1

Проблема

helm [install | fetch] <chart repo>/<chart> завершается ошибкой, если последняя версия <chart> в <chart repo> имеет «предварительную» версию, то есть содержит дополнительные значения помимо, скажем, v0.1.0 , например v0.1.0-alpha.1 или v0.1.0-dev-sha.abc1234 .

Подробности

Работа в 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

Не работает в 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-

Однако, если последняя диаграмма в репозитории имеет «официальную» версию выпуска, они будут успешно получены в 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

Похожие/связанные проблемы

https://github.com/kubernetes/charts/issues/999 был подан специально для графика stable/traefik .

Действительно, как мы видим, эта диаграмма содержит немного дополнительной информации о строке версии (полная версия: 1.2.1-a , что подтверждает утверждение этой проблемы о том, что добавленная информация (обычно считающаяся «предварительной») нарушение установки/выборки:

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

Предостережение

Однако важно отметить (и, возможно, это полезно при отладке/определении проблемы), если явным образом указана «предварительная» версия диаграммы, ее можно установить/выгрузить без проблем. Продолжая сверху:

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

$ ls
traefik-1.2.1-a.tgz

Самый полезный комментарий

Причина в том, что версия Traefik, по словам SemVer, является предварительной версией. В Helm 2.4.1 мы решили не устанавливать предварительные версии, если явно не указана версия. #2279

Обходной путь заключается в запуске чего-то, что позволяет предварительным выпускам удовлетворять критериям диапазона: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice предложил мне добавить флаг, позволяющий нестабильным пакетам удовлетворять запрос. Мы думаем, может быть, --devel

Все 3 Комментарий

Причина в том, что версия Traefik, по словам SemVer, является предварительной версией. В Helm 2.4.1 мы решили не устанавливать предварительные версии, если явно не указана версия. #2279

Обходной путь заключается в запуске чего-то, что позволяет предварительным выпускам удовлетворять критериям диапазона: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdice предложил мне добавить флаг, позволяющий нестабильным пакетам удовлетворять запрос. Мы думаем, может быть, --devel

@vdice предложил мне добавить флаг, позволяющий нестабильным пакетам удовлетворять запрос.

На самом деле, один из наших вариантов использования — посвятить все репозитории чартов _только_ версионным чартам для «нестабильных/разработанных/предварительных версий». Преимущество этого заключается в том, что он не «переполняет» наши «официальные» репозитории диаграмм, которые содержат только официальные версии.

Было бы удобно сохранить возможность извлекать последнюю диаграмму из указанных репозиториев разработчиков без указания какой-либо версии или диапазона версий (как это можно было сделать в helm до 2.4.x): helm install dev-chart-repo/dev-chart вместо необходимость каким-то образом отслеживать последнюю версию диаграммы разработки и указывать правильный диапазон через --version .

Если для выполнения вышеупомянутого требуется флаг --devel , это будет нормально.

Хотя я могу (в некоторой степени) понять причину отказа от установки «предварительных» диаграмм, я не вижу, как это можно использовать с fetch .

Кроме того, текущее сообщение об ошибке вводит в заблуждение и приводит к потере времени.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги