依存関係

このガイドのセクションでは、Chart.yamlで宣言されたdependenciesのベストプラクティスについて説明します。

バージョン

可能な限り、正確なバージョンに固定するのではなく、バージョン範囲を使用してください。推奨されるデフォルトは、パッチレベルのバージョン一致を使用することです。

version: ~1.2.3

これはバージョン1.2.3と、そのリリースに対するすべてのパッチに一致します。言い換えれば、~1.2.3>= 1.2.3, < 1.3.0と同等です。

完全なバージョン一致構文については、semverドキュメントを参照してください。

プレリリースバージョン

上記のバージョン制約は、プレリリースバージョンには一致しません。たとえば、version: ~1.2.3version: ~1.2.4に一致しますが、version: ~1.2.3-1には一致しません。以下は、プレリリースとパッチレベルの一致を提供します。

version: ~1.2.3-0

リポジトリURL

可能な限り、https://リポジトリURLを使用し、その後にhttp:// URLを使用してください。

リポジトリがリポジトリインデックスファイルに追加されている場合、リポジトリ名はURLのエイリアスとして使用できます。alias:または@の後にリポジトリ名を使用してください。

ファイルURL (file://...) は、固定されたデプロイパイプラインによってアセンブルされたチャートの「特別なケース」と見なされます。

ダウンローダープラグインを使用する場合、URLスキームはプラグインに固有になります。チャートのユーザーは、依存関係を更新または構築するために、スキームをサポートするプラグインをインストールする必要があります。

repositoryフィールドが空白の場合、Helmは依存関係に対する依存関係管理操作を実行できません。その場合、Helmは依存関係がchartsフォルダーのサブディレクトリにあり、名前が依存関係のnameプロパティと同じであると見なします。

条件とタグ

オプションである依存関係には、条件またはタグを追加する必要があります。

条件の推奨される形式は

condition: somechart.enabled

ここで、somechartは依存関係のチャート名です。

複数のサブチャート(依存関係)が組み合わさってオプションまたは交換可能な機能を提供する場合、これらのチャートは同じタグを共有する必要があります。

たとえば、nginxmemcachedの両方がチャート内のメインアプリのパフォーマンス最適化を提供し、その機能が有効になっている場合に両方が存在する必要がある場合、両方に次のようなタグセクションが必要です。

tags:
  - webaccelerator

これにより、ユーザーは1つのタグでその機能をオン/オフにすることができます。