带有多个命令的头盔图表初始化容器

时间:2018-10-02 17:59:26

标签: kubernetes-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

问题是:如何根据是否定义值来使“命令”具有不同的命令?

例如:如果我定义了值:podx.val2,我希望将COMMAND 2包括在内,但如果不包含,则我不想要它。

与其他命令相同

1 个答案:

答案 0 :(得分:1)

如果这样做,我将构建一个包含shell脚本的自定义图像,并使其由环境变量控制。

#!/bin/sh
if [ -n "$DO_COMMAND_2" ]; then
  command2
fi

您编写的样式可以与YAML块语法和Helm条件条件结合使用。这可能较难维护和测试,但是这样的方法应该可以工作:

command: >-
  command1
{{ if .Values.val2 }}
  && command2
{{ end }}
  && command3

YAML >-语法将使缩进后的所有内容都折叠成一行,这有助于解决空白控制问题。