如何在 Helm 模板中用变量替换字符串?

问题描述 投票:0回答:1

我有这个模板:

{{- $service_port := 1010 }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ $.Values.name }}
data:
    {{- range $key, $val := .Values.configmap }}
      {{- if contains "<ServicePort>" $val }}
    {{ $key }}: '{{ $val | replace "<ServicePort>" {{ $service_port }} }}'

我需要将其替换为文件开头定义的

service_port
。我怎样才能做到这一点。上面的代码似乎不起作用。

kubernetes-helm helm3
1个回答
0
投票

这对我有用。它将所有

serviceName
令牌替换为真实服务名称。

    appSettings: |    
        {{ $name := include "myService.fullname" . }}
        <appSettings>
          {{- $root := . }}
          {{- range $key, $value := .Values.appSettings }}          
          <add key={{ $key | quote }} value={{ $value | quote | replace "#{serviceName}#" $name }} />
          {{- end }}
        </appSettings>

重要的部分是替换功能被用作最后一个。在它最终起作用之前,我尝试在引用函数之前使用替换。

© www.soinside.com 2019 - 2024. All rights reserved.