REST Resource: projects.locations.deliveryPipelines

Recurso: DeliveryPipeline

Um recurso DeliveryPipeline na API Cloud Deploy.

Um DeliveryPipeline define um pipeline pelo qual uma configuração do Skaffold pode avançar.

Representação JSON
{
  "name": string,
  "uid": string,
  "description": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "condition": {
    object (PipelineCondition)
  },
  "etag": string,
  "suspended": boolean,

  // Union field pipeline can be only one of the following:
  "serialPipeline": {
    object (SerialPipeline)
  }
  // End of list of possible types for union field pipeline.
}
Campos
name

string

Opcional. Nome da DeliveryPipeline. O formato é projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}. O componente deliveryPipeline precisa corresponder a [a-z]([a-z0-9-]{0,61}[a-z0-9])?

uid

string

Apenas saída. Identificador exclusivo do DeliveryPipeline.

description

string

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

annotations

map (key: string, value: string)

Anotações do usuário. Esses atributos só podem ser definidos e usados pelo usuário, e não pelo Cloud Deploy.

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

labels

map (key: string, value: string)

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 <= 128 bytes.

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

createTime

string (Timestamp format)

Apenas saída. Hora em que o pipeline foi criado.

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. Horário mais recente em que o pipeline foi atualizado.

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".

condition

object (PipelineCondition)

Apenas saída. Informações sobre o estado do pipeline de entrega.

etag

string

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

Quando suspensa, nenhuma nova versão ou lançamento poderá ser criado, mas os em andamento serão concluídos.

Campo de união pipeline. A configuração de ordem de DeliveryPipeline. pipeline pode ser apenas de um dos tipos a seguir:
serialPipeline

object (SerialPipeline)

SerialPipeline define um conjunto sequencial de estágios para um DeliveryPipeline.

SerialPipeline

SerialPipeline define um conjunto sequencial de estágios para um DeliveryPipeline.

Representação JSON
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
Campos
stages[]

object (Stage)

Cada estágio especifica a configuração de um Target. A ordem dessa lista define o fluxo de promoção.

Etapa

O estágio especifica um local para a implantação.

Representação JSON
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
Campos
targetId

string

O targetId para o qual este estágio aponta. Esse campo refere-se exclusivamente ao último segmento do nome de uma segmentação. Por exemplo, esse campo seria apenas my-target (em vez de projects/project/locations/location/targets/my-target). O local da Target é inferido como o mesmo do local do DeliveryPipeline que contém esse Stage.

profiles[]

string

Perfis do Skaffold a serem usados ao renderizar o manifesto para o Target deste estágio.

strategy

object (Strategy)

Opcional. Estratégia a ser usada para um Rollout até o estágio.

deployParameters[]

object (DeployParameters)

Opcional. Os parâmetros de implantação a serem usados para o destino neste estágio.

Estratégia

A estratégia contém informações sobre a estratégia de implantação.

Representação JSON
{

  // Union field deployment_strategy can be only one of the following:
  "standard": {
    object (Standard)
  },
  "canary": {
    object (Canary)
  }
  // End of list of possible types for union field deployment_strategy.
}
Campos
Campo de união deployment_strategy. Detalhes da estratégia de implantação. deployment_strategy só pode ser de um dos seguintes tipos:
standard

object (Standard)

A estratégia de implantação padrão executa uma única implantação e permite verificar a implantação.

canary

object (Canary)

A estratégia de implantação canário fornece implantações progressivas baseadas em porcentagem a um destino.

Padrão

Standard representa a estratégia de implantação padrão.

Representação JSON
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
verify

boolean

Define se uma implantação deve ser verificada.

predeploy

object (Predeploy)

Opcional. Configuração do job de pré-implantação. Se isso não for configurado, o job de pré-implantação não estará presente.

postdeploy

object (Postdeploy)

Opcional. Configuração do job de pós-implantação. Se isso não for configurado, o job de pós-implantação não estará presente.

Pré-implantação

A pré-implantação contém as informações de configuração do job de pré-implantação.

Representação JSON
{
  "actions": [
    string
  ]
}
Campos
actions[]

string

Opcional. Uma sequência de ações personalizadas do Skaffold a serem invocadas durante a execução do job de pré-implantação.

Pós-implantação

A pós-implantação contém as informações de configuração do job pós-implantação.

Representação JSON
{
  "actions": [
    string
  ]
}
Campos
actions[]

string

Opcional. Uma sequência de ações personalizadas do Skaffold a serem invocadas durante a execução do job de pós-implantação.

Canal Canary

Canário representa a estratégia de implantação canário.

