从 kubernetes yaml 定义中的文件创建配置映射时,|+ 和 |- 有什么区别?



我遇到了 2 种类型的语法,用于从 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

|+ 和 |- 有什么区别?

这是块啃碎指示器。

直接引用链接:

啃咬指示器控制换行符应该发生的情况 字符串的末尾。默认值 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

这些是块劈砍指示器,它们影响如何处理文字(|)或折叠(>)块样式标量中的尾随换行符。

默认情况下,如果在|(或>)之后没有+-,则这些尾随换行符将被裁剪,即标量将作为以单个换行符结尾的字符串加载,与标量末尾是否有多个空行无关。

如果指定了+,则保留每个换行符,因此标量将在下一个节点的缩进之前为每个空行提供一个额外的换行符(除了最后一个非空行结尾的换

行符)如果指定了-,则标量将被剥离,并且不会以换行符结尾,即使块样式标量末尾有多个空行也是如此。

请注意,您的第二个示例无效,生产规则表明,切碎指示器只能通过压痕指示器(即数字,如果指定)与|分开,并且|-之间不允许有空格。