在helm图表中为java应用程序的部署设置环境变量的最佳实践是什么,以便我可以在开发和生产环境中使用相同的图表?对于这两种环境,我都有单独的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发布于 2020-03-28 01:47:51
最好的方法是使用单个部署模板,并为每个环境使用单独的值文件。它不需要是应用程序中使用的唯一环境变量。这同样可以应用于任何特定于环境配置。
示例:
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环境下部署。
helm install -f values-dev.yaml my-app ./test-charthttps://stackoverflow.com/questions/60890295
复制相似问题