Helm 模板无法读取 ip 地址 - 无法评估字符串类型的字段 ipAddress
Helm template not able to read ip address - can't evaluate field ipAddress in type string
我正在尝试为 Istio 的 ServiceEntry 创建一个 helm 模板,其中包含静态 IP 地址的地址列表。在values.yaml中,我有
- name: test-se
namespace: test-se-ns
egressUrls:
- mydbhost.com
port: 32306
protocol: TCP
ipAddress: 10.2.2.2
在 .tpl 文件中,我试图将 ipAddress 的值添加到列表中
{{- with .ipAddress }}
addresses:
- {{ .ipAddress | quote }}
{{- end }}
总是失败并出现异常
templates/_service_entry.tpl:18:13:在 <.ipAddress> 处执行“common.serviceentry.tpl”:无法计算字符串类型
中的字段 ipAddress
知道我做错了什么吗?
如果您使用 with
,您会将您用作 with
的内容作为该块内的上下文。
所以,用点来指代它。
{{- with .ipAddress }}
addresses:
- {{ . | quote }}
{{- end }}
来自docs:
{{with pipeline}} T1 {{end}}
If the value of the pipeline is empty, no output is generated;
otherwise, dot is set to the value of the pipeline and T1 is
executed.
在这种情况下,if
似乎也很合适,因为您对新上下文的处理不多。
{{- if .ipAddress }}
addresses:
- {{ .ipAddress | quote }}
{{- end }}
当您在 Helm 中使用 with
时,您更改了 .
的范围,因此 Helm 查找对象而不是字符串,您可以在 [=14] 中阅读更多相关信息=].
但无论如何,我认为在你的情况下,你需要使用 range
而不是 with
,你可以看一个例子 here
我正在尝试为 Istio 的 ServiceEntry 创建一个 helm 模板,其中包含静态 IP 地址的地址列表。在values.yaml中,我有
- name: test-se
namespace: test-se-ns
egressUrls:
- mydbhost.com
port: 32306
protocol: TCP
ipAddress: 10.2.2.2
在 .tpl 文件中,我试图将 ipAddress 的值添加到列表中
{{- with .ipAddress }}
addresses:
- {{ .ipAddress | quote }}
{{- end }}
总是失败并出现异常
templates/_service_entry.tpl:18:13:在 <.ipAddress> 处执行“common.serviceentry.tpl”:无法计算字符串类型
中的字段 ipAddress知道我做错了什么吗?
如果您使用 with
,您会将您用作 with
的内容作为该块内的上下文。
所以,用点来指代它。
{{- with .ipAddress }}
addresses:
- {{ . | quote }}
{{- end }}
来自docs:
{{with pipeline}} T1 {{end}}
If the value of the pipeline is empty, no output is generated;
otherwise, dot is set to the value of the pipeline and T1 is
executed.
在这种情况下,if
似乎也很合适,因为您对新上下文的处理不多。
{{- if .ipAddress }}
addresses:
- {{ .ipAddress | quote }}
{{- end }}
当您在 Helm 中使用 with
时,您更改了 .
的范围,因此 Helm 查找对象而不是字符串,您可以在 [=14] 中阅读更多相关信息=].
但无论如何,我认为在你的情况下,你需要使用 range
而不是 with
,你可以看一个例子 here