Usar regras de automação

Este documento descreve as regras de automação, que são ações que podem ser realizadas no pipeline de entrega automaticamente. Por exemplo, você pode configurar seu pipeline de entrega para que a promoção para um destino específico aconteça automaticamente nas circunstâncias certas.

Você só pode usar regras de automação integradas ao Cloud Deploy. As regras de automação disponíveis estão listadas neste documento.

Regras de automação disponíveis

As seguintes regras de automação estão disponíveis no Cloud Deploy:

Regra Descrição
promoteReleaseRule Promove automaticamente uma versão no destino indicado após a conclusão

lançamento no destino anterior na progressão.

advanceRolloutRule Avanço automaticamente um lançamento do

fase para a próxima.

Configurar regras de automação

A configuração de cada regra de automação depende da regra específica. Esta seção descreve a configuração que todas as regras têm em comum, além de como configurar cada uma das regras disponíveis.

As seções a seguir descrevem a configuração específica para a automação individual regras de firewall. Consulte Automatizar a implantação. para configurar a automação em si.

Configurar uma regra de automação promoteReleaseRule

A regra promoteReleaseRule promove sua versão após um lançamento bem-sucedido no um alvo. Por exemplo, se você tiver três destinos, poderá configurar essa regra para que, quando a versão for implantada no primeiro destino, ela seja promoverida automaticamente para o segundo.

Ao configurar uma automação promoteReleaseRule, é possível especificar um destino para promover (destinationTargetId) ou @next. Quando o lançamento for concluído com sucesso no destino especificado na definição de Automation, o versão é promovida para o destino especificado em destinationTargetId, sujeito a um intervalo de tempo de wait.

Também é possível promover um lançamento para uma fase específica no destino pretendido. Para isso, use a propriedade destinationPhase.

rules:
- promoteReleaseRule:
    name: "[RULE_NAME]"
    wait: [WAIT_TIME]
    destinationTargetId: "[TO_TARGET]"
    destinationPhase: "[TO_PHASE]"

Em que:

  • [RULE_NAME]

    É qualquer nome que você queira dar a esta regra. Esse nome precisa ser exclusivo no recurso de automação.

  • [WAIT_TIME]

    É a quantidade de tempo, em minutos, de espera após o lançamento estar pronto para promoção antes que ela seja promovida. Por exemplo, 1m O m é obrigatório.

    O valor padrão é 0, ou seja, nenhum tempo de espera. O máximo é 20160m (ou 14 dias).

  • [TO_TARGET]

    É targetId? do destino a ser promovido.

    Também pode ser @next, que promove a versão automaticamente para o próximo destino depois do especificado na propriedade selector.targets nesta configuração de automação. Esse é o padrão se você omitir o valor de destinationTargetId.

  • [TO_PHASE]

    É o nome da fase para a qual você quer promover, por exemplo, canary-25 ou stable. Essa propriedade é opcional. Se você a omitir, a versão será promovida para a primeira fase no destino.

Configurar uma regra de automação advanceRolloutRule

O advanceRolloutRule avança o lançamento automaticamente após a conclusão de uma fase para a próxima. Essa regra de automação é útil para implantações canário. Por exemplo, se você tiver uma estratégia de implantação canário configurada em um destino, com fases de 25%, 50% e stable, poderá configurar uma regra de automação que avance a fase automaticamente para stable após o término da fase 50%.

Ao configurar uma automação advanceRolloutRule, você identifica a fase para avançando de (o sourcePhase).

rules:
- advanceRolloutRule:
    id: "[RULE]"
    sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
    wait: [WAIT_TIME]

Em que:

  • [RULE]

    É qualquer nome que você queira dar a esta regra. Esse nome precisa ser exclusivo no pipeline de entrega.

  • [WAIT_TIME]

    É o tempo, em minutos, de espera para avançar o lançamento depois que ele estiver pronto. Por exemplo, 1m O m é obrigatório.

    O valor padrão é 0, ou seja, nenhum tempo de espera. O máximo é 20160m (ou 14 dias).

  • ["[START_PHASE]", "[START_PHASE]"...]

    É a fase ou fases em que o lançamento é avançado automaticamente. Isto é, quando qualquer uma das fases listadas for concluída com êxito, o lançamento será avançar automaticamente dessa fase para a próxima.

    Os nomes das fases diferenciam maiúsculas de minúsculas. Além disso, esses nomes de fase são opcionais. Se você omitir sourcePhases, todas as fases do lançamento serão avançadas automaticamente.

A seguir