[英]To update a yaml file using yq command through jenkins pipeline
我的示例 yaml 文件如下所示:
cluster:
a: val1
b: val2
c: val3
list:
k1:
- n11
- n2
k2:
- n1
因此,jenkins 管道需要 2 个输入,即输入 1 和输入 2 的名称。 创建后,我需要更新 yaml 文件。 我需要在input2的基础上添加input1,如果input2=k1,我需要在k1部分添加input1。 我正在尝试在我的 jenkins 管道中执行以下命令: sh "a=$Input1 b=$Input2 yq -i '.cluster.list[strenv(b)] += strenv(a)' sample.yaml"
但它抛出错误:
jq: error: strenv/1 is not defined at <top-level>, line 1:
.cluster.vms[strenv(a)] += strenv(b)
情况 1:如果您的变量在管道中声明: yq -iY.cluster.list[$key] += $val
其中,-iY 将编辑 yaml 文件,$key 保存 input1 的值,$val 保存值输入 2
情况 2:如果未声明 $key 和 $val,则以下命令有效: yq -iY --arg key k1(or k2) --arg val value.cluster.list[$key] += $val
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.