我希望在不同的环境中具有稍微不同的部署配置。也就是说,在Prod和Ver中,我不希望部署所有容器。
使用docker-compose,我们可以通过合并增量的docker-compose文件来解决此问题,例如:docker-compose up -f docker-compose.yml -f docker-compose-prod.yml
如何使用Helm图表完成此操作? 我们有一个结构,顶部是Chart.yaml和values.yaml,然后是子文件夹中每个容器一个yaml文件。天真的解决方案是复制该结构,并保留一些图表文件,但我希望每个服务仅包含一个文件(最多一个文件!)。
我们使用CircleCI部署到AKS。
总结一下: 如今,每个服务都有其自己的yaml文件,并且在每次部署时都将全部部署。我想配置图表,以便在某些环境中仅部署一部分服务。
编辑:
kubectl可以使用诸如kubectl create cfg.yaml --selector=tier=frontend
或kubectl create cfg.yaml --selector=environment=prod
之类的选择器,并且我已经标记了容器,所以这很简单。但是helm install
无法接受类似的标志并将其传递给kubectl。
答案 0 :(得分:2)
只需为每个环境创建一个值文件,然后将其定位:
helm install . -f values.production.yaml
helm install . -f values.development.yaml
您可以使用条件来切换部署,假设您有条件要部署的东西,
{{ if .Values.something}}
something.yaml original content goes here
{{ end }}