Skip to content

feat: Infisical を取り除く - #690

Merged
5ym merged 1 commit into
mainfrom
remove-infisical
Nov 2, 2026
Merged

5ym merged 1 commit into
mainfrom
remove-infisical

Conversation

@5ym

@5ym 5ym commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

秘密は全部 SOPS(sops-secrets-operator の SopsSecret)に移した(#685〜#688)ので、Infisical を完全に取り除く。

消したもの・直したもの

  • bootstrap: render.sh の infisical の chart・復号・inline(infisical-secrets)・確認の needle・版の echo、infisical-values.sops.yaml(ファイルごと)。
    infisical の chart 専用だった updatedAt を消す sed も外した(ほかの chart は出さない。手元で描いて 0 件を確認)。
    .sops.yaml と argocd-values.sops.yaml・cert-manager-values.sops.yaml の encrypted_regex から Infisical だけのキー(password・postgresPassword・ENCRYPTION_KEY・AUTH_SECRET・CLIENT_ID_GITHUB_LOGIN・CLIENT_SECRET_GITHUB_LOGIN)を外した(メタデータだけ。sops -d が通ることを確認)。
    apiserver-rbac.yaml の viewer から secrets.infisical.com。README・talos.md・コメント
  • talos-boot: infisical の値のダミー作りと INFISICAL_VALUES、infisical の Pod・PVC・再起動後の Postgres の確認(PV の経路は t-src / t-dst が見ている)
  • deploy/infisical/ をまるごと(公開経路・operator・push-bridge・SMTP の Secret・VolSync)。Argo CD が prune する
  • deploy/smtp-relay: NetworkPolicy から infisical の namespace、README
  • deploy/matrix: hookshot の Infisical の webhook の受け口と HOOK_INFISICAL、secrets.sops.yaml の hook-infisical(sops unset)
  • deploy/forgejo: init と Runner の待ちのメッセージ(ConfigMap が変わるので Forgejo と Runner が入れ替わる)、README(なくなった forgejo-secrets.yaml・argocd-creds.yaml の記述も)
  • deploy/renovate: 秘密が無いときのメッセージ、README
  • deploy/backup・external-dns・rybbit・cloudflare-ddns・volsync・headlamp・sops-secrets-operator: 置き場の記述
  • recovery: infisical.sh・infisical-ca.mjs を消し、README の 6(Infisical の DB)・7(Kubernetes auth の CA)を消して 8〜10 を 6〜8 に詰めた。秘密は git の SOPS、クラスタの鍵は machine config(bootstrap/sops-age.sops.yaml)なので復元では何もしない
  • tools: t.ps1 のログインの中継(Start-LoginRelay。BOM 付き UTF-8・文字列 ASCII のまま。pwsh と 5.1 の Parser で構文 0 件)、Dockerfile の infisical CLI、compose の INFISICAL_PROFILE、tools.yml の infisical --version、README
  • renovate.json: bootstrap charts から infisical の値のファイル
  • README・docs: 秘密の扱いを SOPS に、docs/decisions.md の「infisical だけは ArgoCD に移せない」を「秘密は SOPS で git に置く(2026-11-02 に Infisical から替えた)」に、docs/cloudflare-tokens.md の置き場
  • pulumi/: コメントだけ(README.md・entra-smtp.ts・notifications.ts)。il.doany.io のリダイレクト URI や DNS は Pulumi に無かった(DNS は external-dns が HTTPRoute から作っていたので、HTTPRoute の prune で消える)。main で pulumi up が走るが、差分は無いはず
  • 残したもの: 経緯としての短い記述(ROADMAP・smtp-relay・reloader・sops-secrets-operator のコメント)には「2026-11-02 にやめた」などを添えた

マージのあとにすること

  1. Argo CD が deploy/infisical/ を prune する(infisical-operator・infisical-push-bridge の Application、公開経路、VolSync、infisical-smtp)。operator の CRD が消えると、残っている InfisicalSecret(infisical・infisical-push-bridge の namespace の 3 つだけ)も消える。ほかの namespace の Secret は SopsSecret が持ち主なので消えない(マージ前に確認済み)
  2. machine config を当て直す: tools/t --admin bootstrap/apply.sh --mode=no-reboot → talosctl upgrade-k8s(同じ版)。inline manifests の infisical と infisical-secrets が消え、infisical の namespace(本体・Postgres・Redis)が消える
  3. Infisical の PVC と DB は消える。 R2 の volsync/infisical/data-postgresql-0 のバックアップは残る(要らなければあとで消す)
  4. 残っていれば infisical・infisical-operator・infisical-push-bridge の namespace を確認する
  5. Matrix の部屋 server の hookshot の infisical の受け口は設定から消えるだけ。Infisical 側の webhook は Infisical ごと無くなる

🤖 Generated with Claude Code

https://claude.ai/code/session_01T8TqVdo6LUrWKdVQgbScVU

秘密は全部 SOPS(SopsSecret)に移したので、Infisical の本体・operator・push-bridge と、その道具と記述を消す。
- bootstrap: render.sh の infisical の chart・復号・inline(infisical-secrets)と infisical-values.sops.yaml。
  .sops.yaml などの encrypted_regex から Infisical だけのキーを外す。apiserver-rbac から secrets.infisical.com
- talos-boot: infisical の値のダミーと INFISICAL_VALUES、infisical の Pod と Postgres の確認
- deploy/infisical をまるごと(Argo CD が prune する)。smtp-relay の NetworkPolicy から infisical の namespace
- matrix: hookshot の Infisical の webhook と hook-infisical
- recovery: infisical.sh・infisical-ca.mjs と手順の 6・7。秘密は git の SOPS なので復元では何もしない
- tools: t.ps1 のログインの中継、Dockerfile の infisical CLI、compose の INFISICAL_PROFILE
- README・docs・各 deploy の README の置き場の記述を SOPS に。decisions.md に「秘密は SOPS で git に置く」

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

claude Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

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


レビュー結果

Infisical の除去として、ブロッカーになる問題は見つかりませんでした。

確認したこと

  • git grep で infisical、HOOK_INFISICAL、hook-infisical、infisical-secrets、INFISICAL_* を探しました。コメント内の経緯の記述(reloader・sops-secrets-operator)が残るだけです。生きた参照は残っていません。
  • bootstrap/render.sh で、版の読み取り、decrypt、inline、確認の needle の 4 か所がそろって消えています。cloudflare-secret の needle は残っています。for v in ... の空チェックと echo も整合しています。
  • updatedAt を消す sed は、infisical の chart 専用だったので外して問題ありません。PR 本文のとおり、ほかの chart では 0 件を確認済みとのことです。
  • deploy/matrix/hookshot.yaml では、HOOK_INFISICAL の env と connection 定義が両方消えています。${HOOK_*} の差し替え側に参照だけ残るずれはありません。
  • Forgejo の ConfigMap と Runner の変更で、Pod が入れ替わることは PR 本文で明記されています。

要確認(マージ後の運用)

  • Infisical の PVC と DB は消えます。 R2 の volsync/infisical/... のバックアップだけが残ります。本文に書かれているとおりで、意図どおりであることだけ確認してください。
  • 順序は、先に Argo CD が prune して、次に machine config を当て直す形になっています。逆にすると、infisical の namespace が消えるまでの間に InfisicalSecret と CRD が先に消えます。ほかの namespace の Secret は SopsSecret が持ち主なので影響しない、と本文にあります。マージ前の確認が済んでいるなら問題ありません。
  • R2 の古いバックアップを消すのは後回しで構いません。

テストは、CI の talos-boot と tools が通っていることを確認してください。ローカルでは実行していません。

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

🍹 preview on doany-cloudflare/prod

Pulumi report
Previewing update (prod):

@ previewing update....
pulumi:pulumi:Stack doany-cloudflare-prod  
Resources:
61 unchanged

@5ym
5ym merged commit ea52e49 into main Nov 2, 2026
10 checks passed
@5ym
5ym deleted the remove-infisical branch November 2, 2026 07:44
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