我有三个环境 - QA,暂存,生产。每个都有自己的凭据。属性文件
现在我只有一个秘密,它被引用并挂载在我的 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
在一个 YAML 文件中使用 helm 控制结构指令来管理跨dev, stage and prod
部署是糟糕的设计(也从安全角度来看)。
最好为不同环境中所需的相应部署管理不同的 k8s 对象。
可能需要在管道的每个阶段维护一个不同的密钥,或者在管道遍历管道时对其进行修改。此外,请注意,如果将密钥作为 JSON 或 YAML 存储在 SCM 中,则可能需要某种形式的加密来保护敏感信息。