Integrar o Cloud Deploy com outros sistemas

Pode integrar o Cloud Deploy com alguns dos outros sistemas nos quais confia para o fornecimento de software. Esta página descreve como integrar o Cloud Deploy com o seguinte:

  • Ferramentas de teste
  • Gestão de fluxos de trabalho

Consulte o artigo Integração com o seu sistema de CI para saber como chamar o Cloud Deploy a partir do pipeline de CI.

Antes de começar

As instruções nesta página pressupõem que já cumpre as seguintes condições:

Integração com testes automatizados

Pode usar o Cloud Deploy com o Pub/Sub para integrar os testes no pipeline de entrega, para que possa promover a versão automaticamente para a entrega contínua.

Também pode usar anotações numa implementação para fornecer um link para os resultados dos testes. Para mais informações, consulte o artigo Usar etiquetas e anotações com o Cloud Deploy.

Usar o Pub/Sub para automatizar a promoção

  1. Ouvir mensagens Pub/Sub do tópico clouddeploy-operations.

    A mensagem contém os seguintes atributos:

    • Action: SUCCEED
    • ResourceType: Rollout
    • Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
  2. Quando receber uma notificação de que a implementação foi bem-sucedida, execute os testes na aplicação implementada.

  3. Quando os testes são bem-sucedidos, chame o Cloud Deploy para promover automaticamente para a fase seguinte:

    gcloud deploy releases promote RELEASE_NAME \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --annotations=KEY=VALUE,...
    

    where:

    • RELEASE_NAME

      é o nome do lançamento. Este valor é obrigatório.

    • PIPELINE_NAME

      é o nome do pipeline de fornecimento que gere esta versão. Este valor é obrigatório.

    • REGION

      é a região na qual o pipeline está a ser executado. Se tiver definido a propriedade deploy/region, pode omitir esta flag.

    • KEY=VALUE,...

      é uma lista de um ou mais pares de strings de chave-valor, separados por vírgulas, que podem conter informações sobre os resultados dos testes e outras informações de testes. Segue-se um exemplo:

      gcloud deploy releases promote --annotations="from_target=test,status=stable"

      As anotações na implementação são imutáveis. Por isso, se adicionar uma anotação de estado, não pode atualizar posteriormente esse estado na mesma implementação.

Usar anotações para fornecer acesso aos resultados dos testes

Se tiver o URL que indica onde é possível aceder aos resultados dos testes, pode fornecer esse URL como uma anotação numa implementação, usando a flag --annotations. Segue-se um exemplo:

gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"

Para mais informações, consulte o artigo Usar etiquetas e anotações com o Cloud Deploy.

Integração com a gestão de fluxo de trabalho de terceiros

O Cloud Deploy publica mensagens operacionais no Pub/Sub. A sua ferramenta de gestão de fluxos de trabalho pode subscrever estes tópicos do Pub/Sub e usá-los para acionar fluxos de trabalho específicos.

Para aprovações

O tópico clouddeploy-approvals notifica o seu sistema quando é necessária uma aprovação para uma implementação. O seu sistema de fluxo de trabalho externo pode, então, fazer a sua magia para obter a aprovação e, em seguida, chamar gcloud deploy rollouts approve.

A conta que emite o comando rollouts approve tem de ter a função do IAM predefinida roles/clouddeploy.approver.

Para configurar um fluxo de trabalho de aprovação externo:

  1. Exija aprovação no alvo.

    Na definição desse alvo, inclua requireApproval: true.

  2. Para consumir as mensagens, subscreva o clouddeploy-approvals tópico Pub/Sub e configure o seu sistema de gestão do fluxo de trabalho.

  3. Quando o seu sistema de gestão do fluxo de trabalho recebe uma mensagem do tópico clouddeploy-approvals que inclui "Action": "Required", inicia um fluxo de trabalho de aprovação configurado de acordo com os requisitos da sua organização.

    A mensagem também inclui uma referência à implementação a ser aprovada, no seguinte formato:

    Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...

    O resultado do fluxo de trabalho de aprovação é uma aprovação ou uma rejeição da implementação.

  4. O sistema de gestão do fluxo de trabalho devolve a aprovação ou a rejeição ao Cloud Deploy no formato do seguinte comando:

    O comando para aprovação é o seguinte:

    gcloud deploy rollouts approve ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    O comando para rejeitar a implementação é o seguinte:

    gcloud deploy rollouts reject ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    where:

    • ROLLOUT

      é o nome da implementação para a qual foi pedida aprovação.

    • PIPELINE_NAME

      é o pipeline de entrega que gere a implementação da sua aplicação.

    • RELEASE_NAME

      É o nome do lançamento ao qual esta implementação está associada.

    • REGION

      é a região na qual o pipeline de envio está em execução.

Segue-se um exemplo:

gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1