Рассмотрим следующий шаблон:
...
{{- range .Values.additionalMetrics }}
- interval: 1m
port: {{ .name }}
{{- end }}
...
И следующие значения:
additionalMetrics:
- name: kamon-metrics
port: 9096
targetPort: 9096
Если additionalMetrics
отсутствует, шаблон helm не работает.
Можно ли сначала проверить, определен ли additionalMetrics
, а затем диапазон значений или продолжить иначе?
Примечание: без создания сначала if, а затем range, но с одним условием, например, это не мое желаемое решение:
{{- if .Values.additionalMetrics }}
{{- range .Values.additionalMetrics }}
- name: {{ .name }}
port: {{ .port }}
targetPort: {{ .targetPort }}
{{- end }}
{{- end }}
Заранее спасибо
Решение, которое вам не нужно, в порядке. Это просто и делает то, что он должен делать. Нет необходимости все усложнять.
Вы можете сделать это немного красивее с предложением with
:
{{- with .Values.additionalMetrics }}
{{- range . }}
- name: {{ .name }}
port: {{ .port }}
targetPort: {{ .targetPort }}
{{- end }}
{{- end }}
Если вы действительно хотите сделать это в одном выражении, вы можете использовать как default
пустой список:
{{- range .Values.additionalMetrics | default list }}
- name: {{ .name }}
port: {{ .port }}
targetPort: {{ .targetPort }}
{{- end }}