【问题标题】:how to write multi-line value in ksonnet/jsonnet如何在 ksonnet/jsonnet 中写入多行值
【发布时间】:2018-05-08 16:38:38
【问题描述】:

我想创建一个多行的kubernetes config map,比如这种yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nifi-bootstrap
data:
  run.sh: |-
    echo "Waiting to run nslookup..."
    sleep 30

我应该如何将它写在我的原型的一个部分函数中?

    parts:: {
        bootstrap(p):: {
            apiVersion: 'v1',
            kind: 'ConfigMap',
            metadata: {
                name: p.name + '-bootstrap',
                labels: {
                    app: p.app,
                    release: p.release,
                },
            },
            data: {
                'run.sh': "|-
line 1 
line 2
line 3
"

但它会像这样生成 yaml:(ks 显示默认值):

apiVersion: v1
data:
  run.sh: "|-\nline 1 \nline 2\nline 3\n"
kind: ConfigMap

我想挂载此配置映射并将其作为脚本运行,但我怀疑此输出是否有效。关于如何在 ksonnet/jsonnet 中生成多行值的任何想法?

【问题讨论】:

    标签: kubernetes jsonnet ksonnet


    【解决方案1】:

    yaml|jsonnet“等效”是 ||| 构造(参见 https://jsonnet.org/ref/spec.html),应用了您的示例:

    $ cat foo.jsonnet
    {
      parts:: {
        bootstrap(p):: {
          apiVersion: "v1",
          kind: "ConfigMap",
          metadata: {
            name: p.name + "-bootstrap",
            labels: {
              app: p.app,
              release: p.release,
            },
          },
          data: {
            "run.sh": |||
              line 1
              line 2
              line 3
            |||,
          },
        },
      },
    } {
      foo: self.parts.bootstrap({name: "foo", app: "bar", release: "v1"}),
    }
    $ jsonnet foo.jsonnet
    {
       "foo": {
          "apiVersion": "v1",
          "data": {
             "run.sh": "line 1\nline 2\nline 3\n"
          },
          "kind": "ConfigMap",
          "metadata": {
             "labels": {
                "app": "bar",
                "release": "v1"
             },
             "name": "foo-bootstrap"
          }
       }
    }
    $ jsonnet foo.jsonnet|jq -r '.foo.data["run.sh"]'
    line 1
    line 2
    line 3
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多