У меня есть приложение, которое размещено в нескольких средах, и для развертывания приложения используется диаграмма руля. У меня есть 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 (канарейка), развертывание будет повторяться по l oop. Развертывание Canary будет осуществляться только в среде PRD. Таким образом, в DEV / STG / UAT будет развернута только одна версия, и поэтому потребуется l oop, чтобы выполнить итерацию только один раз для такой среды.
{{- range $version, $val := $.Values.image.versions }}
---
apiVersion: apps/v1
kind: Deployment
Я могу установить количество необходимых модулей для v2 как 0
но это создает ненужные метаданные (deployemnt, replicaset).
Итак, есть ли способ разбить l oop в шаблоне helm с условием (env: prd), чтобы избежать итерации l oop над v2.