Gar*_*eth 5 json yaml docker kubernetes kubernetes-helm
我有一个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"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及一个相应的模板文件,它抓取此值并将其作为环境变量插入到容器中.
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 }}"
Run Code Online (Sandbox Code Playgroud)
但是,当我运行helm安装时,我收到以下错误:
Error: YAML parse error on deployment.yaml: error converting YAML to JSON: yaml: line 40: did not find expected key
Run Code Online (Sandbox Code Playgroud)
哪个指向该行:
value: "{{ .Values.service.spring_application_json }}"
Run Code Online (Sandbox Code Playgroud)
我相信我试图在json字符串中解析为多行环境变量的方式存在问题?环境'dev'变量完美地运行,同样的YAML也与docker-compose完美配合.
在Spring云数据流的文档中有一个这样的例子,但是他们的文档中的格式有引号转义.
我能够通过将值文件条目更改为:重新创建错误并通过它:
service:
spring_application_json:
{
"spring" : {
"boot" : {
"admin" : {
"client" : {
"enabled" : "false",
"url" : "http://website1",
"instance" : {
"service-base-url" : "http://website2",
"management-base-url" : "http://website3"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
部署条目为:
- name: SPRING_APPLICATION_JSON
value: {{ .Values.service.spring_application_json | toJson | quote }}
Run Code Online (Sandbox Code Playgroud)
请注意,此部分没有引号,因为无论如何都要处理.
| 归档时间: |
|
| 查看次数: |
3738 次 |
| 最近记录: |