【发布时间】:2020-10-20 02:56:54
【问题描述】:
我计划将我的项目升级到 HELM。
我在 deployment.yaml 中定义了许多环境变量。
最佳实践是最好在 values.yaml 文件或模板/deployment.yaml 文件中定义环境变量?
如果有您使用的示例应用程序,您能帮忙吗?
【问题讨论】:
标签: kubernetes kubernetes-helm helmfile
我计划将我的项目升级到 HELM。
我在 deployment.yaml 中定义了许多环境变量。
最佳实践是最好在 values.yaml 文件或模板/deployment.yaml 文件中定义环境变量?
如果有您使用的示例应用程序,您能帮忙吗?
【问题讨论】:
标签: kubernetes kubernetes-helm helmfile
您使用values.yaml 来定义环境变量完全取决于您。值是静态的吗?我将它留在部署 yaml 中没有问题。如果它是一个秘密,你应该使用 k8s 秘密来管理它,或者在你使用 helm install --set-value.. 时输入它如果值是动态的并且经常更改或将来可能会更改,那是 values.yamlimo 的真正用途
【讨论】:
免责声明:我的答案基于 Helm 3。所以让我们开始吧:
例如,我想使用 helm 在我的集群上安装 Elasticsearch,所以我使用以下命令:
helm install elastic/elasticsearch --version 7.8.0
但我不想使用图表的默认值。所以我去了https://hub.helm.sh/charts/elastic/elasticsearch和https://github.com/elastic/helm-charts/blob/7.8/elasticsearch/values.yaml,看看有什么可以改变的,然后我创建了命令:
helm install elastic/elasticsearch --set minimumMasterNodes=1 --set protocol=https --version 7.8.0
但在我的 CD 工具中,最小主节点是不同的值,由于这是一个环境变量,我将命令行更改为:
helm install elastic/elasticsearch --set minimumMasterNodes=$MIN_MASTER_NODES --set protocol=https --version 7.8.0
因此,一旦正确提供了 MIN_MASTER_NODES 环境变量,上述命令将在您的 CD 工具中正常运行。
【讨论】: