🔑
k8sのSecret リソースで設定した値を静的な値でoverlayする
kind: Deployment
metadata:
name: secret-env-pod
spec:
...
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
環境変数として使用しているSecretを、別の環境で暗号化しない静的な値としてoverlayするとき、
kind: Deployment
metadata:
name: secret-env-pod
spec:
...
env:
- name: SECRET_USERNAME
value: 'admin'
- name: SECRET_PASSWORD
value: 'password'
とやってもエラーになる。
spec...env[0].valueFrom: Invalid value: "": may not be specified when `value` is not empty
以下のようにvalueFromにnullを設定してあげる必要がある。
kind: Deployment
metadata:
name: secret-env-pod
spec:
...
env:
- name: SECRET_USERNAME
value: 'admin'
valueFrom: null
- name: SECRET_PASSWORD
value: 'password'
valueFrom: null
Discussion