如何在Kubernetes YAML中拆分长对象键且不插入多余空格?
YAML长键多行拆分无多余空格的解决方案
错误原因
你之前使用>-折叠块标记拆分键的方式存在问题:YAML的折叠块(>/>-)默认会把换行符替换为单个空格,因此路径和ID之间会多出不需要的空格,导致键名不符合预期。
正确实现方式
使用双引号包裹+反斜杠续行的写法,YAML解析器会自动忽略反斜杠后的换行符以及下一行的前置缩进,不会插入任何多余字符:
annotations: ? "container.apparmor.security.beta.kubernetes.io/\ 9c2591b6-bd95-442a-9d35-fb600143a873" : runtime/default
语法说明
- 键名前加
?是YAML显式声明复杂键的语法,用于标识后面的多行内容是对象的键而非值 - 双引号内部的反斜杠
\为续行符,必须放在当前行的末尾,后面不能留空格 - 续行后下一行的缩进仅用于提升可读性,不会被写入最终的键名字符串
验证
用yq等YAML解析工具验证上述配置,输出结果和原始长键完全一致:
annotations: container.apparmor.security.beta.kubernetes.io/9c2591b6-bd95-442a-9d35-fb600143a873: runtime/default
内容的提问来源于stack exchange,提问作者cmdjulian
相关产品推荐
相关产品推荐

