Kubernetes

Helm Values Diff削除した設定が戻る理由を確認

共通のデフォルト値と二つの上書きから、それぞれの有効な設定を計算します。

Helm Values Diff

旧上書き

差分

三つの入力はブラウザ内で処理され、内容は送信されません。

出力値は初期設定でマスクされます。パスとキーは表示され、入力と置換プレビューは原文のままです。伏字のYAMLはレビュー用です。

Helm 3.19.0の単一チャート。共通デフォルトに各上書きを個別適用。マッピングは結合、リストは置換し、差分は添字で比較します。

各入力200,000文字・20,000ノード・深さ60。差分5,000件、レポート400万文字、実行5秒まで。

設定を入力するか比較を実行してください。

Helm Values Diffは、環境用のValuesファイルから一行消したのに設定が残る場面で役立ちます。チャートのデフォルト値が再び採用されたのかもしれません。有効な値の比較と、書かれた上書き自体の比較を切り替え、レビューで確認したい対象を選べます。

Helm Values Diffを使う理由

継承された値を見落とさない

Helm Values Diffでは共通のデフォルト値に旧版と新版を別々に適用します。新版からreplicasを消すとデフォルトに戻り、旧版の値は引き継ぎません。Helm valuesの差分を設定の実際の効果として読めます。

共通の設定ツリーから二つの上書き枝へ分岐し、削除された葉の位置にデフォルトの葉が戻る図。

値を隠しても変更は残る

異なるパスワードを先に比較し、その後で表示用の値をマスクします。同じ伏字が並んでいても変更済みの印は残ります。追加されたオブジェクトや配列の内部も対象になり、機密でない数値や真偽値も隠れます。

異なる二つの値がマスクで覆われても、間にある変更の印はそのまま残っている図。

比較対象と出力を取り違えないために

01

三つの入力を使い分ける

左側の切り替えは、それぞれ独立した入力内容を保持します。チャート標準の値と、旧版・新版の完全な上書きを分けてください。空欄は空のマッピングですが、三つとも空なら入力を求めます。新版の土台に旧版を重ねることはありません。

02

宣言と有効値を別々に見る

初期表示は有効値の差分です。元の上書きモードなら、最終結果が同じでも宣言だけが変わった箇所を確認できます。右側の旧・新マージ結果は、比較モードにかかわらず有効値を表示します。

03

現在の結果だけを書き出す

自動比較は編集が止まってから350ミリ秒後に実行します。無効にすると比較ボタンとCtrl/Cmd+Enterが使えます。入力や設定を変えた時点で古い結果の出力は禁止されます。置換操作はプレビューを確認して適用し、一度だけ元に戻せます。

設定レビューに必要な情報

マッピングは再帰的に結合

上書きにない子キーはデフォルトから補われます。空のマッピングでは既存の子キーは消えません。一方、リストは全体を置換するため、空のリストで元のリストを空にできます。false、0、空文字も値として保持します。

パスと型を同時に確認

追加・削除・変更の件数に加え、JSON Pointer形式のパスと変更前後の型を表示します。存在しないキーとnull、文字列の数字と数値を区別します。パス内のスラッシュは~1、チルダは~0で表されます。

書式変更によるノイズを除く

コメント、空白、マッピングのキー順は構造比較に影響しません。リストの順序は意味を持ち、比較時は添字で対応します。先頭への挿入で後続の複数箇所が変わって見えても、自動的に移動とは判断しません。

全体を残すレビュー用ファイル

JSONレポートにはモデル、比較モード、マスク設定、全差分、旧新の有効なYAMLが含まれます。マージビューでは選択した一方だけを保存します。画面は最初の50件から追加表示できますが、出力は常に全件です。

対応範囲と解釈上の注意

モデルは一つのチャートに限定
Helm 3.19.0の依存関係を持たない単一チャートを基準にします。サブチャート、global伝播、import-values、依存条件、スキーマ検証を再現しません。Goテンプレート、tpl、lookupを実行せず、リリースやクラスタの状態も取得しません。
曖昧なYAMLは明示的に修正
各入力は文字列キーを持つ一つのYAML 1.2 coreマッピングです。複数文書、重複・複雑なキー、ディレクティブ、明示タグ、アンカー、エイリアス、<<キーは拒否します。yesやonなどは引用符で囲んでください。数字はJSONの十進表記、有限値、安全な整数に限定し、アンダーフローを拒否します。小数は倍精度です。
nullはどこでも削除になるわけではない
デフォルトに対応するキーがあるときだけ、上書きのnullでそのキーを削除します。新しいキー、新しいマッピングの中、置換されたリストの要素にあるnullは残ります。上書きキーを省略するとデフォルトを継承するため、削除とは異なります。
伏字の設定をそのまま配布しない
マスクはnull以外の全スカラーを型付きの印に置換します。キー、パス、構造、nullは見えるため、完全な匿名化ではありません。入力欄と置換プレビューも原文のままです。実際の値が必要なレビューに限りマスクを無効にし、共有する内容を確認してください。
上限を超えた場合は出力しない
各入力は200,000文字、20,000ノード、深さ60、累積パス長100万文字までです。差分は5,000件、レポートは400万文字、計算は5秒までで、途中結果を出力しません。複数の-f、--set、reuse/reset-valuesの再現、URL取得、コメントや元の整形の保存も対象外です。

Helm Values Diffのよくある質問

helm upgradeの前に変更内容を見るには?

このページでvalues層を確認し、helm diffなどでレンダリング後のマニフェストも確認してください。値が同じでも、テンプレート、チャートの版、クラスタの機能が変われば生成リソースが変わる場合があります。

環境別ファイルとデフォルトではどちらが優先されますか?

環境別の上書きが優先されます。ネストしたマッピングでは、上書きにない子キーだけをデフォルトから補います。このページは一つの版につき一つの上書き入力なので、複数ファイルは実際の優先順で整理してから渡してください。

リストの要素が追加されず置換されるのはなぜですか?

Helmはそのキーのリスト全体を上書きします。名前による照合や末尾への追加は行いません。差分表示は計算後のリストを添字で比較しますが、これはマージ方法ではなく変更の表示方法です。

チャートのデフォルト値を削除するには?

該当キーの上書きをnullにします。上書きを省略するだけなら標準値に戻ります。デフォルトにないキーのnullは保持されるので、追加された空値と既定キーの削除を区別してください。

シークレットを表示せず変更の有無を確認できますか?

マスクを有効にして比較してください。元の値で検出した変更と型を残し、内容だけを隠します。通常の値も同様に隠れますが、キー名やパスは公開されるため、共有前に確認が必要です。

設定比較で気になるケースはありますか?

二つの有効な設定を確認

Helm Values Diffで上書きの宣言と実際の結果を見比べ、今回のレビューに必要なビューを保存しましょう。