簡體   English   中英

Helm - 逗號分隔的動態字符串列表

[英]Helm - comma-separated list of dynamic strings

是否有可能在圖中創建單個字符串,該字符串是具有公共前綴和變量后綴的字符串的逗號分隔表示(類似於在 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

有什么方法可以在圖表的范圍/循環中執行此操作嗎? 我有這個圖表的幾個實例將使用不同的最小值/最大值,我想盡可能多地自動化這個乏味的任務(此外,我無權訪問應用程序的源代碼,所以我無法更改應用程序的 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 包含模板函數的untilStep,其中包含untilStepjoin

sprig 中還沒有mapeach運算符的概念,因此您可以在range循環中構造列表以供稍后加入(從這里

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM