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

发布于 2025-01-11 18:08:06 字数 439 浏览 0 评论 0原文

我有这个模板:

{{- $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 。我怎样才能实现这个目标?上面的代码似乎不起作用。

I have this template:

{{- $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 }} }}'

I need to replace it with service_port defined at the beginning of a file. How can I achieve this? The code above does not seem to work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凡间太子 2025-01-18 18:08:06

这对我有用。它将所有 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>

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

This works for me. It replaces all serviceName tokens with the real service name.

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

Important part was that the replace function was used as the last one. Before it finally worked, I'd tried using replace before the quote function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文