【问题标题】:Using set flag to set true value with helm upgrade in Jenkinsfile使用设置标志在 Jenkinsfile 中通过 helm upgrade 设置真值
【发布时间】:2021-09-23 19:35:49
【问题描述】:

在我的脚本化管道中,我有一个执行 helm 升级的 shell 脚本,我还设置了一些环境变量,如下所示:

sh """helm upgrade --install ${someVar} chart-hub/java-${javaVersion} \
...
--set env.vars[1] .name=some_name_here \
--set env.vars[1] .value="123abcdefhgj3457u" \
--set env.vars[2] .name=some_other_name_here \
--set env.vars[2] .value="true" 
...

在我添加 --set env.vars[2] .name=some_other_name_here \ 和之前,一切都运行良好 --set env.vars[2] .value="true" 到我的管道脚本。我收到错误...ReadString: expects " or n but found t, error found in #10 byte of ...|, "value":true}], ...

我尝试将值括起来:'true'"'true'",甚至将true 存储在变量中,然后将变量分配给 --set env.vars[2] .value="${myVar} " 但错误仍然存​​在。

知道我做错了什么,或者我可以尝试的解决方案吗?提前致谢

【问题讨论】:

  • 这听起来像是在解释器之间从 Groovy 到 shell 到 Golang 的类型转换正在将字符串重新转换为布尔值。我会严重怀疑 shell 解释器正在重铸类型。您可以使用writeYaml 方法写入值,并将该文件作为值的参数提供给helm upgrade。你的环境可以吗?
  • 值得一提。我很机智,哈哈,但如果有另一种方法可以将值存储在单独的文件中,我也会对此持开放态度。非常感谢。
  • 该文件只存在于作业工作区中,因此它只是一个替代接口和管道代码。
  • 谢谢。你介意把它写出来作为答案吗?

标签: kubernetes jenkins-pipeline kubernetes-helm jenkins-groovy jenkins-job-dsl


【解决方案1】:

删除错误ReadString: expects " or n but found t, error found in #10 byte of ...|, "value":true}], ...

'"true"' 这样包含真实值对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 2018-06-27
    • 2018-12-26
    • 2020-01-25
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多