我有3个环境-质量检查,暂存和生产。 每个人都有其自己的certificate.properties文件
现在我只有一个秘密,它已按如下方式引用并安装在我的yaml文件中
- name: identity-service-secret-here-credentials-volume
mountPath: "/root/.secrets"
.
.
.
- name: identity-service-secret-here-credentials-volume
secret:
secretName: identity-service-secret-here-credentials
我希望它做的等同于
if(env = QA)
secretName = secret-qa
if(env = Staging)
secretName = secret-staging
if(env = Prod)
secretName = secret-prod
答案 0 :(得分:1)
从头盔的角度(从安全角度出发)设计头盔控制结构指令以在一个YAML文件中管理dev, stage and prod
上的部署是很糟糕的。
最好针对不同环境中所需的各个部署管理不同的k8s对象。
可能有必要在管道的每个阶段中维护一个独特的秘密,或者在它遍历管道时对其进行修改。另外,请注意,如果将Secret作为JSON或YAML存储在SCM中,则可能需要某种形式的加密来保护敏感信息。