影響を受けるヘルムバージョン: 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
を考えています
@vdiceは、不安定なパッケージが要求を満たすことを可能にするフラグを追加することを提案しました。
実際、私たちのユースケースの1つは、チャートリポジトリ全体を_only_'unstable / dev/pre-release'バージョンのチャートに割り当てることです。 これには、公式バージョンのみを含む「公式」チャートリポジトリを「混雑」させないという利点があります。
バージョンやバージョン範囲を指定せずに、上記の開発リポジトリから最新のチャートをプルする機能を維持すると便利です(helm pre-2.4.xで実行できるように): helm install dev-chart-repo/dev-chart
の代わりにどういうわけか最新のdev-chartバージョンを追跡し、 --version
を介して適切な範囲を提供する必要があります。
前述のことを行うために--devel
フラグが必要な場合は、それで問題ありません。
「プレリリース」チャートのインストールを拒否する理由は(ある程度)理解できますが、それがfetch
でどのように役立つかはわかりません。
さらに、現在のエラーメッセージは誤解を招きやすく、時間の浪費になります。
最も参考になるコメント
その理由は、SemVerによると、Traefikのバージョンはプレリリースであるためです。 Helm 2.4.1では、バージョンが明示的に指定されていない限り、プレリリースをインストールしないことにしました。 #2279
回避策は、プレリリースが範囲基準を満たすことを可能にする何かを実行することです:
helm fetch stable/traefik --debug --version=">1.0.0-a"
@vdiceは、不安定なパッケージが要求を満たすことを可能にするフラグを追加することを提案しました。 多分
--devel
を考えています