jsonnet - 在 jsonnet 中导入 YAML
问题描述
有没有办法.yaml
在 jsonnet 中导入文件?
我发现 jsonnet 支持导入.json
并且还具有本机importstr()
功能,但看起来不支持.yaml
?
我想要做:
local foo = import "foo.yaml";
local bar = foo.bar;
解决方案
目前没有(2018 年 5 月),如果您正在使用 Kubernetes 清单(使用 jsonnet 导入 + 按摩) ,则在https://github.com/google/jsonnet/issues/460上有一个未解决的问题可以使用包含 jsonnet 超集的 https://github.com/ksonnet/kubecfg,包括.std.parseYaml()
更新(2018-05-23):添加
ksonnet
示例
使用ksonnet
's embedded parseYaml
,在 app 文件夹:
$ 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
推荐阅读
- c# - sqlkata 如何将带点的表名包装到方括号中?
- javascript - Typescript - 具有静态成员的类与具有 const 成员的命名空间的区别
- ios - 如何将双精度数舍入到小数点后第三位
- python - 无法使用 Selenium 检索表体内容
- javascript - 在动态添加的下拉列表中禁用已选择的选项
- python - 如何在带有输入参数的shell脚本函数中嵌入python -c多行脚本
- reactjs - 使用 React 钩子强制更新
- azure - 如何查看 Azure 人脸服务的非持久人脸?
- conv-neural-network - 灰度图像作为 keras 模型的输入
- javascript - 如何访问标题