从kubernetes yaml定义中的文件创建configmap时||和|-之间有什么区别?

时间:2019-05-31 13:11:06

标签: kubernetes yaml configmap

我遇到过两种从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

| +和|-之间有什么区别?

2 个答案:

答案 0 :(得分:4)

这是block chomping indicator

直接从链接中引用:

  

排行指示器控制换行符应该在什么地方发生   字符串的结尾。默认值为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表示该砍伐指示器只能由缩进指示器与|分开(例如,数字指定)),并且在|-之间不允许有空格。