【问题标题】:What is the difference between |+ and |- when creating a configmap from a file in kubernetes yaml definitions?从 kubernetes yaml 定义中的文件创建配置映射时,|+ 和 |- 有什么区别?
【发布时间】:2019-10-17 03:26:14
【问题描述】:

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

|+ 和 |- 有什么区别?

【问题讨论】:

    标签: kubernetes yaml configmap


    【解决方案1】:

    这是block chomping indicator

    直接引用链接:

    chomping 指示器控制换行符在 字符串的结尾。默认的,剪辑,在 字符串的结尾。要删除所有换行符,请通过放置 样式指示符后的减号 (-)。剪辑和剥离都忽略 有多少换行符实际上在块的末尾;留住他们 都在样式指示符后面加上一个加号 (+)。

    这意味着:

    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
    

    【讨论】:

    • 你最好参考官方的 YAML 规范,这样你可能已经注意到你的两个 YAML 文件都是无效的。
    • 没错,我只是删除了导致错误的多余空格。
    【解决方案2】:

    这些是block chomping indicators,它们会影响如何处理文本 (|) 或折叠 (>) 块样式标量中的尾随换行符。

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

    如果指定+,则每个换行符保留,因此标量将在下一个节点(在除了最后一个非空行结束的那个)

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

    请注意,您的第二个示例是无效production rules 表示只能通过缩进指示符(即数字,如果指定)将 chomping 指示符与| 分开,并且|- 之间不允许有空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 2014-09-12
      • 2021-12-28
      • 2011-06-02
      • 2017-10-24
      • 2018-11-21
      • 2019-12-04
      • 2011-04-22
      相关资源
      最近更新 更多