kubernetes 如何从值中获取以-连字符开头的变量的值,yaml文件

1dkrff03  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(137)

我的values文件如下所示:

hosts:
  - host: abc.defg.hij.io

我需要获取主机值“ www.example.com ”到入口文件
尝试使用tpl函数,但没有帮助

utugiqy6

utugiqy61#

通常这是为了在{{ range }}中使用。.. {{ end }}块(参见https://helm.sh/docs/chart_template_guide/control_structures/
例如,我的values.yaml中有

ingress:
  ...

  # Hosts to recognise on the ingress
  # External DNS will create DNS entries for these
  hosts:
    - host: host1.domain.com
    - host: host2.domain.com
    - host: host3.domain.com

在我的ingress.yaml中:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  ...
spec:
  ...
  rules:
    {{- range .Values.ingress.hosts }}
    - host: {{ .host | quote }}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{ $fullName }}
                port: 
                  number: {{ $svcPort }}
    {{- end }}

请注意,在范围中选择的“当前”值如何被引用为“{{ . }}”,因此是“{{ .host }}”表示“当前选定的范围元素的主机值”
range块将复制该块的次数与范围内的项目相同,因此在我的示例中,将有用于host 1、host 2和host 3的块

相关问题