我想部署具有不同图像,端口等但具有其他非常相似属性的Pod部署。所以我想声明一个看起来像这样的deployment.yaml
文件
{{- range .Values.types }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
{{- end }}
我的values.yaml
在
types:
- foo
- bar
- baz
但是,当我helm install
时,这只会启动一个Kubernetes部署,因为所有内容都在一个模板文件中。有关如何执行此操作的任何想法?
答案 0 :(得分:3)
Kubernetes通常使用YAML语法,并允许多个“文档”位于单个物理文件中,并在每个物理文件之前使用---
分隔符。反过来,Helm通常通过应用模板来产生纯文本文件,并将其实际上馈送到kubectl apply
。
其结果是,如果您使用---
文档开始定界符来开始每个Kubernetes对象描述,它将起作用:
{{- range .Values.types }}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
{{- end }}