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

ojsjcaue  于 2023-01-08  发布在  Jenkins
关注(0)|答案(1)|浏览(398)

我的示例yaml文件如下所示:

cluster:
  a: val1
  b: val2
  c: val3
  list:
    k1:
    - n11
    - n2
    k2:
    - n1

因此,jenkins管道有2个输入,即input1和input2的名称。创建后,我需要更新yaml文件。我需要基于input2添加input1,如果input2=k1,我需要在k1部分中添加input1。我正在jenkins管道中尝试执行以下命令:第一个月
但它抛出错误:

jq: error: strenv/1 is not defined at <top-level>, line 1:
.cluster.vms[strenv(a)] += strenv(b)
6gpjuf90

6gpjuf901#

情况1:如果您的变量在管道中声明:yq -iY .cluster.list[$key] += $val其中,-iY将编辑yaml文件,$key保存输入1的值,$val保存输入2的值
第二种情况:如果没有声明$key和$瓦尔,则以下命令有效:yq -iY --arg key k1(or k2) --arg val value .cluster.list[$key] += $val

相关问题