具有多个命令的 helm chart init 容器
helm chart init container with multiple commands
我们正在为我们的 helm 图表定义一个 initContainer。相关部分如下
initContainers:
- name: "set-volumes-init"
image: "IMAGE AND TAG"
command: ['sh', '-c', 'COMMAND 1 && COMMAND 2 && COMMAND 3']
volumeMounts:
- name: volume-summary
mountPath: /usr/summ
问题是:如何使 "command" 像根据是否定义值使用不同的命令?
例如:如果我定义了值:podx.val2,我希望包含 COMMAND 2,但如果不是,那么我不想要它。
其他命令相同
如果我这样做,我会构建一个包含 shell 脚本的自定义图像,并由环境变量控制它。
#!/bin/sh
if [ -n "$DO_COMMAND_2" ]; then
command2
fi
您编写的样式可以结合使用 YAML 块语法和 Helm 条件。这可能更难维护和测试,但像这样的东西应该可以工作:
command: >-
command1
{{ if .Values.val2 }}
&& command2
{{ end }}
&& command3
YAML >-
语法会导致其后缩进的所有内容折叠成一行,这有助于解决空格控制问题。
我们正在为我们的 helm 图表定义一个 initContainer。相关部分如下
initContainers:
- name: "set-volumes-init"
image: "IMAGE AND TAG"
command: ['sh', '-c', 'COMMAND 1 && COMMAND 2 && COMMAND 3']
volumeMounts:
- name: volume-summary
mountPath: /usr/summ
问题是:如何使 "command" 像根据是否定义值使用不同的命令?
例如:如果我定义了值:podx.val2,我希望包含 COMMAND 2,但如果不是,那么我不想要它。
其他命令相同
如果我这样做,我会构建一个包含 shell 脚本的自定义图像,并由环境变量控制它。
#!/bin/sh
if [ -n "$DO_COMMAND_2" ]; then
command2
fi
您编写的样式可以结合使用 YAML 块语法和 Helm 条件。这可能更难维护和测试,但像这样的东西应该可以工作:
command: >-
command1
{{ if .Values.val2 }}
&& command2
{{ end }}
&& command3
YAML >-
语法会导致其后缩进的所有内容折叠成一行,这有助于解决空格控制问题。