【问题标题】:How to set java environment variables in a helm chart?如何在 helm 图表中设置 java 环境变量?
【发布时间】:2020-07-08 10:41:52
【问题描述】:

在 helm 图表中为 java 应用程序的部署设置环境变量以便我可以在 dev 和 prod 环境中使用相同的图表的最佳做法是什么?我对这两种环境都有单独的 Kubernetes 部署。

spec:
    containers:
        env:
           - name: SYSTEM_OPTS
           - value: "-Dapp1.url=http://dev.app1.xyz -Dapp2.url=http://dev.app2.abc ..."

同样,我的 prod 变量类似于

"-Dapp1.url=http://prod.app1.xyz -Dapp2.url=http://prod.app2.abc ..."

现在,我如何利用 helm 编写单个图表,但可以根据环境创建具有不同属性的单独 pod 集,如

helm install my-app --set env=prod ./test-chart

helm install my-app --set env=dev ./test-chart

【问题讨论】:

  • 我不确定我是否理解你,你能详细说明一下吗?当您使用--set 时,您只需设置特定的。如果你想设置多个值,你应该在这里使用逗号:stackoverflow.com/questions/48316330/…--set-string。 Helm 基于values.yaml

标签: kubernetes kubernetes-helm


【解决方案1】:

最好的方法是使用单个部署模板并为每个环境使用单独的值文件。 它不需要只是应用程序中使用的环境变量。 这同样适用于任何环境特定的配置。

例子:

deployment.yaml

spec:
    containers:
        env:
           - name: SYSTEM_OPTS
           - value: "{{ .Values.opts }}"

values-dev.yaml

# system opts
opts: "-Dapp1.url=http://dev.app1.xyz -Dapp2.url=http://dev.app2.abc "

values-prod.yaml

# system opts
opts: "-Dapp1.url=http://prod.app1.xyz -Dapp2.url=http://prod.app2.abc "

然后在helm命令中指定相关的值文件。

例如,在 dev enviornemnt 上部署。

helm install -f values-dev.yaml my-app ./test-chart

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2021-09-24
    • 2021-08-08
    • 2020-02-25
    • 2018-09-30
    • 2018-09-25
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多