首页 > 解决方案 > 如何在这个 Helm 模板函数中使用 printf?

问题描述

我在我的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 }}

标签: kubernetes-helm

解决方案


见鬼吧。我只是values.yaml这样做了,我得到了同样的结果。

environments:
  sandbox: 0
  staging: 1
  production: 2
valuesPerEnvironment:
  cpuUnits: [512m, 512m, 1024m]

知道我是否可以在函数中执行此操作仍然很酷,所以如果有人回答实际问题,我会接受它作为答案。


推荐阅读