web-dev-qa-db-ja.com

Helmチャートを依存関係の順にデプロイする

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のコンテナが稼働していることを確認したいと思います。

5
Amay

Helmfileを調べて、スタックをアプリケーションごとに1つ helmfile に分割する必要があります。フォルダー内のhelmfileはアルファベット順に適用されるため、ファイルの命名規則によって順序を確認できます。

ファイル構造:

helmfile.d/
  00-app-1.yaml
  01-app-2.yaml
  02-app-n.yaml

次のコマンドで実行します:helmfile -f path/to/directory

1
Lukas Eichler

最近同じ問題に出くわしました。 HelmパッケージとしてのRabbitMQと、ローカルでビルドした2つの追加のHelmパッケージがありました。

3つを1つのHelmパッケージにまとめたかったのですが、Helmチャートのインストールを注文する方法が見つかりませんでした。たとえば、他の2つのパッケージにはRabbitMQ資格情報が必要です。

フックを使用すると、ソリューションが必要以上に複雑になることがわかったので、手順の間に手動で変更を加えながら、必要な順序で単に個別にインストールすることを選択しました。

article は、このトピックについて説明していて、興味があるかもしれません。

Helmsman を試してみようと思っている場合は、依存関係を適切に順序付ける方法があるかもしれません。私はそれについて知ったばかりなので、それについて判断を下すことはできませんが、README機能の下から:

リリース管理の順序を定義します。helmsmanがリリースを管理する優先順位を定義できます(依存関係に役立ちます)。

ここ は関連ドキュメントです。

0
Anas Tiour

ヘルムチャート側から何かがあるとは思いませんが、おそらくinitコンテナーを使用してこれを解決できます。

チャートにデータベースがあり、アプリケーションによって使用され、クラッシュした場合、initコンテナーを使用して、ポッドのライフサイクルを完了するためにチェックできます。

詳細については、これを参照できます: https://github.com/helm/helm/issues/171

0
Harsh Manvar