マルチ環境のデフォルト値とオーバーライド値を比較する
異なる環境(dev、staging、production)のHelm valuesファイルを検証・比較。スペルミスのキー、型の不一致、欠落したオーバーライドを検出します。
Advanced Patterns
詳細な説明
マルチ環境のValues管理
Helmチャートには通常、values.yaml(デフォルト)と環境固有のオーバーライドファイル(values-dev.yaml、values-staging.yaml、values-prod.yaml)があります。比較モードはこれらのファイル間の問題を検出するのに役立ちます。
典型的なファイル構造
my-chart/
values.yaml # デフォルト
values-dev.yaml # 開発オーバーライド
values-staging.yaml # ステージングオーバーライド
values-prod.yaml # 本番オーバーライド
比較が検出する項目
- スペルミスのキー:
nodeselectorはnodeSelectorのタイプミスとしてフラグ(レーベンシュタイン距離 = 1) - 型の不一致: デフォルトが数値でオーバーライドが同じパスで文字列の場合
- 不明なキー: デフォルトに存在しないオーバーライドのキーはフラグ
- オーバーライド検証: オーバーライド値もHelmベストプラクティスに基づいてチェック
ベストプラクティス
- オーバーライドファイルは最小限に — デフォルトと異なる値のみ含める
- 各オーバーライドが存在する理由をコメントで文書化
- デプロイ前に各環境ファイルでバリデーターを実行
- マルチ環境のvalues管理に
helmfileやArgo CDの使用を検討
ユースケース
デプロイ前のバリデーションパイプラインで、チャートデフォルトに対する環境固有のオーバーライドをチェックし、タイプミスや型の不一致がデプロイメント失敗を引き起こす前に検出。