En este documento, se describe cómo ejecutar programas u operaciones arbitrarios antes o después de la implementación.
Puedes configurar Cloud Deploy para realizar acciones previas a la implementación o posteriores a ella, o ambas. Estos programas, que se ejecutan de esta manera, se denominan "hooks". Los hooks previos y posteriores a la implementación se ejecutan como trabajos previos y posteriores a la implementación en el lanzamiento.
Puedes configurar cada hook para que se ejecute en un entorno de ejecución de Cloud Deploy especificado, pero, si realizas la implementación en Google Kubernetes Engine, también puedes configurarlo de forma opcional para que se ejecute en el clúster de GKE en el que implementas tu aplicación.
Se supone que los hooks de implementación son idempotentes. Si una acción determinada se ejecuta más de una vez, no tendrá ningún efecto adicional.
¿Cómo funcionan los hooks de implementación?
A continuación, se describe cómo se ejecutan los hooks de implementación en Cloud Deploy y cómo configurarlos:
Configuras hooks en una o más etapas de la progresión de tu canalización de entrega.
Antes de que se ejecute el trabajo de implementación del lanzamiento, Cloud Deploy ejecuta las tareas configuradas en una definición de
predeployen la progresión de la canalización.El gancho
predeploysiempre se ejecuta como el primer trabajo de la fase.Después de que se ejecuta el trabajo de implementación de la versión, Cloud Deploy ejecuta las tareas configuradas en una definición de
postdeployen la progresión de la canalización.
Los hooks de implementación se ejecutan en el entorno de ejecución de Cloud Deploy.
Usa hooks de implementación con una implementación de versiones canary
Cuando configuras hooks de implementación para una implementación de versiones canary, debes tener en cuenta varios aspectos:
En la etapa de la canalización de entrega, la configuración del gancho (
predeployypostdeploy) se encuentra enstrategy.canary.canaryDeploymentostrategy.canary.customCanaryDeployment.phaseConfigs, en lugar de enstrategy.standard.En el caso de una versión canary automatizada, los hooks
predeployse ejecutan antes de la implementación solo en la primera fase, y los hookspostdeployse ejecutan después de la implementación solo en la última fase (estable).
Configura tu canalización para ejecutar hooks
Configuras los hooks previos y posteriores a la implementación en una o más etapas específicas de la progresión de la canalización.
A continuación, se muestra cómo configurar hooks previos y posteriores a la implementación en una etapa de la canalización cuando se usa una estrategia de implementación de standard:
serialPipeline:
stages:
- targetId: hooks-staging
profiles: []
strategy:
standard:
predeploy:
tasks: [TASKS]
postdeploy:
tasks: [TASKS]
En este YAML, se especifica lo siguiente:
TASKS
Es una lista de una o más tareas que deseas ejecutar como parte de tus hooks previos o posteriores a la implementación. Cuando especificas más de una tarea, se ejecutan de forma serial, en el orden en que se especifican. El trabajo (previo a la implementación o posterior a la implementación) falla en la primera tarea que falla, y no se ejecutan las tareas restantes.
Ejecuta los hooks en el clúster de la aplicación
De forma predeterminada, los hooks de implementación se ejecutan en el entorno de ejecución de Cloud Deploy. También puedes configurar Skaffold para que ejecute hooks de implementación en el mismo clúster en el que se ejecuta tu aplicación.
Para ejecutar hooks en el clúster de la aplicación, debes configurarlos como customActions en tu skaffold.yaml y hacer referencia a ellos con actions en la sección predeploy o postdeploy de la configuración de la etapa de la canalización de entrega: