我可以像下面这样在deployment.yaml中使用ne和eq吗



我正试图在部署中使用ne和eq.yaml,但当模板helm低于错误时

错误:cdp/templates/cdp-deployment.YAML:将YAML转换为JSON时出错:YAML:第50行:未找到所需的密钥

{{- if (or (ne .Values.metadata.name "application-A") (eq .Values.metadata.name "application-B") )}}
ports:
- containerPort: {{ .Values.service.port }}
envFrom:
- configMapRef:
name: {{ .Values.metadata.name }}
- secretRef:
name: {{ .Values.metadata.name }}
{{- end }}

提前感谢

这个if语句没有问题。我试着写了一个演示来测试它。这段话没有问题。

values.yaml

metadata:
name: application-B

templates/cm.yaml

apiVersion: v1
kind: ConfigMap
metadata:
name: test
data: 
cfg: |-
{{- if (or (ne .Values.metadata.name "application-A") (eq .Values.metadata.name "application-B") )}}
ok
{{- else }}
notok
{{- end }}

输出

apiVersion: v1
kind: ConfigMap
metadata:
name: test-v32
labels:
helm.sh/chart: test-0.1.0
app.kubernetes.io/name: test
app.kubernetes.io/instance: test
app.kubernetes.io/version: "1.16.0"
app.kubernetes.io/managed-by: Helm
data: 
cfg: |-
ok

渲染的线条标签与实际的线条标签不同,正如傻瓜所说,你应该调用helm template --debug test .命令进行调试,看看问题出在哪里