我遇到过两种从kubernetes中的文件创建配置映射的语法。
第一个;
apiVersion: v1
data:
file1.yaml: |+
parameter1=value1
kind: ConfigMap
metadata:
name: my-configmap
第二个人;
apiVersion: v1
data:
file1.yaml: | -
parameter1=value1
kind: ConfigMap
metadata:
name: my-configmap
| +和|-之间有什么区别?
答案 0 :(得分:4)
直接从链接中引用:
排行指示器控制换行符应该在什么地方发生 字符串的结尾。默认值为clip,将单个换行符放在 字符串的结尾。要删除所有换行符,请通过添加 样式指示符后的减号(-)。片段和带都忽略 块的末尾实际上有多少个换行符;留住他们 都在样式指示器后面加上了加号()。
这意味着:
apiVersion: v1
data:
file1.yaml: |-
parameter1=value1
kind: ConfigMap
metadata:
name: my-configmap
file1.yaml将具有值:
parameter1=value1
针对:
apiVersion: v1
data:
file1.yaml: |+
parameter1=value1
kind: ConfigMap
metadata:
name: my-configmap
file1.yaml将具有值:
parameter1=value1 # line break
# line break
# line break
答案 1 :(得分:0)
这些是block chomping indicators,它们影响如何处理文本(|
)或折叠(>
)块样式标量中的 trailing 换行符。 / p>
默认情况下,如果在+
(或-
)之后没有|
或>
,则这些结尾的换行符将被剪切,也就是说,标量将被加载为以单换行符结尾的字符串,而与标量末尾是否有多个空行无关。
如果指定了+
,则每个换行符都保持 ,因此标量将在每个空行之前有一个 extra 换行符,位于下一个节点的索引之前(除了最后一个非空行的结尾)
如果指定了-
,那么即使块样式标量的末尾有多个空行,标量也会被剥夺并且不会以换行符结尾。
请注意,您的第二个示例是无效,production rules表示该砍伐指示器只能由缩进指示器与|
分开(例如,数字指定)),并且在|
和-
之间不允许有空格。