Skip to content

cilium-drift: 空文字の値のキーを比べない - #432

Merged
5ym merged 1 commit into
mainfrom
drift-empty-keys
Oct 17, 2026
Merged

5ym merged 1 commit into
mainfrom
drift-empty-keys

Conversation

@5ym

@5ym 5ym commented Oct 17, 2026

Copy link
Copy Markdown
Collaborator

Talos に移った 2026-10-17 の朝から、cilium-drift が毎回 debug-verbose・nodeport-addresses・policy-cidr-match-mode(どれも値は空文字)を「git にしか無い」として落ちていた。Talos の inlineManifest で当てると空文字のキーが live の cilium-config に残らない。値が空なので実害は無く誤検知。両側から空文字のキーを落として比べる。

🤖 Generated with Claude Code

https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV

@claude

claude Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 18s —— View job


レビュー結果

問題なしです。

  • .github/workflows/cilium-drift.yml の変更は、rendered.json と live.json の両方から値が "" のキーを落とすだけです。左右を同じ条件で絞っているので、片側だけ欠けて誤検知になることはありません。
  • 空文字の値が cilium-config に残るかどうかで差が出ていた debug-verbose・nodeport-addresses・policy-cidr-match-mode は、この変更で比較対象から外れます。
  • yq -o=json が出す値は文字列です。Helm の ConfigMap data は文字列しか持てないので、v != "" の判定で型が合わなくなることもありません。
  • 一致時のメッセージ 一致({len(r)} キー) は、空文字を除いた後のキー数になります。表示が少し変わるだけで実害はありません。
  • 副作用として、空文字のキーが git と live の両方から消えた場合や、片側にだけある場合は検出できなくなります。値が空なら挙動は変わらないので、PR 説明のとおり許容できます。
  • ワークフローのテストはありません。この変更に対するテストは不要と考えます。
  • CLAUDE.md はリポジトリに無く、周辺コードの規約(日本語コメント、::error:: 出力)には沿っています。

要確認(任意): 空文字の値は、Cilium の既定で「無効」を表すものが多いです。将来 values.yaml で値を空から非空に変えた場合は、git 側に値が出るので差分として検出されます。逆に live に非空で残っている場合も、only_live か differ で検出されます。見落としにはなりません。

@5ym
5ym merged commit 8804381 into main Oct 17, 2026
1 check passed
@5ym
5ym deleted the drift-empty-keys branch October 17, 2026 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant