首页 > 解决方案 > 如何使用 JSON 数据生成 Helm 图表配置文件

问题描述

我想用 HELM 模板生成复杂的 JSON

我有一个模板:

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  config.json: |
  {
    "test": "{{ $Value }}",
    "services": {
      {{- range $k, $v := $.Values.services }}
      "{{ $k | upper }}_PATH": "{{ $k }}",
      {{- end }}
     }
  }

Helm chars 生成 json:

{
  "test": "test",
  "services": {
     "S1_PATH": "/t1",
     "S2_PATH": "/t2",
     "S2_PATH": "/t3",
   }
}

问题是 JSON 无效,因为它有一个尾随逗号。如何更新模板来解决这个问题?

标签: jsonkuberneteskubernetes-helm

解决方案


如果您像这样更新模板,它应该可以工作。

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  config.json: |
  {
    "test": "{{ $Value }}",
    "services": {
      {{- range $k, $v := $.Values.services }}
      {{ if ne $k 0 }},{{ end }}
      "{{ $k | upper }}_PATH": "{{ $k }}"
      {{- end }}
     }
  }

对于第一个服务(索引为 0),它不放置逗号,而对于所有其他服务,它在前面放置一个。


推荐阅读