如何使用Helm的range函数遍历Values.yaml中的Service列表?
使用Helm range函数遍历Service列表的实现方法
针对你提供的Values.yaml结构,直接在Helm模板中用range函数遍历Service数组即可,以下是具体实现:
模板示例(以templates/services.yaml为例)
{{- range .Values.Service }} apiVersion: v1 kind: Service metadata: name: {{ .name }} spec: type: ClusterIP ports: - protocol: {{ .protocol }} port: {{ .port }} targetPort: {{ .port }} --- {{- end }}
关键说明
- 遍历逻辑:
{{- range .Values.Service }}启动遍历,每次迭代时,当前上下文.会指向数组中的单个service对象,直接通过.name、.protocol、.port就能访问对应属性。 - 结束标记:
{{- end }}用来闭合遍历块。 - 多资源分隔:末尾的
---是YAML文档分隔符,确保遍历生成的每个Service都是独立的Kubernetes资源。
额外提示
如果需要在遍历中访问父级上下文的变量(比如Release名称),可以用$来引用根上下文,例如:
metadata: name: {{ .name }}-{{ $.Release.Name }}
内容的提问来源于stack exchange,提问作者RajuK
相关产品推荐
相关产品推荐

