所以我不确定这实际上是 Bash 问题还是 Tekton 问题。问题出现在我的 OpenShift (Tekton) 管道中。部署我的应用程序后,我有一个步骤需要检查是否Deployment
已实际创建。
这样做是这样的:
until oc get deployment.apps/my-app-foo &> /dev/null
do
echo .
sleep 2
done
在上面的代码片段中,我硬编码了Deployment
“my-app”的名称。后缀“-foo”是每个Deployment
资源的一部分。当硬编码时,它可以工作,并且我得到了我的Deployment
,如预期的那样。
当我尝试参数化 的名称时Deployment
,我的管道失败并出现以下错误:
Error from server (NotFound): deployments.apps "my-app" not found
.
Error from server (NotFound): deployments.apps "my-app" not found
.
Error from server (NotFound): deployments.apps "my-app" not found
.
所以问题显然是“-foo”后缀没有添加到我的变量中,我不知道如何做到这一点。尝试用大括号替换括号,尝试在整个表达式周围加上双引号,以及其他一些变体。
这是我的变量替换代码:
until oc get deployment.apps/$(params.pod-name)-foo &> /dev/null
do
echo .
sleep 2
done
谁能告诉我做错了什么?