Representação JSON
{
  "runtimeConfig": {
    object (RuntimeConfig)
  },

  // Union field mode can be only one of the following:
  "canaryDeployment": {
    object (CanaryDeployment)
  },
  "customCanaryDeployment": {
    object (CustomCanaryDeployment)
  }
  // End of list of possible types for union field mode.
}
Campos
runtimeConfig

object (RuntimeConfig)

Opcional. Configurações específicas do ambiente de execução para a estratégia de implantação. A configuração do ambiente de execução é usada para determinar como o Cloud Deploy vai dividir o tráfego para permitir uma implantação progressiva.

Campo de união mode. O modo a ser usado para a estratégia de implantação canário. mode só pode ser de um dos seguintes tipos:
canaryDeployment

object (CanaryDeployment)

Configura a implantação baseada em progressão para um destino.

customCanaryDeployment

object (CustomCanaryDeployment)

Configura a implantação com base progressiva para um destino, mas permite a personalização no nível de fase em que uma fase representa cada uma das implantações percentuais.

RuntimeConfig

RuntimeConfig contém as configurações específicas do ambiente de execução para uma estratégia de implantação.

Representação JSON
{

  // Union field runtime_config can be only one of the following:
  "kubernetes": {
    object (KubernetesConfig)
  },
  "cloudRun": {
    object (CloudRunConfig)
  }
  // End of list of possible types for union field runtime_config.
}
Campos
Campo de união runtime_config. Os detalhes da configuração do ambiente de execução. runtime_config só pode ser de um dos seguintes tipos:
kubernetes

object (KubernetesConfig)

Configuração do ambiente de execução do Kubernetes.

cloudRun

object (CloudRunConfig)

Configuração do ambiente de execução do Cloud Run.

KubernetesConfig

KubernetesConfig contém a configuração do ambiente de execução do Kubernetes.

Representação JSON
{

  // Union field service_definition can be only one of the following:
  "gatewayServiceMesh": {
    object (GatewayServiceMesh)
  },
  "serviceNetworking": {
    object (ServiceNetworking)
  }
  // End of list of possible types for union field service_definition.
}
Campos
Campo de união service_definition. A configuração da definição do serviço. service_definition só pode ser de um dos seguintes tipos:
gatewayServiceMesh

object (GatewayServiceMesh)

Configuração da malha de serviço da API Kubernetes Gateway.

serviceNetworking

object (ServiceNetworking)

Configuração de rede do serviço do Kubernetes.

GatewayServiceMesh

Informações sobre a configuração da malha de serviço da API Kubernetes Gateway.

Representação JSON
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
Campos
httpRoute

string

Obrigatório. Nome da HTTPRoute da API Gateway.

service

string

Obrigatório. Nome do serviço do Kubernetes.

deployment

string

Obrigatório. Nome da implantação do Kubernetes com o tráfego gerenciado pelo HTTPRoute e pelo serviço especificados.

routeUpdateWaitTime

string (Duration format)

Opcional. O tempo de espera pela propagação das atualizações de trajeto. O tempo máximo configurável é de 3 horas, no formato de segundos. Se não for especificado, não haverá tempo de espera.

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

stableCutbackDuration

string (Duration format)

Opcional. A quantidade de tempo para migrar o tráfego de volta do serviço canário para o serviço original durante a implantação da fase estável. Se especificado, precisa ser entre 15 e 3.600 segundos. Se não for especificado, não haverá tempo de redução.

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

ServiceNetworking

Informações sobre a configuração de rede do serviço do Kubernetes.

Representação JSON
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
Campos
service

string

Obrigatório. Nome do serviço do Kubernetes.

deployment

string

Obrigatório. Nome da implantação do Kubernetes com tráfego gerenciado pelo serviço especificado.

disablePodOverprovisioning

boolean

Opcional. Define se o superprovisionamento de pods será desativado. Se o superprovisionamento de pods estiver desativado, o Cloud Deploy vai limitar o número total de pods usados para a estratégia de implantação ao número de pods que a implantação tem no cluster.

CloudRunConfig

O CloudRunConfig contém a configuração do ambiente de execução do Cloud Run.

Representação JSON
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
Campos
automaticTrafficControl

boolean

Define se o Cloud Deploy deve atualizar a estrofe de tráfego em um serviço do Cloud Run em nome do usuário para facilitar a divisão do tráfego. Isso precisa ser verdadeiro para CanaryDeployments, mas opcional para CustomCanaryDeployments.

canaryRevisionTags[]

string

Opcional. Uma lista de tags que são adicionadas à revisão canário enquanto a fase canário está em andamento.

priorRevisionTags[]

string

Opcional. Uma lista de tags adicionadas à revisão anterior enquanto a fase canário está em andamento.

