groovy Helm中的字符串变量

ehxuflar  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(218)

我尝试在Jenkins中运行以下groovy脚本:

def test() {
    def RV1 = '\"' + "$RELEASE_VERSION" + '\"'
    echo RV1

    sh """
       helm upgrade --install -f container-root/helm/values-dev-caas.yaml --set image.registry=docker-reg --set-string image.version=""" + RV1 + """ test_app container-root/helm --namespace test --debug
    """

结果在Jenkins日志中:

helm upgrade --install -f container-root/helm/values-dev-caas.yaml --set image.registry=docker-reg --set-string image.version=202305251424 test-app container-root/helm --namespace test --debug

这会导致一个错误

Error: UPGRADE FAILED: unable to decode "": json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels of type string

回波RV1的结果是“202305251424”
在RV1变量中,我试图将“(双引号)添加到我的image.version中,因为如果我有image.version=“202305251424”而不是image.version=202305251424,它就会工作,但不知何故,当我运行管道时,双引号消失了。
如果我使用这个:

def RV1 = '\'' + '\"' + "$RELEASE_VERSION" + '\"' + '\''

echo中的结果是'“202305251510”',最后一个命令在Jenkis日志中看起来像这样:

helm upgrade --install -f container-root/helm/values-dev-caas.yaml --set image.registry=docker-reg --set-string 'image.version="202305251510"' test_app container-root/helm --namespace test --debug

这会导致错误:

Error: UPGRADE FAILED: YAML parse error on helm/templates/deployment.yaml: error converting YAML to JSON: yaml: line 72: did not find expected key

你知道我如何在groovy中的sh中添加双引号吗?或者我如何让Helm理解它是一个String而不是Integer?

nnt7mjpx

nnt7mjpx1#

我必须解决这个问题,在使用整数的deployment.yaml中添加引号。

labels:
  image-version: {{ .Values.image.version | quote }}

然后我可以在image中使用integer。version:

helm upgrade --install -f container-root/helm/values-dev-caas.yaml --set image.registry=docker-reg --set-string image.version=202305251424 test-app container-root/helm --namespace test --debug

相关问题