我试图为我的Ingress创建一个Helm模板,它应该包括2个后端(前端/后端),并允许每个服务中有多个路径。我的当前模板看起来像这样:
rules:
- host: {{ $.Values.ingress.host}}
http:
paths:
{{- range .Values.ingress.service }}
{{- range .paths }}
- path: {{ . }}
pathType: Prefix
backend:
service:
name: {{ name }}
port:
number: {{ .port }}
{{- end }}
{{- end }}
{{- end }}
我的values文件看起来像这样:
ingress:
enabled: true
host: exemple.com
service:
- name: backend
port: 88
paths:
- /api
- /test
- name: frontend
port: 80
paths:
- /
我想要达到的结果如下:
rules:
- host: appli-test.kube.cloud-grdf.fr
http:
paths:
- backend:
service:
name: backend
port:
number: 88
path: /api
pathType: Prefix
- backend:
service:
name: backend
port:
number: 88
path: /test
pathType: Prefix
- backend:
service:
name: frontend
port:
number: 80
path: /
pathType: Prefix
任何帮助或建议如何实现这一结果将不胜感激。
谢谢你!
1条答案
按热度按时间dl5txlt91#
正如在注解中提到的,问题是您在第二个循环中有不同的上下文。
要解决这个问题,您需要计算
service
的索引,然后在第二个循环中从根目录引用它。是这样的:
$
引用根,所以我们从那里开始,然后沿着服务路径(.Values.ingress.service
),并使用(index <path> $index)
构造索引它,然后获得我们需要的密钥。