En este documento se describe cómo verificar un despliegue de Cloud Deploy.
Puedes configurar Cloud Deploy y Skaffold para verificar que una aplicación que hayas desplegado en cualquier destino funcione correctamente. La verificación se realiza con tu propia imagen de prueba y configuras Cloud Deploy y Skaffold para que ejecuten esas pruebas una vez que finalice el despliegue.
De forma predeterminada, la verificación del despliegue se ejecuta en el entorno de ejecución de Cloud Deploy, pero también puedes configurarla para que se ejecute en el mismo clúster en el que se ejecuta la aplicación.
¿Cómo funciona la verificación de la implementación?
Configura Skaffold para la verificación.
Esta configuración identifica la imagen o las imágenes de contenedor que se van a usar para ejecutar pruebas, así como los comandos específicos (por ejemplo, una secuencia de comandos) que se van a ejecutar desde esa imagen de contenedor.
Puedes especificar más de una imagen de contenedor. Si especifica varios contenedores, se ejecutarán en paralelo, no de forma secuencial.
Configura uno o varios objetivos en tu canalización de entrega para verificar la implementación.
Esta configuración habilita la verificación de las cargas de trabajo implementadas en ese destino.
Una vez que se ha desplegado un lanzamiento (
skaffold apply), Cloud Deploy ejecuta el comandoskaffold verifyen el entorno de ejecución de Cloud Deploy.En el caso de los despliegues en Google Kubernetes Engine y en clústeres adjuntos de GKE, puedes ejecutar de forma opcional el contenedor (o los contenedores) de verificación en el mismo clúster en el que se ejecuta el contenedor de la aplicación.
Skaffold invoca la prueba o las pruebas especificadas en la estrofa
verifyde tu archivoskaffold.yamlpara ejecutarlas en la aplicación desplegada.Si las pruebas se han completado correctamente o no, se indica si la verificación se ha realizado correctamente o no.
El éxito de la verificación se determina mediante el código de salida del contenedor ejecutado.
0indica que se ha completado correctamente. Un código de salida distinto de cero indica un error. Para generar el resultado de verificación previsto, asegúrate de que el contenedor salga con el código de salida adecuado. Si se ejecuta más de un contenedor como parte de la verificación, todos deben completarse correctamente para que la verificación se realice correctamente.Si la verificación falla, la implementación también fallará.
Si una implementación falla durante la verificación, puedes verlo inspeccionando la implementación:
Puedes ignorar o volver a intentar una verificación fallida.
También puedes finalizar un trabajo de verificación en curso.
Componentes utilizados para la verificación
El recurso lanzamiento incluye los siguientes objetos, que admiten la verificación de la implementación:
Fase
Conjunto de operaciones (trabajos) de un lanzamiento que se agrupan de forma lógica. Por ejemplo, una implementación o una implementación y una verificación.
Tarea
La operación específica que se va a realizar en un lanzamiento, como desplegar o verificar.
Ejecución de la tarea
La ejecución de la tarea, que es un elemento secundario del recurso de lanzamiento, es una instancia de una tarea. Por ejemplo, un intento de implementación.
Para obtener más información sobre los recursos de Cloud Deploy, consulta Arquitectura de servicio de Cloud Deploy.
Notificaciones generadas por la verificación de despliegues
Cloud Deploy genera mensajes de Pub/Sub y los publica para los siguientes eventos:
Creación, actualización y eliminación de ejecuciones de trabajos
Estas notificaciones se publican en el tema
clouddeploy-resourcesy contienen los siguientes atributos:ResourceResourceType(JobRun)Action(Create,Update,Delete)ProjectNumberLocationTargetIdDeliveryPipelineIdReleaseIdRolloutIdJobRunId
A continuación, se muestra un ejemplo de mensaje de Pub/Sub para una creación de ejecución de un trabajo, publicado en el tema clouddeploy-resources:
{
"ackId": "UAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRAGAE8CKF15MFcrQVh9Dz4NGXJ9YXRiWRIJBkUHeF9cEQ1iXE5EB0nq0KDVV1dKXxYGAExQeVhbHQVoWVh0Bnn7h5nK-8HjYwk9OqKarPdtO4PY2fNHZiI9XhJLLD5-My5FQV5AEkw4G0RJUytDCypYEU4EISE-MD5FU0Q",
"message":