本文介绍了舵形模板:获取第一个数组元素的节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这些值

grafana:
  ...
  ingress:
    enabled: true
    annotations: {}
      # kubernetes.io/ingress.class: nginx
      # kubernetes.io/tls-acme: "true"
    hosts:
      - host: chart-example.local
        paths: ["/grafana"]

这是标准舵机。出于这个原因,我希望将hosts保留为数组(即使这会使下面的操作有点棘手)。我如何才能获得第一个.host(我不介意任何其他可能的),以便使env.value成为动态

      containers:
        - name: {{ .Chart.Name }}-grafana
          env:
          - name: GF_DOMAIN
            value: chart-example.local

我试过

          env:
          - name: GF_DOMAIN
          {{- range .Values.grafana.ingress.hosts }}
            value: {{ .host }}
          {{- end }}
          env:
          {{- range .Values.grafana.ingress.hosts }}
          - name: GF_DOMAIN
            value: {{ .host }}
          {{- end }}

this suggestion之后,我也尝试了

          env:
          {{- with .Values.grafana.ingress.hosts 0}}
          - name: GF_DOMAIN
            value: {{ .host }}
          {{- end}}

value: {{ .Values.grafana.ingress.hosts 0 .host }}
value: {{ .Values.grafana.ingress.hosts | first.host}}

如何处理此案例?

推荐答案

您需要的是index function

env:
{{- with (index .Values.grafana.ingress.hosts 0) }}
- name: GF_DOMAIN
  value: {{ .host }}
{{- end }}

或者,first同样有效:

env:
{{- with (first .Values.grafana.ingress.hosts) }}
- name: GF_DOMAIN
  value: {{ .host }}
{{- end }}

这篇关于舵形模板:获取第一个数组元素的节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 23:17