Kubernetesのsecretsをファイルから設定する
Google Container Engine から接続する | Cloud SQL for MySQL | Google Cloud Platform
GKEからCloud SQL Proxyを使うにあたり、公式ドキュメントの方法で接続用のユーザアカウントをk8sのsecretsに登録していたのだが、件数が多い場合にコマンドで都度設定するのは億劫だなと思っていたら、公式に方法が記載されていた。
下記のような形式でyamlを書いて $ kubectl create -f ./secret.yaml
で作成。
apiVersion: v1 kind: Secret metadata: name: [SECRET_NAME] type: Opaque data: username: [BASE64_ENCODED_USER_NAME] password: [BASE64_ENCODED_PASSWORD]
一点気をつけたいのが、
Each item must be base64 encoded:
とあるように、値はBase64エンコードされている必要がある。
おまけ: 設定した値をyamlにエクスポートする
(secretsに限らないが)get
に -o yaml
オプションを指定すれば設定した値をファイルに書き出しておける。
$ kubectl get secrets [SECRET_NAME] -o yaml > path_to.yaml