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

问题描述 投票:1回答:1

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

例如,我有一个CLI应用程序,它需要一个参数,例如通过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

我可以通过某种方式在图表的范围/循环中执行此操作吗?我有此图表的几个实例,这些实例将使用不同的最小/最大值,并且我想尽可能地自动执行此繁琐的任务(此外,我no可以访问应用程序的源,所以我无法将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模板中从哪里开始执行此操作。

kubernetes yaml kubernetes-helm go-templates
1个回答
1
投票

Helm包含模板功能的sprig library,其中包含untilStepuntilStep

© www.soinside.com 2019 - 2024. All rights reserved.