问题标签 [yq]
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.
yaml - 使用 yq 将 YAML 合并到特定的数组条目中
给定 master.yml ...
...和一个 update.yml ...
...我想将它合并到正确的条目中。这将给出:
如果更新适用于以下 yq 4project-a
但是,通过提供的project-z
更新,它错误地替换了第一个数组条目(最终得到两个project-z
s)。
kubernetes - 创建多个 Kubernetes 作业清单的自动化方法
定时任务模板
我需要创建多个不同的REPO_URL
100 多个 URL 的作业文件保存在一个文件中。我正在寻找一种解决方案,我可以在其中设置作业模板并从另一个文件中获取所需的键:值。
到目前为止,我已经尝试过https://kustomize.io/、https://ballerina.io/和https://github.com/mikefarah/yq。但我无法找到适合该场景的好例子。
yaml - yq 将数据附加到 yaml 文件中
我有一个这样的 YAML 文件 file.yaml:
现在我想使用 Mike farah 的 yq v4(具体来说是 4.5.1 版)https://github.com/mikefarah/yq来追加details
密钥,其中有一个名称列表,颜色应该如下所示:
在 yq 版本中,我知道我们可以做一个
等等。但是我如何使用 yq v4 的 eval 命令来做到这一点。我真的很感激这方面的任何帮助。
kubernetes - 如何使用 yq 在条件下修补多文档 yaml 文件?
让 YAML 文档类似于:
我想得到类似的东西
所以基本上得到文件,如果文件有kind: NetworkPolicy
补丁apiVersion: networking.k8s.io/v1beta1
。
理想情况下一个班轮,理想情况下使用 yq v4,但其他解决方案也会有所帮助。
yq - 使用锚父更新数组列表中的嵌套条目
给定一个 yaml 文件:
我想更新Organizations.[&org-o1].O_Endpoints
.
我可以使用此命令进行更改:
但是我不能总是预测 的位置 [x] org-o1
,所以这个命令是不够的。
我还可以使用此命令更新O_Endpoints
所有数组条目的值:
但是,此命令会添加O_Endpoints
到当前没有它们的条目中。我只想更新现有条目,而不是添加新条目。
如果 org-o1 不是锚点,我可以使用以下命令更新它而不知道它的确切位置:
我可以对路径包含数组中的锚点的条目做类似的事情吗?
yq - 如何在搜索中将通配符与环境变量结合起来?
是否可以在查询中使用带有通配符的环境变量?
鉴于:
以下查询:
返回:sometexthere
。
也可以使用环境变量:
返回相同的值:sometexthere
. 但是,这有点毫无意义,因为输出与输入变量值相同。
如果通配符与环境变量结合(以匹配部分字符串),则该命令不返回任何内容:
是否有另一种方法可以使用环境变量使用 yq 搜索部分字符串?
select - 如何使用 yq 根据子键值选择所有 YAML 键?
我有一个这样的 YAML 文件:
我想选择所有已启用属性设置为true的条目:
我希望输出是
但我得到
我做错了什么?
arrays - 使用 yq 有条件地向数组元素添加属性(版本 4)
我有一个包含数组的 YAML 文档。我想使用mikefarah的yq
版本 4有条件地向该数组的元素添加属性。
这是一个示例 YAML 文档。
我想把它变成,
shots
我们为 .的每个元素添加一个属性pets
。的值shots
应该是任何name
值,点,upToDate
。
我正在尝试这样的事情,
但这会产生,
我需要保留整个原始 YAML 文档并插入shots
属性。
这很接近,但缺少所有其他宠物。
它产生,
我在想也许我们可以将宠物的名字存储在一个变量中并在以后引用它,但是 v4 今天对我来说是全新的。
我宁愿有一个单线,这样我就不必过滤.name
. 该数组的元素少于 10 个,因此我可以轻松地对名称进行硬编码并调用yq
10 次。
有什么想法或建议吗?非常感谢,韦尔登
yaml - 在连接数组时合并两个 yaml 文档
我想将两个 yaml 文档与包含的结果合并
- 所有映射值(最后一个优先)
- 串联数组
例如给定这个文件
和这个文件
结果应该包含所有节点,合并数组和不是来自最后一个文件的数组的值
yq 可以做到这一点,也许?
json - 使用 jq 进行转换时如何引用“子文档”
我正在尝试使用jq
. 我想“识别”模式
并将其更改为
我认为这并不难,但是当我尝试在一个更大的例子上做这件事时,我遇到了麻烦。让我们举个例子:
我想变成
我已经尝试过表达(.components | .schemas | .[] | .properties // empty | .[] | select(.allOf // empty | .[] // empty | .description) | select(.allOf // empty | .[] // empty | ."$ref")) = { "$ref" : "what to put here" }
,这给了我
我需要一些对“子文档”的引用,而不是what to put here
. 我试过变量,但它们只能是全局定义.
的,右侧指的是整个文档,而不仅仅是被替换的部分。
我们将 YAML 用于 OpenAPI 规范,因此如果有一个同样适用的解决方案yq
会更好。