REST Resource: projects.locations.deliveryPipelines.automations

Recurso: Automation

Um recurso Automation na API Cloud Deploy.

Um Automation permite a automação de ações orientadas manualmente para um pipeline de entrega, que inclui promoção de lançamento entre Destinos, reparo de lançamento e avanço da estratégia de implantação de lançamento. A intenção da Automation é reduzir a intervenção manual no processo de entrega contínua.

Representação JSON
{
  "name": string,
  "uid": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "etag": string,
  "suspended": boolean,
  "serviceAccount": string,
  "selector": {
    object (AutomationResourceSelector)
  },
  "rules": [
    {
      object (AutomationRule)
    }
  ]
}
Campos
name

string

Apenas saída. Nome da Automation. O formato é projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation}.

uid

string

Apenas saída. Identificador exclusivo do Automation.

description

string

Opcional. Descrição do Automation. O comprimento máximo é de 255 caracteres.

createTime

string (Timestamp format)

Apenas saída. Hora em que a automação foi criada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. Hora em que a automação foi atualizada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

annotations

map (key: string, value: string)

Opcional. Anotações do usuário. Esses atributos só podem ser definidos e usados pelo usuário, e não pelo Cloud Deploy. As anotações precisam atender às seguintes restrições:

  • Anotações são pares de chave-valor.
  • As chaves de anotação válidas têm dois segmentos: um prefixo e um nome opcionais, separados por uma barra (/).
  • O segmento do nome é obrigatório e precisa ter 63 caracteres ou menos, começando e terminando com um caractere alfanumérico ([a-z0-9A-Z]) com traços (-), sublinhados (_), pontos (.) e caracteres alfanuméricos no meio.
  • O prefixo é opcional. Se especificado, o prefixo precisa ser um subdomínio DNS: uma série de identificadores DNS separados por pontos(.), não mais do que 253 caracteres no total, seguidos por uma barra (/).

Consulte https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set para saber mais detalhes.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

labels

map (key: string, value: string)

Opcional. Rótulos são atributos que podem ser definidos e usados pelo usuário e pelo Cloud Deploy. Os rótulos precisam atender às seguintes restrições:

  • As chaves e os valores podem conter apenas letras minúsculas, caracteres numéricos, sublinhados e traços.
  • Todos os caracteres precisam usar a codificação UTF-8. Caracteres internacionais são permitidos.
  • As chaves precisam começar com uma letra minúscula ou um caractere internacional.
  • Cada recurso está limitado a um máximo de 64 rótulos.

As chaves e os valores são restritos a <= 63 caracteres.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

etag

string

Opcional. A ETag fraca do recurso Automation. Essa soma de verificação é calculada pelo servidor com base no valor de outros campos e pode ser enviada em solicitações de atualização e exclusão para garantir que o cliente tenha um valor atualizado antes de continuar.

suspended

boolean

Opcional. Quando suspensa, a automação é desativada da execução.

serviceAccount

string

Obrigatório. Endereço de e-mail da conta de serviço do IAM gerenciada pelo usuário que cria os recursos de lançamento e lançamento do Cloud Deploy.

selector

object (AutomationResourceSelector)

Obrigatório. Recursos selecionados em que a automação será aplicada.

rules[]

object (AutomationRule)

Obrigatório. Lista de regras de Automation associadas ao recurso de Automation. É preciso ter pelo menos uma regra e um limite de 250 por pipeline de entrega. Observação: a ordem das regras aqui não é igual à ordem de execução.

AutomationResourceSelector

AutomationResourceSeletor contém as informações para selecionar os recursos em que uma Automation será aplicada.

Representação JSON
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
Campos
targets[]

object (TargetAttribute)

Contém atributos sobre um destino.

TargetAttribute

Contém critérios para selecionar Destinos.

Representação JSON
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
Campos
id

string

ID do Target. O valor desse campo pode ser um dos seguintes: * O último segmento de um nome de segmentação. Ele só precisa do ID para determinar qual destino está sendo indicado como * "*", todos os destinos em um local.

labels

map (key: string, value: string)

Marcadores de destino.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

AutomationRule

AutomationRule define as atividades de automação.

Representação JSON
{

  // Union field rule can be only one of the following:
  "promoteReleaseRule": {
    object (PromoteReleaseRule)
  },
  "advanceRolloutRule": {
    object (AdvanceRolloutRule)
  },
  "repairRolloutRule": {
    object (RepairRolloutRule)
  }
  // End of list of possible types for union field rule.
}
Campos
Campo de união rule. A configuração da regra de Automation. rule só pode ser de um dos seguintes tipos:
promoteReleaseRule

object (PromoteReleaseRule)

Opcional. PromoteReleaseRule promoverá automaticamente uma versão do destino atual para um destino especificado.

advanceRolloutRule

object (AdvanceRolloutRule)

Opcional. O AdvanceRolloutRule vai adiantar automaticamente um lançamento bem-sucedido.

repairRolloutRule

object (RepairRolloutRule)

Opcional. O RepairRolloutRule repara automaticamente um lançamento com falha.

PromoteReleaseRule