stableRevisionTags[]

string

Opcional. Uma lista de tags que são adicionadas à revisão estável final quando a fase estável é aplicada.

CanaryDeployment

CanaryDeployment representa a configuração de implantação canário

Representação JSON
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
percentages[]

integer

Obrigatório. As implantações baseadas em porcentagem que ocorrerão como parte de um Rollout. A lista é esperada em ordem crescente, e cada número inteiro n é 0 <= n < 100.

verify

boolean

Define se os testes de verificação serão executados após cada implantação percentual.

predeploy

object (Predeploy)

Opcional. Configuração do job de pré-implantação da primeira fase. Se isso não for configurado, não haverá job de pré-implantação para esta fase.

postdeploy

object (Postdeploy)

Opcional. Configuração do job de pós-implantação da última fase. Se isso não for configurado, não haverá job de pós-implantação para esta fase.

CustomCanaryDeployment

CustomCanaryDeployment representa a configuração de implantação canário personalizada.

Representação JSON
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
Campos
phaseConfigs[]

object (PhaseConfig)

Obrigatório. Configuração para cada fase na implantação canário na ordem executada.

PhaseConfig

FaseConfig representa a configuração de uma fase na implantação canário personalizada.

Representação JSON
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
phaseId

string

Obrigatório. O ID a ser atribuído à fase Rollout. 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])?$.

percentage

integer

Obrigatório. Porcentagem de implantação da fase.

profiles[]

string

Perfis do Skaffold a serem usados ao renderizar o manifesto para esta fase. Eles são adicionais à lista de perfis especificada na etapa DeliveryPipeline.

verify

boolean

Define se os testes de verificação serão executados após a implantação.

predeploy

object (Predeploy)

Opcional. Configuração do job de pré-implantação desta fase. Se isso não for configurado, não haverá job de pré-implantação para esta fase.

postdeploy

object (Postdeploy)

Opcional. Configuração para o job de pós-implantação desta fase. Se isso não for configurado, não haverá job de pós-implantação para esta fase.

DeployParameters

O DeployParameters contém informações sobre os parâmetros de implantação.

Representação JSON
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
Campos
values

map (key: string, value: string)

Obrigatório. Os valores são parâmetros de implantação em pares de chave-valor.

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

matchTargetLabels

map (key: string, value: string)

Opcional. Os parâmetros de implantação são aplicados a destinos com rótulos de correspondência. Se não for especificado, os parâmetros de implantação serão aplicados a todos os destinos (incluindo destinos filhos de um destino múltiplo).

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

PipelineCondition

PipelineCondition contém todas as condições relevantes para um pipeline de entrega.

Representação JSON
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
Campos
pipelineReadyCondition

object (PipelineReadyCondition)

Detalhes sobre o status geral do pipeline.

targetsPresentCondition

object (TargetsPresentCondition)

Detalhes sobre os destinos enumerados no pipeline.

targetsTypeCondition

object (TargetsTypeCondition)

Detalhes sobre se os destinos enumerados no pipeline são do mesmo tipo.

PipelineReadyCondition

O PipelineReadyCondition contém informações sobre o status do pipeline.

Representação JSON
{
  "status": boolean,
  "updateTime": string
}
Campos
status

boolean

Verdadeiro se o pipeline estiver em um estado válido. Caso contrário, pelo menos uma condição em PipelineCondition terá um estado inválido. Repita essas condições e veja qual(is) tem status = falso para descobrir o que há de errado com o pipeline.

updateTime

string (Timestamp format)

Última vez que a condiçã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".

TargetsTypeCondition

TargetsTypeCondition contém informações que indicam se os destinos definidos no pipeline de entrega são do mesmo tipo.

Representação JSON
{
  "status": boolean,
  "errorDetails": string
}
Campos
status

boolean

Verdadeiro se os destinos forem todos de um tipo comparável. Por exemplo, isso será verdadeiro se todos os destinos forem clusters do GKE. Será falso se alguns destinos forem do Cloud Run e outros forem clusters do GKE.

errorDetails

string

Mensagem de erro legível.

Métodos

create

Cria um novo DeliveryPipeline em um determinado projeto e local.

delete

Exclui um único DeliveryPipeline.

get

Recebe detalhes de um único DeliveryPipeline.

getIamPolicy

Busca a política de controle de acesso de um recurso.

list

Lista DeliveryPipelines em um determinado projeto e local.

patch

Atualiza os parâmetros de um único DeliveryPipeline.

rollbackTarget

Cria uma Rollout para reverter o destino especificado.

setIamPolicy

Define a política de controle de acesso no recurso especificado.

testIamPermissions

Retorna permissões do autor da chamada no recurso especificado.