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

Mat*_*ard 2 kubernetes kubernetes-helm

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

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

Run Code Online (Sandbox Code Playgroud)

凡我values.yaml就是

types:
  - foo
  - bar
  - baz
Run Code Online (Sandbox Code Playgroud)

但是,这只会在我启动单个 Kubernetes 部署时启动,helm install因为所有内容都在一个模板文件中。关于如何做到这一点的任何想法?

Dav*_*aze 5

Kubernetes 通常使用 YAML 语法,这允许将多个“文档”放在一个物理文件中,---每个文件前都有一个分隔符。Helm 通常通过应用模板来生成纯文本文件并实际上将其提供给kubectl apply.

这样做的结果是,如果您使用---文档开始分隔符开始每个 Kubernetes 对象描述,它应该可以工作:

{{- range .Values.types }}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
...
{{- end }}
Run Code Online (Sandbox Code Playgroud)