我在 templates/_helpers.yaml
文件中创建了这个 Helm 模板函数。它只是根据传入的环境获取数组元素的值(index .Values...
部分)。效果很好。
{{/*
Function to get min CPU units
*/}}
{{- define "microserviceChart.minCpuUnits" -}}
{{ index .Values.valuesPerEnvironment.cpuUnits ((pluck .Values.environment .Values.environments | first | default .Values.environments.sandbox) | int) | quote }}
{{- end }}
例如,在我的values.yaml 文件中
environments:
sandbox: 0
staging: 1
production: 2
valuesPerEnvironment:
cpuUnits: [512, 512, 1024]
所以我的模板函数根据我传入的环境返回“512”,“512”,“1024”
。但是,我可以使用 printf 将 m
添加到这些值吗? 换句话说,我希望它返回“1024m”
用于生产。我尝试了以下方法,但出现语法错误
{{/*
Function to get min CPU units
*/}}
{{- define "microserviceChart.minCpuUnits" -}}
{{- printf "%dm" index .Values.valuesPerEnvironment.cpuUnits ((pluck .Values.environment .Values.environments | first | default .Values.environments.sandbox) | int) | quote }}
{{- end }}
最佳答案
管它呢。我刚刚像这样制作了 values.yaml
,并且得到了相同的结果。
environments:
sandbox: 0
staging: 1
production: 2
valuesPerEnvironment:
cpuUnits: [512m, 512m, 1024m]
知道我是否可以在函数中执行此操作仍然很酷,因此如果有人回答了实际问题,我会接受它作为答案。
关于kubernetes-helm - 如何在这个Helm模板函数中使用printf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66497769/