我可以使用 _helpers.tpl 中的函数来填写 helm 图表中的 values.yaml 吗?
Can I use functions from _helpers.tpl to fill out values.yaml in helm charts?
现在,我有一个 values.yaml 的部分看起来有点像这样:
...
imageName:
ports:
- containerPort: 7980
name: db0
protocol: TCP
- containerPort: 7981
name: db1
protocol: TCP
- containerPort: 7982
name: db2
protocol: TCP
- containerPort: 7983
name: db3
protocol: TCP
- containerPort: 7984
name: db4
protocol: TCP
- containerPort: 7985
name: db5
protocol: TCP
- containerPort: 7986
name: db6
protocol: TCP
- containerPort: 7987
name: db7
protocol: TCP
- containerPort: 7988
name: db8
protocol: TCP
- containerPort: 7989
name: db9
protocol: TCP
- containerPort: 7990
name: db10
protocol: TCP
...
我想通过在 _helpers.tpl 中创建一个函数来清理它,该函数将采用最小端口值 (7980) 和最大端口值 (7990) 并为其中的每个值创建结构格式。
我在想:这可能吗?我在这方面遇到了很多麻烦,并且通常使用帮助文件,所以如果有人能在正确的方向上推动我如何完成这个,我也将不胜感激!
谢谢:)
这应该是可以的。假设您使用端口数和起始端口配置图表:
# values.yaml (or a `helm install -f` values file)
numberOfPorts: 11
startingPort: 7980
您可以使用 until
template function 将其转换为数字列表:
{{- $dbs := until .Values.numberOfPorts }}
现在您可以使用标准 range
函数循环遍历该列表。在循环体内,该值将是从 0 到 numberOfPorts - 1
的整数,您可以相应地生成列表项。另请注意,range
接管了 .
特殊变量,因此您需要在 range
循环之外的 .Values
中保存您需要的任何内容。
imageName:
ports:
{{- $startingPort := .Values.startingPort }}
{{- range $i := until .Values.numberOfPorts }}
- containerPort: {{ add $startingPort $i }}
name: db{{ $i }}
protocol: TCP
{{- end }}
现在,我有一个 values.yaml 的部分看起来有点像这样:
...
imageName:
ports:
- containerPort: 7980
name: db0
protocol: TCP
- containerPort: 7981
name: db1
protocol: TCP
- containerPort: 7982
name: db2
protocol: TCP
- containerPort: 7983
name: db3
protocol: TCP
- containerPort: 7984
name: db4
protocol: TCP
- containerPort: 7985
name: db5
protocol: TCP
- containerPort: 7986
name: db6
protocol: TCP
- containerPort: 7987
name: db7
protocol: TCP
- containerPort: 7988
name: db8
protocol: TCP
- containerPort: 7989
name: db9
protocol: TCP
- containerPort: 7990
name: db10
protocol: TCP
...
我想通过在 _helpers.tpl 中创建一个函数来清理它,该函数将采用最小端口值 (7980) 和最大端口值 (7990) 并为其中的每个值创建结构格式。
我在想:这可能吗?我在这方面遇到了很多麻烦,并且通常使用帮助文件,所以如果有人能在正确的方向上推动我如何完成这个,我也将不胜感激!
谢谢:)
这应该是可以的。假设您使用端口数和起始端口配置图表:
# values.yaml (or a `helm install -f` values file)
numberOfPorts: 11
startingPort: 7980
您可以使用 until
template function 将其转换为数字列表:
{{- $dbs := until .Values.numberOfPorts }}
现在您可以使用标准 range
函数循环遍历该列表。在循环体内,该值将是从 0 到 numberOfPorts - 1
的整数,您可以相应地生成列表项。另请注意,range
接管了 .
特殊变量,因此您需要在 range
循环之外的 .Values
中保存您需要的任何内容。
imageName:
ports:
{{- $startingPort := .Values.startingPort }}
{{- range $i := until .Values.numberOfPorts }}
- containerPort: {{ add $startingPort $i }}
name: db{{ $i }}
protocol: TCP
{{- end }}