如何在yaml文件(Helm)中使用json变量

如何在yaml文件(Helm)中使用json变量,json,docker,kubernetes,yaml,kubernetes-helm,Json,Docker,Kubernetes,Yaml,Kubernetes Helm,我有一个HELM values文件,看起来是这样的: service: environment: dev spring_application_json: >- { "spring" : { "boot" : { "admin" : { "client" : { "enabled" : "false", "url" : "http://websit

我有一个HELM values文件,看起来是这样的:

service:
  environment: dev
  spring_application_json: >-
    {
      "spring" : {
        "boot" : {
          "admin" : {
            "client" : {
              "enabled" : "false",
              "url" : "http://website1",
              "instance" : {
                "service-base-url" : "http://website2",
                "management-base-url" : "http://website3"
              }
            }
          }
        }
      }
    }
以及相应的模板文件,该模板文件获取该值并将其作为环境变量插入到容器中

spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      imagePullSecrets:
        - name: {{ .Values.image.pullSecret }}
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
            - name: ENVIRONMENT
              value: "{{ .Values.service.environment }}"
            - name: SPRING_APPLICATION_JSON
              value: "{{ .Values.service.spring_application_json }}"
但是,当我运行helm安装时,会出现以下错误:

Error: YAML parse error on deployment.yaml: error converting YAML to JSON: yaml: line 40: did not find expected key
哪一个指向这条线:

value: "{{ .Values.service.spring_application_json }}"

我认为我试图将json字符串解析为多行环境变量的方式有问题吗?环境“dev”变量可以很好地工作,同样的YAML也可以很好地与docker compose一起工作。

的文档中有一个类似的示例,但是文档中的格式有引号

我能够重新创建错误,并通过将值文件条目更改为:

service:
  spring_application_json:
    {
      "spring" : {
        "boot" : {
          "admin" : {
            "client" : {
              "enabled" : "false",
              "url" : "http://website1",
              "instance" : {
                "service-base-url" : "http://website2",
                "management-base-url" : "http://website3"
              }
            }
          }
        }
      }
    }
    - name: SPRING_APPLICATION_JSON
      value: {{ .Values.service.spring_application_json | toJson | quote }}
和部署条目,以:

service:
  spring_application_json:
    {
      "spring" : {
        "boot" : {
          "admin" : {
            "client" : {
              "enabled" : "false",
              "url" : "http://website1",
              "instance" : {
                "service-base-url" : "http://website2",
                "management-base-url" : "http://website3"
              }
            }
          }
        }
      }
    }
    - name: SPRING_APPLICATION_JSON
      value: {{ .Values.service.spring_application_json | toJson | quote }}

注意,这部分没有引用,因为这是被处理的。

这是令人敬畏的瑞安-谢谢你抽出时间来帮助。你有没有考虑在SubjnIpAptudioJSON中发布一个KuBurnes配置图中的字符串值?