这是您可以在 Kustomize 之外完成此操作的一种方法。
可以使用valueFrom
关键字在 Pod 规范中将 Secret 作为环境变量使用。有关此的文档位于https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables。
知道了这一点,您可以修改脚本来为每个文件创建一个主密钥和一个密钥。一个示例(未经测试)可能类似于:
for secret in .secrets/*; do
literals="$literals --from-literal=$(basename $secret)=$(cat $secret)"
done
kubectl create secret generic prod-secrets "$literals"
然后,在您的规范中引用该密钥中的特定密钥以获取相应的环境变量。假设其中之一是SECRET_USERNAME
:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: prod-secrets
key: SECRET_USERNAME
restartPolicy: Never