使用Helm的不同部署配置

问题描述 投票:0回答:1

我希望在不同的环境中有一个稍微不同的部署配置。也就是说,在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=frontendkubectl create cfg.yaml --selector=environment=prod,我已经标记了我的容器,所以这很简单。但helm install没有可能接受类似的旗帜并将其传递给kubectl。

kubernetes-helm
1个回答
2
投票

只需为每个环境创建一个值文件并将其作为目标:

helm install . -f values.production.yaml
helm install . -f values.development.yaml

你可以使用条件来切换部署,想象你有什么,你想条件部署的yaml:

{{ if .Values.something}}
something.yaml original content goes here
{{ end }}
© www.soinside.com 2019 - 2024. All rights reserved.