我有一个掌舵图,用于部署在 YAML 文件中有配置文件的 spring 服务。目前,我的舵图使用以下代码:
模板/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: account-service-config
data:
variable.yml:
{{ range $key, $value := .Values.spring.config.content | indent 4 }}
{{ $key | indent 2}}={{ $value }}
{{printf "\n" }}
{{- end -}}
我有一个values.yaml如下
spring:
config:
content: |-
spring:
application:
name: hello
security:
abc:
abc-def: ${url}
问题是,如果我想更改应用程序名称的任何值,我必须像这样重写整个配置:
spring:
config:
content: |-
spring:
application:
name: valuechange
security:
abc:
abc-def: ${url}
所以我的问题是,有没有办法在 Helm 模板中将字符串转换为 Yaml。我希望将其转换为 helm yaml 并通过部署文件中的 configmaps 将其注入。
helm 模板对于许多服务都很常见,因此我无法显式定义值,因为它们对于每个服务都是不同的,并且我在各自的 spring 服务存储库中用另一个名为 values.yaml 的文件覆盖 values.yaml。