问题标签 [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.
kubernetes - 使用 yq 更新 yaml 中的嵌套数组值
给定一个 yaml 文件(helmfile),如下所示
我正在尝试找出一种更新特定图像标签的干净方法。例如,我想image.bar_proxy.tag
从更新46
到51
.
我有以下内容,可以完成这项工作,但它要求您知道数组项的确切索引:
因此,如果数组顺序在某个时候发生变化,这将会中断。
一个首选的解决方案是:“将 image.bar_proxy.tag 值从46
where 51
set[].name==image.bar_proxy.tag 更新”。关于如何实现更具体的条件选择的任何想法?
仅供参考我们的 yq 版本:
yaml - yq 处理带引号的字符串
目前,我正在尝试使用mikefarah/yq处理器(Ubuntu 机器上的版本 3.1.2)在 YAML 文件中交换一个字符串,但带有双引号,类似于以下内容:
所以我首先尝试为我经典地解决这个问题:
但是引号不包含在字符串中。
我已经多次尝试转义字符串以获得所需的结果,但不幸的是一切都不是所需的结果。例如,如果我将字符串设置为三倍(类似于 """),则设置了引号,但它周围有一个单引号。然后看起来像这样:
但我想要的结果是这样的:
我还尝试使用不同变体的反斜杠(例如“\”exchangedstring\“”或“\”exchangedstring\”')。不幸的是所有错误的结果。我不能排除稍后将解析yaml文件的应用程序不会与该位置的字符串混淆的可能性,因此对我来说绝对有必要将该字符串放在该位置的引号中。
有谁知道我如何仍然只能得到一个简单版本的引号?非常感谢您提前。
regex - 如何自动从 yaml 文件中删除 kubernetes 机密?
我有一个包含许多 Kubernetes YAML 对象的文件。我正在寻找一种从文本文件中删除所有 K8s Secret YAML 对象的方法,这些对象由"kind: Secret"
YAML 块中包含的字符串标识。这应该删除从“apiVersion”到“---”之前的所有内容,表示下一个对象的开始。
我研究过 Sed、Python 和 yq 工具,但没有成功。YAML 可以包含任意数量的秘密,以任何顺序。
如何自动剥离这些“秘密”块?
yaml - 解析传递给 YML 的变量
我有一个类似于下面的 yml 文件
我希望能够在log_group_name
这里扩展密钥。这个想法是log_group_name
键通过变量作为列表传递,例如
logGroups = my-application-1,my-application-2,my-application-3,my-application-4
我希望这能在 yml 中翻译成这个
是否可以使用 shellscript 或任何解析器/工具来做到这一点?任何帮助深表感谢。
bash - 在 for 循环 bash 中使用 yq
我有一个如下所示的 yaml 数组,
我正在尝试使用 for 循环和 yq 在 bash 脚本中解析这个 yaml。
但我没有得到预期的结果,比如无法获取 roleArn、group、user 的值。请让我知道如何解决这个问题。
yq - 在 bash 中修改 yaml 数组
我有一个包含以下内容的文件,
我想附加这个文件内容,如下所示,前两行是 eks ,iammappings,
我尝试了 yq 合并。但它对我不起作用。请让我知道如何执行此操作。
bash - 将 yaml 数组转换为字符串数组
我有一个如下的 yq 读取命令,
它从以下 yaml 读取 iamIdentityMappings:
它存储组如下,
但我想按如下方式存储组。(逗号分隔值)
如何在 bash 中做到这一点?
bash - 根据 bash 中的计数变量构造命令
我想根据示例中显示的 yaml 文件中的组数构造一个命令。
例子:
我有下面的组命令,它从 iamIdentityMappings yaml 文件中提取组,
iamIdentityMappings yaml 文件:
由于 groups 数组中有两个组,我需要在下面的命令中添加两个组,
如果有 3 个组,那么 --group 应该在命令中重复 3 次。
请让我知道如何在 bash 中执行此操作
yaml - 用新值替换 yq 的 Yaml 值作为 bash 函数的输出,该函数接受当前值作为输入
概述
- 类似于sed + bash 函数的替换
但是使用
yq
- kislyuk的yq不是其他yq项目https://github.com/kislyuk/yq (
pip install yq
)
细节
我有这个 bash 功能:
另一方面,我有一个 YAML 文件:
我能够用.image
静态值替换键的所有值出现:
结果和预期的一样:
但是,我想利用上面的 bash 函数replace_image_repo
并调用它来根据当前值计算每次出现的新值:
例如,
nginx
必须替换为$(replace_image_repo nginx)
应该是的输出nexus.local/nginx
。是否可以匹配当前值?
如果是这样,是否可以调用 Bash 函数“yq -y '.... $(HERE)'”?