gpt4 book ai didi

kubernetes - Helm-用逗号分隔的动态字符串列表

转载 作者:行者123 更新时间:2023-12-02 12:01:41 25 4
gpt4 key购买 nike

是否可以在图表中创建一个字符串,该字符串是一个逗号分隔的表示形式(类似于Python中的",".join()命令),具有共同的前缀和变量后缀?

例如,我有一个CLI应用程序,它需要通过 pod定义中的extraArgs参数来要求这样的参数:

extraArgs: >-
-M {{ $.Values.global.hostname }}/100

我现在必须将此值修改为一个范围(即从 {{$.Values.global.minval}}{{$.Values.global.maxval}}(包括))。因此,对于 minval=100maxval=105,我的图表现在需要变成(注意,缺少尾随逗号,除了 -M之后的空格之外,没有其他空格):
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

有什么方法可以在图表的范围/循环中执行此操作?我有此图表的几个实例,它们将使用不同的最小/最大值,并且我想尽可能地自动执行此繁琐的任务(此外,我 没有可以访问应用程序的源,因此我可以t将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,其中包含 untilStep join

尚无 map or each operator in sprig的概念,因此您可以在range循环中构造列表,以便稍后加入(from here)

{{- $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 "," }}'

关于kubernetes - Helm-用逗号分隔的动态字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60820921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com