Skip to content

chore(deploy): 秘密を Infisical から SOPS(SopsSecret)に移す - #252

Merged
5ym merged 1 commit into
mainfrom
chore/sops-secrets
Nov 2, 2026
Merged

5ym merged 1 commit into
mainfrom
chore/sops-secrets

Conversation

@5ym

@5ym 5ym commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

この namespace の Infisical の秘密(InfisicalSecret)を、SOPS で暗号化した deploy/secrets.sops.yaml(SopsSecret secrets)に置き換える。danything/gitops#687 と同じ形。

  • 値はクラスタにある今の Secret からそのまま暗号化した(平文はファイルに書いていない)。Secret の中身は変わらない
  • 根に .sops.yaml を置いた(gitops の deploy/ の規則と同じ。値だけを管理者の鍵とクラスタの鍵で暗号化、mac_only_encrypted)
  • sops-secrets-operator は今ある Secret を引き取る(defaultEnforceOwnership)ので、Secret は消えない。InfisicalSecret を消しても Infisical operator は Secret を残す
  • secrets.infisical.com/auto-reload を reloader.stakater.com/auto に
  • VolSync の Secret(volsync-<pvc>)も secrets.sops.yaml に移し、volsync.yaml の InfisicalSecret を消した
  • bun fmt の対象から deploy/*.sops.yaml を外した(sops edit がインデント 4 で書き直すため)

マージ後に、全部の Secret の中身のハッシュが移す前と同じかを確かめる。

🤖 Generated with Claude Code

https://claude.ai/code/session_01T8TqVdo6LUrWKdVQgbScVU

@claude

claude Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

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


レビュー結果

大きな問題は見つかりませんでした。

  • 不具合: deploy/deployment.yaml が参照する xool-secrets と、SopsSecret 内のテンプレート名が一致しています。secretKeyRef のキーも client-id / client-secret / hash / x-bearer-token で揃っています(deploy/secrets.sops.yaml)。volsync-xool-db の名前と、volsync.yaml の ReplicationSource が参照する Secret 名も一致しています。deploy/ はディレクトリごと ArgoCD に渡す構成で、kustomization に secret.yaml を列挙している箇所はありません。
  • セキュリティ: data / stringData の値はすべて ENC[...] で、平文の混入はありません。公開されるのは age の公開鍵(recipient)だけで、問題ありません。mac_only_encrypted と encrypted_regex は .sops.yaml と SopsSecret 側で揃っています。
  • 設計: bunfig.toml で deploy/*.sops.yaml を fmt の対象から外したのは妥当です。volsync.yaml のコメントも新しい配置に合わせて直されています。

要確認(マージ前)

  1. reloader.stakater.com/auto を使うには、クラスタに Reloader が入っている必要があります。入っていないと、Secret を変えても Deployment が再起動しません。このリポジトリからは確認できませんでした。
  2. sops-secrets-operator が既存の Secret を引き取る設定(defaultEnforceOwnership)になっているかを、マージ前に確認してください。PR 本文にあるとおり、マージ後には全 Secret の内容のハッシュを比較する予定です。
  3. 引き取りに失敗した場合に備えて、volsync-xool-db の RESTIC_REPOSITORY が移す前の値(s3:<endpoint>/<bucket>/volsync/xool/xool-db)と一致するかも、上のハッシュ比較で見ておくと安全です。暗号化された値は、このレビューでは復号して確認できません。

@5ym
5ym merged commit 299ce7f into main Nov 2, 2026
5 checks passed
@5ym
5ym deleted the chore/sops-secrets branch November 2, 2026 06: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