Kubernetes 如何将计数器添加到头盔范围

Kubernetes 如何将计数器添加到头盔范围,kubernetes,kubernetes-helm,go-templates,Kubernetes,Kubernetes Helm,Go Templates,这是my values.yaml文件: options: collection: "myCollection" ttl: 100800 autoReconnect: true reconnectTries: 3 reconnectInterval: 5 现在,我尝试在我的configMap中将其转换为JSON,如下所示: options: { {{- range $key, $val := .Values.options }} {{ $key }}: {{ $val

这是my values.yaml文件:

options:
  collection: "myCollection"
  ttl: 100800
  autoReconnect: true
  reconnectTries: 3
  reconnectInterval: 5
现在,我尝试在我的configMap中将其转换为JSON,如下所示:

options: {
  {{- range $key, $val := .Values.options }}
  {{ $key }}: {{ $val | quote }},
  {{- end }}
}
但我需要消除JSON中的最后一个逗号,所以我尝试添加一个计数器:

options: {
  {{ $c := 0 | int }}
  {{- range $key, $val := .Values.options }}
  {{ if ne $c 0 }},{{ end }}
  {{- $key }}: {{ $val | quote }}
  {{ $c := $c add 1 }}
  {{- end }}
}
但是我得到了以下关于头盔模板的错误。。。命令:

at <$c>: can't give argument to non-function $c
at:无法为非函数$c提供参数
那么我做错了什么呢?

赫尔姆有,所以如果你能得到正确格式的数据,你可以要求它序列化它

管理嵌入式JSON文件的报价将是一件棘手的事情。两个很好的选择是使用YAML块标量,其中一行开头的缩进分隔内容,或者将其视为一个标量

注意,这种方法将在JSON内容中保留对象的本机类型;您的示例将所有内容强制为字符串。如果您需要将所有内容都转换为字符串,那么支持库包含将任意对象转换为字符串并在适当位置对字典类型对象进行变异的函数,尽管这开始进入用模板语言编写真实代码的不幸境地

apiVersion: v1
kind: ConfigMap
metadata:
  name: x
data:
  optionsAsBlockScalar: >-
{{ .Values.options | toJson | indent 4 }}
binaryData:
  optionsAsBase64: {{ .Values.options | toJson | b64enc }}