Kubernetesのsecretsをファイルから設定する

Google Container Engine から接続する  |  Cloud SQL for MySQL  |  Google Cloud Platform

GKEからCloud SQL Proxyを使うにあたり、公式ドキュメントの方法で接続用のユーザアカウントをk8sのsecretsに登録していたのだが、件数が多い場合にコマンドで都度設定するのは億劫だなと思っていたら、公式に方法が記載されていた。

Secrets | Kubernetes

下記のような形式で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