0

我有一个掌舵图,用于部署在 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。

4

1 回答 1

1

您可以使用这样调用的函数toYaml

  variable.yml: |-
{{ toYaml .Values.spring.config.content | indent 4 }}

我们在 Hazelcast Helm Chart 中使用了类似的东西。请在此处查看详细信息。

于 2021-03-16T08:26:24.323 回答