我是Helm的新手,我想从一个部署YAML文件在k8中创建多个部署。我在deployment中使用了占位符。yaml like
metadata:
name: job-{{ .Values.app.ujn }}
...
replicas: {{ .Values.app.replicas }}
和我的价值观yaml看起来像
app:
replicas: 10
ujn: 1
---
app:
replicas: 20
ujn: 2
---
app:
replicas: 30
ujn: 3
用例是这样的:我想创建许多配置相似的部署文件,但一些参数发生了变化,我也不想为每个部署创建多个值文件。我可以像上面的例子那样,从一个values.yaml创建多个文件吗?
还有一个后续问题,如果我在群集上部署此图表,并且如果我在下次部署中修改部署数量,helm会删除旧的图表还是必须手动删除这些图表?
1条答案
按热度按时间zd287kbt1#
您使用的语法将多个YAML * 文档 * 放到一个文件中。工具很难很好地支持这种语法(尽管
kubectl apply
和Helm模板的输出确实支持它);最常见的情况是工具将只读取第一个文档。您可以将一个YAML列表放入值文件中,而不必使用多个文档。
然后,在模板文件中,可以使用
range
循环来循环这个文件。因此您需要确保每个模板都以YAML文档起始标记开头。级别Helm对象(如.Values
或.Release
),或者调用帮助器模板。