如何将values.yaml中ConfigMap的DOMAIN_NAME替换为{.Values.global.domainName}
解决方案:替换ConfigMap中的DOMAIN_NAME为全局域名配置
针对需求——将values.yaml里ConfigMap值中的DOMAIN_NAME占位符替换为global.domainName的实际配置,只需修改config-map.yaml的模板逻辑,借助Helm的字符串替换函数就能实现。
修改后的config-map.yaml完整代码
apiVersion: v1 kind: ConfigMap metadata: name: {{ .Values.metadata.name }} namespace: {{ .Release.Namespace }} data: {{- if .Values.configmap }} {{- range $key,$value := .Values.configmap }} {{$key}}: {{ $value | replace "DOMAIN_NAME" $.Values.global.domainName | quote }} {{- end }} {{- end }}
关键修改说明
- 在遍历
configmap键值对的循环里,新增了replace "DOMAIN_NAME" $.Values.global.domainName处理:replace是Helm内置的字符串替换函数,第一个参数是要替换的目标字符串(DOMAIN_NAME),第二个参数是替换后的实际值($.Values.global.domainName)- 用
$.来引用全局作用域的Values,因为在range循环内部,.的作用域已经切换到当前的$value,必须通过$访问上层的全局配置
渲染效果验证
修改后,ALLOWED_ORIGINS会被替换为:
"https://app.xyz.abcde.com,https://abc-cd.xyz.abcde.com"
内容的提问来源于stack exchange,提问作者RajuK
相关产品推荐
相关产品推荐

