Deployment.yaml
...
env: {{ .Values.env}}
...
Values.yaml:
env:
- name: "DELFI_DB_USER"
value: "yyy"
- name: "DELFI_DB_PASSWORD"
value: "xxx"
- name: "DELFI_DB_CLASS"
value: "com.mysql.jdbc.Driver"
- name: "DELFI_DB_URL"
value: "jdbc:sqlserver://dockersqlserver:1433;databaseName=ddbeta;sendStringParametersAsUnicode=false"
感觉就像我失去了一些东西明显。 棉短绒说:OK 模板说:
ENV:[图[名称:DELFI_DB_USER值:YYY]图[名称:DELFI_DB_PASSWORD值:XXX]图[名称:DELFI_DB_CLASS值:com.mysql.jdbc.Driver]映射[值:JDBC:MySQL的:// dockersqlserver {{ .Release.Namespace}} svc.cluster.local:?3306 / ddbeta \ \&安培\; useSSL =真\&安培\; requireSSL =假名:DELFI_DB_URL]]
升级说:
错误:升级失败:误差变换YAML到JSON::YAML:线35:上XXX /模板/ deployment.yaml YAML解析错误发现意外 ':'
解:
env:
{{- range .Values.env }}
- name: {{ .name | quote }}
value: {{ .value | quote }}
{{- end }}
目前围棋模板扩张会给输出这不是YAML:
env: {{ .Values.env}}
变为:
env: env: [Some Go type stuff that isn't YAML]...
掌舵转到模板需要遍历源YAML字典的键。这在Helm docs说明。
正确Deployment.yaml是:
...
env:
{{- range .Values.env }}
- name: {{ .name | quote }}
value: {{ .value | quote }}
{{- end }}
...
头盔包括undocumented toYaml
and toJson
template functions;无论是将在这里工作(因为有效的JSON是有效YAML)。更短的路径可能是
env: {{- .Values.env | toYaml | nindent 2 }}
请注意,您需要与压痕小心一点,特别是如果你设置任何附加的环境变量不在该列表。在这个例子中,我问头盔缩进YAML列表两个步骤比较多,所以额外的环境值,需要遵循太
env: {{- .Values.env | toYaml | nindent 2 }}
- name: OTHER_SERVICE_URL
value: "http://other-service.default.svc.cluster.local"