首页 > 解决方案 > 如何在带有 helm 图表的 Kubernetes 中将条件参数作为命令传递

问题描述

当我的 pod 启动时,我必须运行一个命令,kubernetes其中需要一些参数,但这些参数是有条件的。如何设置这些值。我的配置看起来像

#file: values.yaml
arguments:
  debug: false
  values: 16 # this is not necessarily set
#deployment command section looks like
command: [ "/bin/bash", "-ce", "./my_app.sh" ]
args:
    - {{ -f .Values.arguments.debug }}
    - {{ -v .Values.arguments.values}}

但它似乎不接受争论。这是不是错误的方式。如何传递多个参数?

标签: kuberneteskubernetes-helm

解决方案


Helm 使用带有许多扩展的Gotext/template语言;Helm Chart Template Guide有很多例子。

特别是模板语言包括一个if……结构elseend您可以像这样使用它:

args:
  - -f
  - {{ quote .Values.arguments.debug }}
{{- if .Values.arguments.values }}
  - -v
  - {{ quote .Values.arguments.values}}
{{- end }}

请注意,-fand-v文本在模板花括号之外,我已将它们拆分为参数列表中的单独项目。在最后一部分中,如果设置了values选项,则进行测试,如果没有设置,-v则不会发出选项。


推荐阅读