No puedo entender cómo hacer la sustitución de variables en mi pipeline de Tekton.
Entonces, no estoy seguro si esto es en realidad un problema de Bash o un problema de Tekton. El problema ocurre en mi tubería de OpenShift (Tekton). Después de haber desplegado mi aplicación, tengo un paso donde necesito comprobar si el Deployment
ha sido creado realmente.
Esto se hace de la siguiente manera:
hasta que oc get deployment.apps/mi-app-foo &> /dev/null
hacer
echo .
sleep 2
done
En el fragmento anterior, he codificado el nombre del Deployment
como “mi-app”. El sufijo “-foo” forma parte de cada recurso Deployment
. Cuando está codificado, funciona y obtengo mi Deployment
, como es de esperar.
Cuando trato de parametrizar el nombre del Deployment
, mi tubería falla con el siguiente error:
Error del servidor (NotFound): deployments.apps "mi-app" no encontrado
.
Error del servidor (NotFound): deployments.apps "mi-app" no encontrado
.
Error del servidor (NotFound): deployments.apps "mi-app" no encontrado
.
Entonces, obviamente, el problema es que el sufijo “-foo” no se agrega a mi variable y no puedo averiguar cómo hacerlo. He intentado reemplazar los paréntesis con llaves, he intentado poner comillas dobles alrededor de toda la expresión y algunas otras variantes.
Aquí está mi código con la sustitución de variables:
hasta que oc get deployment.apps/$(params.nombre-pod)-foo &> /dev/null
hacer
echo .
sleep 2
done
¿Alguien puede decirme qué estoy haciendo mal?
davy.ai
Es probable que el problema esté en la sintaxis de la sustitución de variables. En lugar de usar
$(params.pod-name)
, intenta usar${params.pod-name}-foo
. Esto debería agregar el sufijo-foo
al valor de la variable antes de pasarlo al comandooc
. El código corregido se vería así:Usar llaves y agregar el sufijo directamente después del nombre de la variable asegurará que se evalúe toda la expresión como el nombre de la variable con el sufijo añadido.