Я пытаюсь создать несколько стручков из цикла yaml в helm.если я запускаю с --debug --dry-run
, выходные данные соответствуют моим ожиданиям, но когда я фактически развертываюсь в кластере, присутствует только последняя итерация цикла.
некоторые yaml для вас:
{{ if .Values.componentTests }}
{{- range .Values.componentTests }}
apiVersion: v1
kind: Pod
metadata:
name: {{ . }}
labels:
app: {{ . }}
chart: {{ $.Chart.Name }}-{{ $.Chart.Version | replace "+" "_" }}
release: {{ $.Release.Name }}
heritage: {{ $.Release.Service }}
spec:
{{ toYaml $.Values.global.podSpec | indent 2 }}
restartPolicy: Never
containers:
- name: {{ . }}
ports:
- containerPort: 3000
image: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/{{ . }}:latest
imagePullPolicy: Always
command: ["sleep"]
args: ["100d"]
resources:
requests:
memory: 2000Mi
cpu: 500m
{{- end }}
{{ end }}
при запуске helm upgrade --install --set componentTests="{a,b,c}" --debug --dry-run
я получаю следующий вывод:
# Source: <path-to-file>.yaml
apiVersion: v1
kind: Pod
metadata:
name: a
labels:
app: a
chart: integrationtests-0.0.1
release: funny-ferret
heritage: Tiller
spec:
restartPolicy: Never
containers:
- name: content-tests
ports:
- containerPort: 3000
image: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/a:latest
imagePullPolicy: Always
command: ["sleep"]
args: ["100d"]
resources:
requests:
memory: 2000Mi
cpu: 500m
apiVersion: v1
kind: Pod
metadata:
name: b
labels:
app: b
chart: integrationtests-0.0.1
release: funny-ferret
heritage: Tiller
spec:
restartPolicy: Never
containers:
- name: b
ports:
- containerPort: 3000
image: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/b:latest
imagePullPolicy: Always
command: ["sleep"]
args: ["100d"]
resources:
requests:
memory: 2000Mi
cpu: 500m
apiVersion: v1
kind: Pod
metadata:
name: c
labels:
app: users-tests
chart: integrationtests-0.0.1
release: funny-ferret
heritage: Tiller
spec:
restartPolicy: Never
containers:
- name: c
ports:
- containerPort: 3000
image: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/c:latest
imagePullPolicy: Always
command: ["sleep"]
args: ["100d"]
resources:
requests:
memory: 2000Mi
cpu: 500m
---
(некоторые части были отредактированы / удалены из-за чувствительности / неактуальности)
который выглядит мне так, как будто я делаю то, что хочу, а именно: создаю модуль для a
, другой для b
и третий для c
.
, однако, при фактической установке этого в кластерЯ всегда получаю только стручок, соответствующий последнему элементу в списке.(в данном случае c
) это почти как если бы они перезаписывали друг друга, но, учитывая, что у них разные имена, я не думаю, что они должны?даже при работе с --debug
, но не --dry-run
вывод говорит мне, что у меня должно быть 3 модуля, но при использовании kubectl get pods
я вижу только один.
Как я могу итеративно создавать модули из списка, используя Helm?