繁体   English   中英

通过 jenkins 管道使用 yq 命令更新 yaml 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM