Helm - 逗号分隔的动态字符串列表
Helm - comma-separated list of dynamic strings
是否有可能在 helm 图表中创建一个字符串,该字符串以逗号分隔表示(类似于在 Python 中使用 ",".join()
命令)公共前缀和变量后缀?
例如,我有一个 CLI 应用程序需要通过 kubernetes pod 定义中的 extraArgs
参数这样的参数:
extraArgs: >-
-M {{ $.Values.global.hostname }}/100
我现在必须将此值修改为超过一个范围(即从 {{$.Values.global.minval}}
到 {{$.Values.global.maxval}}
,包括在内)。因此,对于 minval=100
和 maxval=105
,我的图表现在需要变成(注意缺少尾随逗号,并且除了 space 之后没有 spaces 19=]):
extraArgs: >-
-M {{ $.Values.global.hostname }}/100,{{ $.Values.global.hostname }}/101,{{ $.Values.global.hostname }}/102,{{ $.Values.global.hostname }}/103,{{ $.Values.global.hostname }}/104,{{ $.Values.global.hostname }}/105
有什么方法可以在图表的 range/loop 中执行此操作?我有这个图表的几个实例,它们将使用不同的 min/max 值,我想尽可能地自动完成这项繁琐的任务(此外,我 没有 访问应用程序的源代码,因此我无法更改应用程序的 CLI 界面。
在 Python 中,我大致可以通过以下方式完成此操作:
minval = 100
minval = 105
s = "-M "
L = []
for i in range(minval, maxval+1):
L.append("{{{{ $.Values.global.hostname }}}}/{}".format(i))
s = s + ",".join(L)
# print(s)
除了从 range()
函数开始之外,我不确定从哪里开始在 Helm 模板中执行此操作。
Helm 包括 sprig library of template functions which contains untilStep
and join
。
没有a的概念map
or each
operator in sprig yet so you can construct the list in a range
loop to be joined later ()
{{- $minval := int .Values.minval -}}
{{- $maxval := int .Values.maxval | add1 | int -}}
{{- $args := list -}}
{{- range untilStep $minval $maxval 1 -}}
{{- $args = printf "%s/%d" $hostname . | append $args -}}
{{- end }}
extraArgs: '-M {{ $args | join "," }}'
是否有可能在 helm 图表中创建一个字符串,该字符串以逗号分隔表示(类似于在 Python 中使用 ",".join()
命令)公共前缀和变量后缀?
例如,我有一个 CLI 应用程序需要通过 kubernetes pod 定义中的 extraArgs
参数这样的参数:
extraArgs: >-
-M {{ $.Values.global.hostname }}/100
我现在必须将此值修改为超过一个范围(即从 {{$.Values.global.minval}}
到 {{$.Values.global.maxval}}
,包括在内)。因此,对于 minval=100
和 maxval=105
,我的图表现在需要变成(注意缺少尾随逗号,并且除了 space 之后没有 spaces 19=]):
extraArgs: >-
-M {{ $.Values.global.hostname }}/100,{{ $.Values.global.hostname }}/101,{{ $.Values.global.hostname }}/102,{{ $.Values.global.hostname }}/103,{{ $.Values.global.hostname }}/104,{{ $.Values.global.hostname }}/105
有什么方法可以在图表的 range/loop 中执行此操作?我有这个图表的几个实例,它们将使用不同的 min/max 值,我想尽可能地自动完成这项繁琐的任务(此外,我 没有 访问应用程序的源代码,因此我无法更改应用程序的 CLI 界面。
在 Python 中,我大致可以通过以下方式完成此操作:
minval = 100
minval = 105
s = "-M "
L = []
for i in range(minval, maxval+1):
L.append("{{{{ $.Values.global.hostname }}}}/{}".format(i))
s = s + ",".join(L)
# print(s)
除了从 range()
函数开始之外,我不确定从哪里开始在 Helm 模板中执行此操作。
Helm 包括 sprig library of template functions which contains untilStep
and join
。
没有a的概念map
or each
operator in sprig yet so you can construct the list in a range
loop to be joined later (
{{- $minval := int .Values.minval -}}
{{- $maxval := int .Values.maxval | add1 | int -}}
{{- $args := list -}}
{{- range untilStep $minval $maxval 1 -}}
{{- $args = printf "%s/%d" $hostname . | append $args -}}
{{- end }}
extraArgs: '-M {{ $args | join "," }}'