当前位置:  开发笔记 > 后端 > 正文

从Kustomize中的文本文件目录创建每个文件的Kubernetes机密

如何解决《从Kustomize中的文本文件目录创建每个文件的Kubernetes机密》经验,为你挑选了1个好方法。

我有很多秘密的“环境变量”,我想进入kubernetes集群。当前,我在这些秘密的目录中,每个var都有一个对应的文件,该文件的命名方式与应该分配给该变量的方式相同。使用docker-compose,这给了我一个类似的脚本for secret in .secrets/*; do export "$(basename $secret)"="$(cat $secret)" ; done

我希望避免在kustomize文件中明确指定这些秘密中的每一个。是否有一种仅通过指定目录来为每个文件创建一个秘密的简单方法?



1> Andy Shinn..:

这是您可以在Kustomize之外完成此操作的一种方法。

可以在Pod规范中使用valueFrom关键字将秘密作为环境变量使用。有关此文档,请访问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

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有