我有一个应用程序,该应用程序托管在多个环境上,并且使用helm chart来部署该应用程序。我有values.yaml-
app:
component: mobile
type: web
env: prd --> (It will override with external parameters while deployment like dev / stg / uat)
image:
repository: ********.dkr.ecr.ap-south-1.amazonaws.com/mobile
pullPolicy: IfNotPresent
versions:
v1:
name: stable
replicaCount: 2
tag: latest
v2:
name: release
replicaCount: 1
tag: latest
基于版本v1和v2(canary方式),Deployment将遍历循环。 Canary部署将仅在PRD环境中执行。因此,在DEV / STG / UAT上,仅会部署一个版本,因此对于这种环境,循环只需要迭代一次即可。
{{- range $version, $val := $.Values.image.versions }}
---
apiVersion: apps/v1
kind: Deployment
我可以将v2所需的Pod数量设置为0
,但它会创建不必要的元数据(部署,副本集)。
因此,有什么方法可以打破带有条件(env:prd)的头盔模板中的循环,从而避免在v2上进行循环迭代。