如何在Helm for Kubernetes中循环使用不同的模板?

时间:2019-03-14 03:58:32

标签: kubernetes kubernetes-helm

我想部署具有不同图像,端口等但具有其他非常相似属性的Pod部署。所以我想声明一个看起来像这样的deployment.yaml文件

{{- range .Values.types }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
{{- end }}

我的values.yaml

types:
  - foo
  - bar
  - baz

但是,当我helm install时,这只会启动一个Kubernetes部署,因为所有内容都在一个模板文件中。有关如何执行此操作的任何想法?

1 个答案:

答案 0 :(得分:3)

Kubernetes通常使用YAML语法,并允许多个“文档”位于单个物理文件中,并在每个物理文件之前使用---分隔符。反过来,Helm通常通过应用模板来产生纯文本文件,并将其实际上馈送到kubectl apply

其结果是,如果您使用---文档开始定界符来开始每个Kubernetes对象描述,它将起作用:

{{- range .Values.types }}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
{{- end }}