Skip to content

refactor(bootstrap): argocd/repos.yaml を bootstrap/argocd-repos.yaml へ - #635

Merged
5ym merged 1 commit into
mainfrom
argocd-repos-flat
Oct 30, 2026
Merged

5ym merged 1 commit into
mainfrom
argocd-repos-flat

Conversation

@5ym

@5ym 5ym commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator

bootstrap/ を平らにする残り(#633 の続き)。bootstrap/argocd/repos.yaml を bootstrap/argocd-repos.yaml に移し、
argocd-values.yaml の extraObjects の apps Application を path: bootstrap + include: argocd-repos.yaml にする。

machine config の差分

render.sh の前後の controlplane.yaml を比べると、argocd の inline manifest の中の 2 行だけ:

<       include: repos.yaml
<     path: bootstrap/argocd
---
>       include: argocd-repos.yaml
>     path: bootstrap

Argo CD で起きること

  • apps が描く物(ApplicationSet repos と repos-forgejo)は中身が同じ。tracking-id(annotation、Argo CD 3 の既定)は
    apps:argoproj.io/ApplicationSet:argocd/repos で、Application の名前で決まり path は入らない。なので path が変わっても
    prune も作り直しも起きず、同期は差分無し。
  • 当てる順は main にマージしてから apply-config → upgrade-k8s。 マージから当てるまでの間、apps は古い path
    (bootstrap/argocd)が main に無いので ComparisonError で止まるだけ(比べられないと同期も prune もしない)。ApplicationSet は
    その間も動き続ける。逆に先に当てると、新しい include が main の何にも当たらず空の描き出しになる(自動同期は全部を消す
    prune を allowEmpty 無しでは拒むが、頼らない)。

確かめたこと

  • render の前後の差分は上の 2 行だけ
  • Renovate の dry-run(lookup)で talos・kubernetes・gateway-api・cilium・cert-manager・argo-cd・infisical-standalone・redis と infisical のイメージを拾う。renovate-config-validator --strict は通る

当てるのは人(このあと)。

🤖 Generated with Claude Code

https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs

bootstrap/ を平らにする残り。apps の Application の path を bootstrap、include を
argocd-repos.yaml にする。machine config の差分はこの 2 行だけ。

当てる順は main にマージしてから apply-config → upgrade-k8s。マージから当てるまでの間、
apps は古い path が無いので ComparisonError で止まるだけで何も消さない。ApplicationSet の
tracking-id は Application の名前で決まるので、path が変わっても prune も作り直しも起きない。

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

claude Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

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


レビュー結果

問題無しです。 指摘は無く、マージ後に人が当てる前提で内容に矛盾はありません。

確認したこと:

  • 旧パス(bootstrap/argocd/、argocd/repos.yaml)への参照は残っていません。リポジトリ全体を grep しました。README、docs、recovery、apps/forgejo、deploy/argocd.yaml、render.sh のコメントは全て更新されています。
  • argocd-values.yaml の path: bootstrap と include: argocd-repos.yaml は、実在するファイル名と一致します。directory.include は完全一致のグロブです。bootstrap/ 直下にある *.sops.yaml や values 系の YAML は拾われません。recurse も指定していないので、サブディレクトリも見ません。
  • 当てる順序(main にマージしてから apply-config → upgrade-k8s)の説明は筋が通っています。tracking-id が Application 名ベースなので、path が変わっても prune や作り直しは起きません。この点は PR 本文の説明どおりで、私は実クラスタでは確認していません。
  • renovate.json は bootstrap/argocd-values.yaml を参照しているだけで、移動したファイルは対象外です。

要確認(軽微・任意): include が 1 ファイル名の完全一致であることに依存しています。将来 bootstrap/ に argocd-repos.yaml と同名の別ファイルが増えることは無いので現状は安全です。一方、bootstrap/ を平らにした結果、README にある「広げると ArgoCD が消える」リスクの置き場所が include 1 行だけになりました。コメントで注意喚起済みなので対応は不要です。
· branch: argocd-repos-flat

@5ym
5ym merged commit 6336ecc into main Oct 30, 2026
5 checks passed
@5ym
5ym deleted the argocd-repos-flat branch October 30, 2026 15:13
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