es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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 comando oc. El código corregido se vería así:

    until oc get deployment.apps/${params.pod-name}-foo &> /dev/null
    do
      echo . 
      sleep 2
    done
    

    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.

Comments are closed.