Helm: 'プレリリース'バージョンの場合、最新のチャートをインストール/フェッチできません

作成日 2017年05月06日  ·  3コメント  ·  ソース: helm/helm

影響を受けるヘルムバージョン: v2.4.1

問題

$#$ <chart repo> $#$の最新の<chart>に「プレリリース」バージョンがある場合、つまりv0.1.0以外の追加の値が含まれている場合、 helm [install | fetch] <chart repo>/<chart>は失敗します。 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

最も参考になるコメント

その理由は、SemVerによると、Traefikのバージョンはプレリリースであるためです。 Helm 2.4.1では、バージョンが明示的に指定されていない限り、プレリリースをインストールしないことにしました。 #2279

回避策は、プレリリースが範囲基準を満たすことを可能にする何かを実行することです: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdiceは、不安定なパッケージが要求を満たすことを可能にするフラグを追加することを提案しました。 多分--develを考えています

全てのコメント3件

その理由は、SemVerによると、Traefikのバージョンはプレリリースであるためです。 Helm 2.4.1では、バージョンが明示的に指定されていない限り、プレリリースをインストールしないことにしました。 #2279

回避策は、プレリリースが範囲基準を満たすことを可能にする何かを実行することです: helm fetch stable/traefik --debug --version=">1.0.0-a"

@vdiceは、不安定なパッケージが要求を満たすことを可能にするフラグを追加することを提案しました。 多分--develを考えています

@vdiceは、不安定なパッケージが要求を満たすことを可能にするフラグを追加することを提案しました。

実際、私たちのユースケースの1つは、チャートリポジトリ全体を_only_'unstable / dev/pre-release'バージョンのチャートに割り当てることです。 これには、公式バージョンのみを含む「公式」チャートリポジトリを「混雑」させないという利点があります。

バージョンやバージョン範囲を指定せずに、上記の開発リポジトリから最新のチャートをプルする機能を維持すると便利です(helm pre-2.4.xで実行できるように): helm install dev-chart-repo/dev-chartの代わりにどういうわけか最新のdev-chartバージョンを追跡し、 --versionを介して適切な範囲を提供する必要があります。

前述のことを行うために--develフラグが必要な場合は、それで問題ありません。

「プレリリース」チャートのインストールを拒否する理由は(ある程度)理解できますが、それがfetchでどのように役立つかはわかりません。

さらに、現在のエラーメッセージは誤解を招きやすく、時間の浪費になります。

このページは役に立ちましたか?
0 / 5 - 0 評価