首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将YAML转换为JSON: yaml:第15行时出错:找不到预期的字母或数字字符

将YAML转换为JSON: yaml:第15行时出错:找不到预期的字母或数字字符
EN

Stack Overflow用户
提问于 2022-02-18 08:47:06
回答 3查看 2.6K关注 0票数 6

我想为我的项目设置通配符子域,使用k8s,nginx控制器,helm图表:

ingress.yaml文件中:

代码语言:javascript
运行
复制
...
rules:
  - host: {{ .Values.ingress.host }}
...

values.yaml文件中,我将主机example.local更改为*.example.local

代码语言:javascript
运行
复制
...
ingress:
  enabled: true
  host: "*.example.local"
...

然后,当我使用helm图表安装图表时:

代码语言:javascript
运行
复制
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

我怎么才能修好它?

谢谢你的支持。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-18 16:19:08

YAML以特殊的方式处理以星号开头的字符串--这就是为什么带有通配符(如*.example.local )的主机名破坏了helm install上的入口。为了被识别为字符串,ingress.yaml文件中的值应以" "字符引号:

代码语言:javascript
运行
复制
...
rules:
  - host: "{{ .Values.ingress.host }}"
...

这里还有一个选项-添加| quote

代码语言:javascript
运行
复制
...
rules:
  - host: {{ .Values.ingress.host | quote }}
...

我重复了你的问题,这两种选择都是正确的。关于引用YAML特殊字符的更多信息是这里

票数 8
EN

Stack Overflow用户

发布于 2022-02-18 09:56:14

在您的ingress.yaml中,在主机键周围放置引号。

代码语言:javascript
运行
复制
host: "{{ .Values.ingress.host }}"
票数 1
EN

Stack Overflow用户

发布于 2022-02-18 10:47:16

入口:启用:真正的主机:"*.example.local“

你可能需要用“--”而不是

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71170639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档