Este documento descreve como validar uma implementação do Cloud Deploy.
Pode configurar o Cloud Deploy e o Skaffold para verificar se uma aplicação que implementou em qualquer destino está a funcionar corretamente. A validação é feita através da sua própria imagem de teste e configura o Cloud Deploy e o Skaffold para executar esses testes após a conclusão da implementação.
Por predefinição, a validação da implementação é executada no ambiente de execução do Cloud Deploy, mas também pode configurá-la para ser executada no mesmo cluster onde a aplicação está a ser executada.
Como funciona a validação da implementação?
Configura o Skaffold para validação.
Esta configuração identifica a imagem (ou as imagens) do contentor a usar para executar testes e os comandos específicos (por exemplo, um script) a executar a partir dessa imagem do contentor.
Pode especificar mais do que uma imagem de contentor. Se especificar vários contentores, estes são executados em paralelo e não sequencialmente.
Configura um ou mais alvos no pipeline de entrega para validação da implementação.
Esta configuração ativa a validação para cargas de trabalho implementadas nesse destino.
Após a implementação de uma implementação (
skaffold apply), o Cloud Deploy executa o comandoskaffold verifyno ambiente de execução do Cloud Deploy.Para implementações no Google Kubernetes Engine e em clusters anexados do GKE, pode executar opcionalmente o contentor (ou os contentores) de validação no mesmo cluster em que o contentor da aplicação está a ser executado.
O Skaffold invoca o teste ou os testes especificados na secção
verifydo seuskaffold.yamlpara execução na aplicação implementada.O êxito ou a falha dos testes executados indica o êxito ou a falha da validação.
O êxito da validação é determinado pelo código de saída do contentor executado.
0indica sucesso. Um código de saída diferente de zero indica uma falha. Para gerar o resultado de validação pretendido, certifique-se de que o contentor termina com o código de saída adequado. Se mais do que um contentor for executado como parte da validação, todos têm de ser bem-sucedidos para que a validação seja bem-sucedida.Se a validação falhar, a implementação também falha.
Se uma implementação falhar durante a validação, pode ver isso inspecionando a implementação:
Pode ignorar ou tentar novamente uma validação falhada.
Também pode terminar uma tarefa de validação em curso.
Componentes usados para a validação
O recurso rollout inclui os seguintes objetos, que suportam a validação da implementação:
Fase
A coleção de operações (tarefas) numa implementação que estão logicamente agrupadas, por exemplo, uma implementação ou uma implementação e validação.
Emprego
A operação específica a ser realizada numa implementação, como implementar ou validar.
Execução de tarefa
Um elemento subordinado do recurso de implementação, a execução da tarefa é uma instância de uma tarefa, por exemplo, uma tentativa de implementação.
Para saber mais sobre os recursos do Cloud Deploy, consulte o artigo Arquitetura do serviço Cloud Deploy
Notificações geradas pela validação da implementação
O Cloud Deploy gera mensagens do Pub/Sub e publica-as para os seguintes eventos:
Criação, atualização e eliminação de execuções de trabalhos
Estas notificações são publicadas no tópico
clouddeploy-resourcese contêm os seguintes atributos:ResourceResourceType(JobRun)Action(Create,UpdateeDelete)ProjectNumberLocationTargetIdDeliveryPipelineIdReleaseIdRolloutIdJobRunId
Segue-se um exemplo de uma mensagem Pub/Sub para uma execução de tarefa de criação, publicada no tópico clouddeploy-resources:
{
"ackId": "UAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRAGAE8CKF15MFcrQVh9Dz4NGXJ9YXRiWRIJBkUHeF9cEQ1iXE5EB0nq0KDVV1dKXxYGAExQeVhbHQVoWVh0Bnn7h5nK-8HjYwk9OqKarPdtO4PY2fNHZiI9XhJLLD5-My5FQV5AEkw4G0RJUytDCypYEU4EISE-MD5FU0Q",
"message": {
"attributes": {
"Action": "Create",
"DeliveryPipelineId": "dv-pipeline",
"JobRunId": "634f8c6f-30c3-49ca-af80-68dc24d4cc5d",
"Location": "us-central1",
"ProjectNumber": "253401481285",
"ReleaseId": "test-release-100",
"Resource": "projects/253401481285/locations/us-central1/deliveryPipelines/dv-pipeline/releases/test-release-100/rollouts/test-release-100-to-dev-0001/jobRuns/634f8c6f-30c3-49ca-af80-68dc24d4cc5d",
"ResourceType": "JobRun",
"RolloutId": "test-release-100-to-dev-0001"