依存関係
ベストプラクティスガイドのこの部分では、Chart.yaml で宣言する dependencies について解説します。
バージョン
可能な限り、特定のバージョンを固定するのではなく、バージョン範囲を使用してください。 推奨されるデフォルトの方法は、パッチレベルでのバージョンマッチです:
version: ~1.2.3
これはバージョン 1.2.3 およびそのパッチリリースにマッチします。
つまり、~1.2.3 は >= 1.2.3, < 1.3.0 と同等です。
バージョンマッチの完全な構文については、semver documentation を参照してください。
プレリリースバージョン
上記のバージョン制約は、プレリリースバージョンにはマッチしません。
例えば、version: ~1.2.3 は version: ~1.2.4 にマッチしますが、version: ~1.2.3-1 にはマッチしません。
以下の書き方で、パッチレベルだけでなくプレリリースにもマッチさせることができます:
version: ~1.2.3-0
リポジトリ URL
可能な限り https:// の URL を優先し、次に http:// の URL を使用してください。
リポジトリがリポジトリインデックスファイルに追加されている場合、リポジトリ名を URL のエイリアスとして使用できます。alias: または @ の後にリポジトリ名を指定してください。
ファイル URL(file://...)は、固定のデプロイパイプラインで組み立てられた chart 向けの「特殊なケース」と見なされます。
ダウンローダープラグインを使用する場合、URL スキームはプラグイン固有になります。chart を利用するユーザーは、依存関係を更新またはビルドするために、そのスキームに対応したプラグインをインストールする必要があります。
repository フィールドが空の場合、Helm は依存関係の管理操作を実行できません。この場合、Helm は依存関係が charts フォルダ内のサブディレクトリにあり、そのディレクトリ名が依存関係の name プロパティと同じであると見なします。
condition と tag
オプションの依存関係には、condition または tag を追加してください。condition はデフォルトで true になることに注意してください。
condition の推奨される書き方:
condition: somechart.enabled
ここで somechart は依存関係の chart 名です。
複数のサブチャート(依存関係)が連携してオプションまたは交換可能な機能を提供する場合、これらの chart には同じ tag を設定してください。
例えば、nginx と memcached の両方が chart 内のメインアプリケーションに対してパフォーマンス最適化を提供し、その機能を有効にするには両方が必要な場合、両方に次のような tags セクションを含めます:
tags:
- webaccelerator
これにより、ユーザーは 1 つの tag でその機能のオン・オフを切り替えることができます。