Helmとティラーを介してKubernetesクラスターに複数のhelmサブチャートを展開しています。他のグラフとそのコンテナーのインストールを開始する前に、特定のグラフがそのコンテナーを完全にインストールすることを確認するにはどうすればよいですか?
私はrequirements.yamlとフックを調べましたが、それらのどれも私が探している解決策ではないようです。
ParentDir/
Chart.yaml
requirements.yaml
values.yaml
charts/
|
|
—- App1
Chart.yaml
values.yaml
templates/
—- App2
Chart.yaml
values.yaml
templates/
.
.
.
—- AppN
Chart.yaml
values.yaml
templates/
複数のサブチャートがあり、helmが他のチャートとそのコンテナをインストールする前に、App1のコンテナが稼働していることを確認したいと思います。
Helmfileを調べて、スタックをアプリケーションごとに1つ helmfile に分割する必要があります。フォルダー内のhelmfileはアルファベット順に適用されるため、ファイルの命名規則によって順序を確認できます。
ファイル構造:
helmfile.d/
00-app-1.yaml
01-app-2.yaml
02-app-n.yaml
次のコマンドで実行します:helmfile -f path/to/directory
最近同じ問題に出くわしました。 HelmパッケージとしてのRabbitMQと、ローカルでビルドした2つの追加のHelmパッケージがありました。
3つを1つのHelmパッケージにまとめたかったのですが、Helmチャートのインストールを注文する方法が見つかりませんでした。たとえば、他の2つのパッケージにはRabbitMQ資格情報が必要です。
フックを使用すると、ソリューションが必要以上に複雑になることがわかったので、手順の間に手動で変更を加えながら、必要な順序で単に個別にインストールすることを選択しました。
article は、このトピックについて説明していて、興味があるかもしれません。
Helmsman を試してみようと思っている場合は、依存関係を適切に順序付ける方法があるかもしれません。私はそれについて知ったばかりなので、それについて判断を下すことはできませんが、README機能の下から:
リリース管理の順序を定義します。helmsmanがリリースを管理する優先順位を定義できます(依存関係に役立ちます)。
ここ は関連ドキュメントです。
ヘルムチャート側から何かがあるとは思いませんが、おそらくinitコンテナーを使用してこれを解決できます。
チャートにデータベースがあり、アプリケーションによって使用され、クラッシュした場合、initコンテナーを使用して、ポッドのライフサイクルを完了するためにチェックできます。
詳細については、これを参照できます: https://github.com/helm/helm/issues/171