【发布时间】:2019-03-26 14:11:13
【问题描述】:
我有一个如下所示的 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 }}"
但是,当我运行 helm install 时,出现以下错误:
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 完美运行。
【问题讨论】:
-
您是否考虑在 Kubernetes configmap 中发布 SPRING_APPLICATION_JSON 字符串值?
标签: json docker kubernetes yaml kubernetes-helm