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

我有一个HELM值文件,如下所示:

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 }}"

但是,当我运行头盔安装时,出现以下错误:

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字符串解析为多行环境变量的方式存在问题吗?ENVIRONMENT’dev’变量可以完美工作,而同一个YAML也可以与docker-

compose完美工作。

回答:

spring云数据流的文档中有一个类似于此示例的示例,但是其文档中的格式已将引号转义。

通过将values文件条目更改为以下内容,我能够重新创建错误并克服错误:

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 }}

请注意,此部分周围没有引号,因为无论如何都会处理该引号。

以上是 如何在Yaml文件(Helm)中使用json变量 的全部内容, 来源链接: utcz.com/qa/434317.html

回到顶部