Skip to content

AdGuard の設定を Deployment の中に置き、ハッシュの注釈と CI をやめる - #443

Merged
5ym merged 1 commit into
mainfrom
adguard-config-inline
Oct 18, 2026
Merged

5ym merged 1 commit into
mainfrom
adguard-config-inline

Conversation

@5ym

@5ym 5ym commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

AdGuard の設定を ConfigMap から initContainer の env(CONFIG)に移す。設定を変えれば Pod の定義が変わって作り直されるので、ハッシュの注釈(doany.io/config-sha256)と見張りの workflow(adguard-config.yml)が要らなくなる。

  • 中身は不変(kubectl create --dry-run で読んだ値が元の ConfigMap と 4066 バイトで一致)
  • renovate-post-upgrade.sh は deployment.yaml を読み書きするように変更。今の版(v0.107.79)で流して 移行は要らなかった、切り出し→書き戻しの往復も元と一致
  • マージすると AdGuard の Pod が 1 回作り直される(DNS が数秒止まる)

🤖 Generated with Claude Code

https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV

設定を ConfigMap に置いていたので、変えても Pod が作り直されず、Deployment に sha256 を手で書き、
ずれを adguard-config.yml で見張っていた。設定を initContainer の env(CONFIG)に置けば、設定を
変えると Pod の定義が変わって作り直されるので、3 つとも要らなくなる。

- apps/adguardhome/config.yaml(ConfigMap)と .github/workflows/adguard-config.yml を消す
- 中身は 1 バイトも変えていない(kubectl で読んだ値が元の ConfigMap と一致)
- renovate-post-upgrade.sh は deployment.yaml の CONFIG を読み書きする。今の版で流して「移行は要らなかった」

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV
@claude

claude Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

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


レビュー結果

差分とリポジトリ内の参照を確認しました。問題は見つかりませんでした。

  • 古い ConfigMap への参照: adguardhome-config、config-sha256、adguardhome/config.yaml、adguard-config は、このブランチのどこにも残っていません。volumes からも adguardhome-config が消えています。
  • Pod の作り直し: strategy: Recreate のままです。env の値を変えれば Pod の定義が変わるので、設定の変更で作り直されます。これがこの PR の狙いです。
  • renovate-post-upgrade.sh の split:
    • awk の状態遷移を追いました。CONFIG の行、value: | の行、字下げ 16 文字以上の本体、それより浅い行からの後ろ、の順で分けています。切り出しと書き戻しで対称になっています。
    • 本体の空行は length($0) で終端扱いにならず、書き戻しでも空行のまま残ります。
    • 実行はしていません。往復が元と一致するという PR 本文の記述に頼っています。
  • printf "%s" "$CONFIG": | のブロックは末尾に改行が 1 つ付くので、元のファイルと同じ内容になります。4066 バイトで一致したという記載とも合います。
  • $( の罠: deployment.yaml の注釈に書いてあります。今の設定に $( は含まれていません。
  • renovate.json: fileFilters から config.yaml を外したのは正しいです。docs/router.md と renovate.yaml の参照も追従しています。
  • セキュリティ: 設定にシークレットの混入はなく、公開リポジトリへの注意書きも入っています。allowed_clients: [] は docs/router.md に書かれた意図どおりで、今回の変更ではありません。

要確認(軽微):

  • env の値は Pod の spec に入ります。サイズは 4 KB 程度で、上限(Pod 全体で etcd の約 1.5 MB)には余裕があります。ただし設定が大きく育つ場合は気にしてください。
  • マージ時に DNS が数秒止まることは PR 本文に書かれています。時間帯の判断はお任せします。

テスト: この種の変更に自動テストはなく、PR 本文の手動確認(--dry-run の突き合わせと現行版での往復)で足りていると思います。

@5ym
5ym merged commit 4a9473d into main Oct 18, 2026
2 checks passed
@5ym
5ym deleted the adguard-config-inline branch October 18, 2026 05:37
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