Executar hooks antes e depois da implementação

Este documento descreve como executar programas ou operações arbitrárias antes ou depois da implementação.

Pode configurar o Cloud Deploy e o Skaffold para executar ações para realizar ações de pré-implementação ou ações de pós-implementação, ou ambas. Estes programas, executados desta forma, são denominados "hooks". Os hooks de pré-implementação e pós-implementação são executados como tarefas de pré-implementação e pós-implementação na implementação.

Pode configurar cada gancho para ser executado num ambiente de execução do Cloud Deploy especificado, mas se estiver a implementar no Google Kubernetes Engine, pode configurá-lo opcionalmente para ser executado no cluster do GKE onde está a implementar a sua aplicação.

Os hooks de implementação são considerados idempotentes. Se uma determinada ação for executada mais do que uma vez, não tem qualquer efeito adicional.

Como funcionam os hooks de implementação?

Seguem-se os passos para configurar os hooks de implementação e o processo do Skaffold e do Cloud Deploy para executar esses hooks:

  1. Configura o skaffold.yaml usado para uma determinada versão de forma a incluir customActions que identificam a imagem ou as imagens do contentor a usar para executar os comandos, e o comando ou o script específico a executar em cada contentor.

  2. Configura os hooks numa ou mais fases da progressão do pipeline de entrega, cada uma das quais faz referência a um dos customActions que configurou em skaffold.yaml.

  3. Antes de o trabalho de implementação da implementação ser executado, o Skaffold executa todos os comandos configurados em skaffold.yaml que são referenciados numa secção predeploy na progressão do pipeline.

    O comando predeploy é sempre executado como a primeira tarefa na fase.

  4. Após a execução da tarefa de implementação da implementação, o Cloud Deploy executa quaisquer comandos configurados em skaffold.yaml que sejam referenciados numa secção postdeploy na progressão do pipeline.

Os hooks de implementação são executados no ambiente de execução do Cloud Deploy predefinido ou num ambiente de execução alternativo especificado. Para implementações no GKE, pode, opcionalmente, executar os hooks no mesmo cluster onde a aplicação está a ser implementada.

Usar hooks de implementação com uma implementação canary

Quando configura hooks de implementação para uma implementação canary, existem vários aspetos a ter em conta:

  • Na fase do pipeline de entrega, a configuração do gancho (predeploy e postdeploy) encontra-se em strategy.canary.canaryDeployment ou strategy.canary.customCanaryDeployment.phaseConfigs, em vez de em strategy.standard.

  • Para um teste canary automatizado, os comandos predeploy são executados antes da implementação apenas na primeira fase, e os comandos postdeploy são executados após a implementação apenas na última fase (estável).

Configure ações no Skaffold

No ficheiro skaffold.yaml, a secção customActions usa uma ou mais secções customActions, configuradas da seguinte forma:

customActions:
- name: