问题标签 [jsonnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsonnet - 如何用mixin方式替换jsonnet中数组的一个元素?
我们有从 libsonnet 导入的数组
我想替换这个元素:
与这个(相同name
):
预期输出:
“附加”很容易,但是如何删除现有的
例子:
先谢谢了~
json - 解决嵌套(子)中的父元素
我有以下 jsonnet。
我的目标是从孩子访问父母。问题在评论中,以便更好地理解上下文。谢谢
merge - Jsonnet 中的 + 运算符和 std.mergePatch 有什么区别?
Jsonnet 的std.mergePatch
实现RFC7396,但在我的幼稚测试中,我没有发现它的行为方式和+
操作员之间有什么不同;例如,+
运算符尊重x+
语法。在 Jsonnetstd.mergePatch
本身中实现,这似乎暗示它与运算符不同,我假设它是内置的。+
这两种合并方式的语义有何不同?
java - 如何在 jsonnet 文件中设置主机名?
我正在尝试掌握jsonnet
文件的窍门。到目前为止,我所拥有的只是硬编码值,但如果我想获取 Java 应用程序的主机名怎么办。例如,在 Java 中,我会这样做:
但显然我不能只在 jsonnet 文件中有一个像下面的 JSON 这样的键值对。
我需要一些帮助来了解如何做到这一点。
我已经查过了,std.extvar(x)
但无论出于何种原因,我所看到的例子对我来说都不是很清楚。这种方法是否相关?否则,我不确定。
jsonnet - 顶级对象中的条件无法访问合并的配置
我正在处理 jsonnet,我无法访问$._config
来自合并对象的内容
错误说
我不确定为了访问配置参数我可以代表顶级 json 有多么不同
jsonnet - 将对象与 +(加号运算符)与空格组合
Jsonnet 的文档提到该+
运算符可用于继承,或者按照教程中的措辞,用于组合对象:
但是,我注意到 - 至少在像上面这样的简单情况下 - 简单地省略+
运算符并编写由空格分隔的两个连续对象编译成相同的结果。也就是说,上面的程序和这个程序之间的输出没有区别:
我很困惑,因为我没有注意到文档中提到了这种隐式对象组合。我还注意到这种行为似乎是对象所独有的,并且不会发生在其他类型中。(特别是,尽管 Jsonnet 的一些特性从 Python 中汲取灵感,但您不能像在 Python 中那样将字符串与空格隐式连接。)
因此,一些问题:
- 这甚至是预期的行为,还是错误?
- 它在任何地方都有记录吗?
+
将对象与显式运算符组合和将它们与空格隐式组合之间是否存在任何行为差异?
jsonnet - jsonnet std.mapWithKey - 不生成数组?
我有一个本地 jsonnet 对象定义如下:
我想生成这个数组:
我很惊讶std.mapWithKey
没有交付。文档没有提到任何关于输出格式的内容,我仍然对它的行为感到困惑:
产量:
如果我已经在函数中处理了自己的键,为什么它会使用结果对象中的原始键?
我不会这么不满意,除非有一个std.objectValues
函数,它可以只返回所有字段的值,作为一个数组 - 即我感兴趣的数组。
prometheus-operator - 使用 jsonnet 更新 Prometheus 算子默认规则
我正在尝试覆盖 Kube-Prometheus-Stack 中的默认规则。我在部署 Kube-Prometheus-Stack 时启用了默认规则。我尝试使用 jsonnet,如本示例所示https://github.com/prometheus-operator/kube-prometheus/blob/master/docs/developing-prometheus-rules-and-grafana-dashboards.md。
但我认为我没有正确遵循这些步骤,所以它没有按预期工作。
我按照以下步骤操作..请验证并让我知道我在这里缺少什么。
创建了一个 jsonnet 文件(my-custom-update.jsonnet)来更新规则“KubePodCrashLooping”,
使用文档中提供的 build.sh 脚本构建这个 jsonnet 文件,
这实际上删除了“KubePodCrashLooping”规则而不是更新它。这在 manifests 目录下创建了所有 yaml 文件
我想我错过了一些东西..请指教。
grafana - 将 jsonnet 用于 grafana 仪表板
我正在为 grafana 仪表板尝试 jsonnet (my-custom-grafana.jsonnet)。我尝试了下面的代码。
然后我执行,
在此执行过程中我没有任何错误,但我没有看到清单下的任何文件都使用这个 grafana 仪表板更新进行了更新。我尝试了使用 prometheus 规则的相同过程,我发现 manifests/prometheus-rules.yaml 得到了更新,我能够部署 yaml 文件没有问题。但是对于 grafana 仪表板,我不确定哪个文件得到更新以及如何部署它。有人可以帮忙吗?