如何在Helm图表中设置Java环境变量?

问题描述 投票:0回答:1

在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 install my-app --set env=prod ./test-chart

helm install my-app --set env=dev ./test-chart
kubernetes kubernetes-helm
1个回答
0
投票

最佳方法是使用单个部署模板,并为每个环境使用单独的值文件。

示例:

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
© www.soinside.com 2019 - 2024. All rights reserved.