【发布时间】:2019-06-03 08:34:11
【问题描述】:
首先,有一点背景:我有 4 个 Kubernetes 集群,每个环境(开发、登台、测试、生产)一个。每个集群都有自己的 values.yaml 文件,其中包含我们编写的所有 helm 图表的特定于 env 的配置。
因此,当我们的 CD 管道将 mychart 部署到 develop 集群时,它基本上会执行以下操作:
helm install -f base-values.yaml -f develop-values.yaml ./mychart.tgz
现在,让我们假设 mychart 有一个 requirements.yaml 文件,它将 the mongodb chart 指定为子图依赖项。 mongodb 图表引用,例如.Values.mongodbRootPassword。当mychart 包含为子图表时,我可以在mychart 的默认values.yaml 中设置.Values.mongodb.mongodbRootPassword 以更改此值。
我的问题是,鉴于我当前的 CD 管道,如果我在 develop-values.yaml 中设置 .Values.mongodb.mongodbRootPassword,它将被部署到 develop 集群的 所有 mongodb 实例使用 - 不是只是mychart 的。
所以,我的问题:
- 使用每个环境的
values.yaml文件,我将如何在集群特定的values.yaml文件之一中设置mychart的mongodb 的root 密码? - 这甚至可能吗?还是我当前的 CD 方法(每个环境值文件)是一种反模式?
- 如果这是不可能的或反模式,您将如何根据每个环境设置掌舵单个图表和子图表的值?
【问题讨论】:
标签: kubernetes continuous-deployment configuration-management kubernetes-helm