在值文件中,我在变量扩展和插值方面遇到一些问题。 我们在值文件的顶部定义了一个变量,例如:
webserverInternalIngressHost: 'service.{{ .Values.global.namespace }}.{{ .Values.global.domain }}'
然后使用如下:
deployments:
webserver:
ingress:
internal:
tls:
- secretName: .......
hosts:
- '{{ .Values.webserverInternalIngressHost }}'
这不会被插值,最终的模板是:
spec:
ingressClassName: nginx-internal
tls:
- hosts:
- "service.{{ .Values.global.namespace }}.{{ .Values.global.domain }}" # <<< Variables not expanded
secretName: .....
如果我们使用
'service.{{ .Values.global.namespace }}.{{ .Values.global.domain }}'
内联,例如:
deployments:
webserver:
ingress:
internal:
tls:
- secretName: .......
hosts:
- 'service.{{ .Values.global.namespace }}.{{ .Values.global.domain }}'
然后输出如预期:
spec:
ingressClassName: nginx-internal
tls:
- hosts:
- "service.namespace.domain.us" <<< Variables expanded
secretName: ......
我可以做些什么来动态确保这个“嵌套”变量插值?
我能够做到这一点:
webserverInternalIngressHost: service.{{ .Values.global.namespace }}.{{ .Values.global.domain }}
deployments:
webserver:
ingress:
internal:
tls:
- secretName: .......
hosts:
- '{{ tpl .Values.webserverInternalIngressHost . }}'