A regra PromoteRelease promoverá automaticamente uma versão do destino atual para um destino especificado.

Representação JSON
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
Campos
id

string

Obrigatório. ID da regra. Esse ID precisa ser exclusivo no recurso Automation a que essa regra pertence. O formato é [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

wait

string (Duration format)

Opcional. Por quanto tempo a versão precisa ficar pausada até ser promovida para o próximo destino.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

destinationTargetId

string

Opcional. O ID do estágio no pipeline em que este Release está sendo implantado. Se não for especificado, padronize para a próxima etapa no fluxo da promoção. O valor desse campo pode ser um dos seguintes:

  • O último segmento do nome de um destino. Ela só precisa do ID para determinar se o destino é uma das fases na sequência de promoção definida no pipeline.
  • "@next", o próximo destino na sequência da promoção.
condition

object (AutomationRuleCondition)

Apenas saída. Informações sobre o estado da regra Automation.

destinationPhase

string

Opcional. A fase inicial do lançamento criado por esta operação. O padrão é a primeira fase.

AutomationRuleCondition

AutomationRuleCondition contém condições relevantes para uma regra Automation.

Representação JSON
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
Campos
targetsPresentCondition

object (TargetsPresentCondition)

Opcional. Detalhes sobre os destinos enumerados na regra.

AdvanceRolloutRule

A regra de automação rollouts.advance avançará automaticamente um lançamento bem-sucedido para a próxima fase.

Representação JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
Campos
id

string

Obrigatório. ID da regra. Esse ID precisa ser exclusivo no recurso Automation a que essa regra pertence. O formato é [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Opcional. Prossegue somente depois que o nome da fase corresponde a qualquer um na lista. Esse valor precisa conter letras minúsculas, números e hifens, começar com uma letra e terminar com uma letra ou um número e ter no máximo 63 caracteres. Em outras palavras, ele precisa corresponder ao seguinte regex: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

wait

string (Duration format)

Opcional. Tempo de espera após a conclusão de um lançamento.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

condition

object (AutomationRuleCondition)

Apenas saída. Informações sobre o estado da regra Automation.

RepairRolloutRule

A regra de automação RepairRolloutRule repara automaticamente uma Rollout com falha.

Representação JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
Campos
id

string

Obrigatório. ID da regra. Esse ID precisa ser exclusivo no recurso Automation a que essa regra pertence. O formato é [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Opcional. Fases em que os jobs estão sujeitos a ações de reparo automático em caso de falha. Prossegue somente depois que o nome da fase corresponde a qualquer um na lista ou para todas as fases, se não for especificado. Esse valor precisa conter letras minúsculas, números e hifens, começar com uma letra e terminar com uma letra ou um número e ter no máximo 63 caracteres. Em outras palavras, ele precisa corresponder ao seguinte regex: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

jobs[]

string

Opcional. Tarefas a serem reparadas. Prossegue somente depois que o nome do job corresponde a qualquer um na lista ou para todos os jobs, se não especificado ou vazio. A fase que inclui o job precisa corresponder ao ID de fase especificado em sourcePhase. Esse valor precisa conter letras minúsculas, números e hifens, começar com uma letra e terminar com uma letra ou um número e ter no máximo 63 caracteres. Em outras palavras, ele precisa corresponder ao seguinte regex: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

repairModes[]

object (RepairMode)

Obrigatório. Define os tipos de ações de reparo automático para jobs com falha.

condition

object (AutomationRuleCondition)

Apenas saída. Informações sobre o estado da regra de "Automation".

RepairMode

Configuração da ação de reparo.

Representação JSON
{

  // Union field mode can be only one of the following:
  "retry": {
    object (Retry)
  },
  "rollback": {
    object (Rollback)
  }
  // End of list of possible types for union field mode.
}
Campos
Campo de união mode. A ação de reparo a ser realizada. mode só pode ser de um dos seguintes tipos:
retry

object (Retry)

Opcional. Repete um job com falha.

rollback

object (Rollback)

Opcional. Reverte um Rollout.

Tentar de novo

Repete o job com falha.

Representação JSON
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
Campos
attempts

string (int64 format)

Obrigatório. Número total de novas tentativas. A nova tentativa será ignorada se o valor for 0. O valor mínimo é 1, e o valor máximo é 10.

wait

string (Duration format)

Opcional. Tempo de espera pela primeira nova tentativa. O padrão é 0, e o valor máximo é 14d.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

backoffMode

enum (BackoffMode)

Opcional. O padrão de aumento do tempo de espera. O padrão é linear. O modo de espera será ignorado se wait for 0.

Reverter

Reverte um Rollout.

Representação JSON
{
  "destinationPhase": string
}
Campos
destinationPhase

string

Opcional. O ID da fase inicial para o Rollout. Se não for especificada, a Rollout vai ser iniciada na fase estável.

Métodos

create

Cria uma nova Automation em um determinado projeto e local.

delete

Exclui um único recurso de Automation.

get

Recebe detalhes de uma única Automation.

list

Lista as automações em um determinado projeto e local.

patch

Atualiza os parâmetros de um único recurso de Automation.