在 jsonnet 中导入 YAML

Ale*_*leš 6 jsonnet

有没有办法.yaml在 jsonnet 中导入文件?

我发现 jsonnet 支持导入.json并且也有本机importstr()功能,但看起来不支持.yaml?

我想要做:

local foo = import "foo.yaml";
local bar = foo.bar;
Run Code Online (Sandbox Code Playgroud)

jjo*_*jjo 5

不是现在(月/ 2018),还有它的开放问题在https://github.com/google/jsonnet/issues/460如果你与Kubernetes舱单工作(进口+按摩W / jsonnet)你可以使用https://github.com/ksonnet/kubecfg包含jsonnet,其中的一个超集std.parseYaml()

更新(2018-05-23):添加ksonnet示例

在 app 文件夹中使用ksonnet的嵌入parseYaml

$ cat assets/foo.yaml 
foo: value1
bar: value2

$ cat components/cm.jsonnet 
local env = std.extVar("__ksonnet/environments");
local params = std.extVar("__ksonnet/params").components.cm;
local k = import "k.libsonnet";
local configMap = k.core.v1.configMap;

local parseYaml = std.native("parseYaml");

configMap.new(params.name, params.data) {
  data+: parseYaml(importstr "../assets/foo.yaml")[0] {
    foo: "my own value",
  },
}

$ ks show default
---
apiVersion: v1
data:
  bar: value2
  foo: my own value
kind: ConfigMap
metadata:
  name: cm
Run Code Online (Sandbox Code Playgroud)