我想为我的项目设置通配符子域,使用k8s,nginx控制器,helm图表:
在ingress.yaml
文件中:
...
rules:
- host: {{ .Values.ingress.host }}
...
在values.yaml
文件中,我将主机example.local
更改为*.example.local
...
ingress:
enabled: true
host: "*.example.local"
...
然后,当我使用helm图表安装图表时:
Error: YAML parse error on example/templates/ingress.yaml: error converting YAML to JSON: yaml: line 15: did not find expected alphabetic or numeric character
我怎么才能修好它?
谢谢你的支持。
发布于 2022-02-18 16:19:08
YAML以特殊的方式处理以星号开头的字符串--这就是为什么带有通配符(如*.example.local
)的主机名破坏了helm install
上的入口。为了被识别为字符串,ingress.yaml
文件中的值应以" "
字符引号:
...
rules:
- host: "{{ .Values.ingress.host }}"
...
这里还有一个选项-添加| quote
:
...
rules:
- host: {{ .Values.ingress.host | quote }}
...
我重复了你的问题,这两种选择都是正确的。关于引用YAML特殊字符的更多信息是这里。
发布于 2022-02-18 09:56:14
在您的ingress.yaml
中,在主机键周围放置引号。
host: "{{ .Values.ingress.host }}"
发布于 2022-02-18 10:47:16
入口:启用:真正的主机:"*.example.local“
你可能需要用“--”而不是
https://stackoverflow.com/questions/71170639
复制相似问题