You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm中基于命名空间后缀动态设置Ingress主机的问题求助

Helm模板:根据命名空间后缀动态设置Ingress Host

你的核心问题不是.Release.Namespace被当作字符串处理——它本身就是字符串,hasSuffix函数可以直接对其进行判断。问题出在模板语法错误(注释写法不对)和逻辑分支不完整上,以下是修正后的完整代码:

{{/* 判断命名空间是否以-prod结尾 */}}
{{ if hasSuffix "-prod" .Release.Namespace }}
- hosts:
  - {{ .Values.ingress.domain }}
{{/* 再判断是否以-dev结尾 */}}
{{ else if hasSuffix "-dev" .Release.Namespace }}
- hosts:
  - {{ .Values.ingress.devDomain }} # 替换为你需要的dev环境host值
{{/* 其他命名空间的默认处理 */}}
{{ else }}
- hosts:
  - {{ .Values.ingress.defaultDomain }} # 替换为其他场景的默认host值
{{ end }}

关键注意点:

  • Helm模板的注释必须用{{/* 注释内容 */}},不能用YAML的#,否则会干扰模板解析逻辑。
  • .Release.Namespace是Helm内置的字符串变量,无需额外转换,hasSuffix函数可以直接使用它做判断。
  • 补充完整的分支逻辑,避免因缺少end或分支覆盖不全导致的模板渲染失败。

内容的提问来源于stack exchange,提问作者Popchop3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:12:12