[使用Helm,如果没有定义变量,我的印象是default
将是备用。但是,Helm似乎无法获得子对象散列中的值:
type: {{ default "NodePort" .Values.fpm.service.type }}
如果未定义.Values.fpm.service
或service.type
,则应使用9000。
但是,尝试对此进行模板化会引发nil指针错误:
<.Values.fpm.service.type>: nil pointer evaluating interface {}.type
是否有一种方法可以简单地执行此级别的变量测试?还是我要接受if / else测试?
此操作的目的是可选在.fpm.service
文件中定义[..].type
(和values.yaml
)。
((我正在构建Helm库图表以处理主图表的可选定义)
根据official Helm doc (Using Default Function),语法不同,应该以这种方式使用它:
type: {{ .Values.fpm.service.type | default "NodePort" | quote }}