sealed-secrets
Secretには値をbase64したものが入ってるだけだから、リポジトリには上げられない Configから値を分離することが責務なんだろうな
これだけ別にApplyする
Git外で管理する責任を1つの鍵に押し付けているとも言える
いくつかのツールで構成される
Tips
証明書の取得
$ kubeseal --fetch-cert > cert.pem
Secretリソースの暗号化
$ kubeseal --format yaml --cert cert.pem < secret.yaml > sealed-secret.yaml
sealed-secret.yamlだけをPushしたり、Applyしたりする
秘密鍵の取得
$ kubectl get secret -n sealed-secrets -l sealedsecrets.bitnami.com/sealed-secrets-key=active -o yaml > sealed-secrets-key.yaml
sealed-secretsはコントローラをデプロイしているネームスペース
SealedSecretリソースの復号化
クラスタの移行などで使うことがある
$ kubeseal --recovery-unseal --recovery-private-key sealed-secrets-key.yaml -o yaml < sealed-secret.yaml > secret.yaml