REST Resource: projects.locations.deliveryPipelines

Recurso: DeliveryPipeline

Un recurso DeliveryPipeline en la API de Cloud Deploy.

Un DeliveryPipeline define una canalización a través de la cual puede progresar una configuración de Skaffold.

Representación 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. Es el nombre del DeliveryPipeline. El formato es projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}. El componente deliveryPipeline debe coincidir con [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

uid

string

Solo salida. Es el identificador único de DeliveryPipeline.

description

string

Descripción de DeliveryPipeline. La longitud máxima es de 255 caracteres.

annotations

map (key: string, value: string)

Anotaciones de usuario Solo el usuario puede configurar y usar estos atributos, no Cloud Deploy.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

labels

map (key: string, value: string)

Las etiquetas son atributos que el usuario y Cloud Deploy pueden configurar y usar. Las etiquetas deben cumplir con las siguientes restricciones:

  • Las claves y los valores solo pueden contener letras minúsculas, caracteres numéricos, guiones bajos y guiones.
  • Todos los caracteres deben usar la codificación UTF-8 y se permiten los caracteres internacionales.
  • Las claves deben comenzar con una letra en minúscula o un carácter internacional.
  • Cada recurso tiene un límite de 64 etiquetas.

Las claves y los valores tienen restricciones adicionales para ser <= 128 bytes.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

Solo salida. Hora en la que se creó la canalización.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo salida. Hora más reciente en la que se actualizó la canalización.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

condition

object (PipelineCondition)

Solo salida. Información sobre el estado de la canalización de entrega.

etag

string

El servidor calcula esta suma de comprobación en función del valor de otros campos, y es posible que se envíe en solicitudes de actualización y eliminación para garantizar que el cliente tenga un valor actualizado antes de continuar.

suspended

boolean

Cuando se suspende, no se pueden crear nuevas versiones ni lanzamientos, pero se completarán los que estén en progreso.

Campo de unión pipeline. La configuración de ordenamiento de DeliveryPipeline. pipeline puede ser solo uno de los siguientes:
serialPipeline

object (SerialPipeline)

SerialPipeline define un conjunto secuencial de etapas para una DeliveryPipeline.

SerialPipeline

SerialPipeline define un conjunto secuencial de etapas para una DeliveryPipeline.

Representación JSON
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
Campos
stages[]

object (Stage)

Cada etapa especifica la configuración de un Target. El orden de la lista define el flujo de promoción.

Etapa

La etapa especifica la ubicación para la implementación.

Representación JSON
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
Campos
targetId

string

El targetId al que apunta esta etapa. Este campo hace referencia exclusivamente al último segmento del nombre de un objetivo. Por ejemplo, este campo solo sería my-target (en lugar de projects/project/locations/location/targets/my-target). Se infiere que la ubicación de Target es la misma que la de DeliveryPipeline que contiene este Stage.

profiles[]

string

Perfiles de Skaffold que se usarán cuando se renderice el manifiesto del Target de esta etapa

strategy

object (Strategy)

Opcional. La estrategia que se debe usar para un Rollout hasta esta etapa.

deployParameters[]

object (DeployParameters)

Opcional. Los parámetros de implementación que se usarán para el destino en esta etapa.

Estrategia

La estrategia contiene información de la estrategia de implementación.

Representación 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ón deployment_strategy. Detalles de la estrategia de Deployment deployment_strategy puede ser solo uno de los siguientes:
standard

object (Standard)

La estrategia de implementación estándar ejecuta una única implementación y permite verificarla.

canary

object (Canary)

La estrategia de implementación de versiones canary proporciona implementaciones progresivas basadas en porcentajes en un objetivo.

Estándar

Standard representa la estrategia de implementación estándar.

Representación JSON
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
verify

boolean

Establece si se debe verificar una implementación.

predeploy

object (Predeploy)

Opcional. La configuración del trabajo de implementación previa. Si no se configura, el trabajo previo a la implementación no estará presente.

postdeploy

object (Postdeploy)

Opcional. La configuración del trabajo posterior a la implementación. Si no se configura, no estará presente el trabajo posterior a la implementación.

Implementación previa

La implementación previa contiene la información de configuración del trabajo previo a la implementación.

Representación JSON
{
  "actions": [
    string
  ]
}
Campos
actions[]

string

Opcional. Una secuencia de acciones personalizadas de Skaffold para invocar durante la ejecución del trabajo previo a la implementación.

Posterior a la implementación

Postdeploy contiene la información de configuración del trabajo posterior a la implementación.

Representación JSON
{
  "actions": [
    string
  ]
}
Campos
actions[]

string

Opcional. Una secuencia de acciones personalizadas de Skaffold para invocar durante la ejecución del trabajo posterior a la implementación.

Canary

Canary representa la estrategia de implementación de versiones canary.

Representación 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. Parámetros de configuración específicos del entorno de ejecución para la estrategia de implementación. La configuración del entorno de ejecución se usa para determinar cómo Cloud Deploy dividirá el tráfico a fin de habilitar una implementación progresiva.

Campo de unión mode. El modo que se usa para la estrategia de implementación de versiones canary. mode puede ser solo uno de los siguientes:
canaryDeployment

object (CanaryDeployment)

Configura la implementación basada en progresiva para un objetivo.

customCanaryDeployment

object (CustomCanaryDeployment)

Configura la implementación basada en progresiva para un objetivo, pero permite la personalización a nivel de fase en el que una fase representa cada uno de los porcentajes de las implementaciones.

RuntimeConfig

RuntimeConfig contiene los parámetros de configuración específicos del entorno de ejecución para una estrategia de implementación.

Representación 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ón runtime_config. Los detalles de la configuración del entorno de ejecución. runtime_config puede ser solo uno de los siguientes:
kubernetes

object (KubernetesConfig)

configuración del entorno de ejecución de Kubernetes.

cloudRun

object (CloudRunConfig)

Configuración del entorno de ejecución de Cloud Run.

KubernetesConfig

KubernetesConfig contiene la configuración del entorno de ejecución de Kubernetes.

Representación 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ón service_definition. La configuración de la definición del servicio. service_definition puede ser solo uno de los siguientes:
gatewayServiceMesh

object (GatewayServiceMesh)

Configuración de la malla de servicios de la API de Kubernetes Gateway.

serviceNetworking

object (ServiceNetworking)

configuración de herramientas de redes del servicio de Kubernetes.

GatewayServiceMesh

Información sobre la configuración de la malla de servicios de la API de Kubernetes Gateway.

Representación JSON
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
Campos
httpRoute

string

Obligatorio. Nombre de la HTTPRoute de la API de puerta de enlace.

service

string

Obligatorio. Nombre del Service de Kubernetes.

deployment

string

Obligatorio. Nombre del Deployment de Kubernetes cuyo tráfico es administrado por el HTTPRoute y el Service especificados.

routeUpdateWaitTime

string (Duration format)

Opcional. El tiempo que se debe esperar a que se propaguen las actualizaciones de la ruta. El tiempo máximo configurable es de 3 horas en formato de segundos. Si no se especifica, no hay tiempo de espera.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

stableCutbackDuration

string (Duration format)

Opcional. Es la cantidad de tiempo para migrar el tráfico del servicio Canary al servicio original durante la implementación de la fase estable. Si se especifica, debe ser de entre 15 y 3,600 s. Si no se especifica, no hay un tiempo de reducción.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

ServiceNetworking

Información sobre la configuración de herramientas de redes del servicio de Kubernetes.

Representación JSON
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
Campos
service

string

Obligatorio. Nombre del Service de Kubernetes.

deployment

string

Obligatorio. Nombre de la implementación de Kubernetes cuyo tráfico administra el servicio especificado.

disablePodOverprovisioning

boolean

Opcional. Establece si se debe inhabilitar el aprovisionamiento en exceso de Pods. Si el aprovisionamiento en exceso de Pods está inhabilitado, Cloud Deploy limitará la cantidad total de Pods que se usan para la estrategia de implementación a la cantidad de Pods que el Deployment tiene en el clúster.

CloudRunConfig

CloudRunConfig contiene la configuración del entorno de ejecución de Cloud Run.

Representación JSON
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
Campos
automaticTrafficControl

boolean

Si Cloud Deploy debe actualizar la estrofa de tráfico en un servicio de Cloud Run en nombre del usuario para facilitar la división del tráfico Esto es obligatorio para los objetos CanaryDeployments, pero es opcional para CustomCanaryDeployments.

canaryRevisionTags[]

string

Opcional. Una lista de las etiquetas que se agregan a la revisión de versiones canary mientras esta fase está en curso.

priorRevisionTags[]

string

Opcional. Una lista de las etiquetas que se agregan a la revisión anterior mientras la fase de versión canary está en curso.

stableRevisionTags[]

string

Opcional. Una lista de las etiquetas que se agregan a la revisión estable final cuando se aplica la fase estable.

CanaryDeployment

CanaryDeployment representa la configuración de la implementación de versiones canary.

Representación JSON
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
percentages[]

integer

Obligatorio. Las implementaciones basadas en porcentajes que se realizarán como parte de un Rollout. Se espera que la lista esté en orden ascendente, y cada número entero n es 0 <= n < 100.

verify

boolean

Establece si se deben ejecutar pruebas de verificación después de cada porcentaje de implementación.

predeploy

object (Predeploy)

Opcional. Configuración para el trabajo de implementación previa de la primera fase. Si no se configura, no habrá ningún trabajo de implementación previa para esta fase.

postdeploy

object (Postdeploy)

Opcional. Configuración del trabajo posterior a la implementación de la última fase. Si no se configura, no habrá ningún trabajo posterior a la implementación para esta fase.

CustomCanaryDeployment

CustomCanaryDeployment representa la configuración de la implementación de versiones canary personalizada.

Representación JSON
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
Campos
phaseConfigs[]

object (PhaseConfig)

Obligatorio. Configuración para cada fase de la implementación de versiones canary en el orden de ejecución.

PhaseConfig

FaseConfig representa la configuración de una fase en la implementación de versiones canary personalizada.

Representación JSON
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campos
phaseId

string

Obligatorio. El ID que se asignará a la fase Rollout. Este valor debe incluir letras minúsculas, números y guiones, comenzar con una letra y terminar con una letra o un número, y tener una longitud máxima de 63 caracteres. En otras palabras, debe coincidir con la siguiente regex: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

percentage

integer

Obligatorio. Porcentaje de implementación de la fase.

profiles[]

string

Perfiles de Skaffold para usar cuando se renderiza el manifiesto de esta fase. Estos se suman a la lista de perfiles especificada en la etapa DeliveryPipeline.

verify

boolean

Determina si se deben ejecutar pruebas de verificación después de la implementación.

predeploy

object (Predeploy)

Opcional. Configuración para el trabajo previo a la implementación de esta fase. Si no se configura, no habrá ningún trabajo de implementación previa para esta fase.

postdeploy

object (Postdeploy)

Opcional. Configuración para el trabajo posterior a la implementación de esta fase. Si no se configura, no habrá ningún trabajo posterior a la implementación para esta fase.

DeployParameters

DeployParameters contiene información de los parámetros de implementación.

Representación JSON
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
Campos
values

map (key: string, value: string)

Obligatorio. Los valores son parámetros de implementación en pares clave-valor.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

matchTargetLabels

map (key: string, value: string)

Opcional. Los parámetros de implementación se aplican a los destinos con etiquetas de coincidencia. Si no se especifica, los parámetros de implementación se aplican a todos los destinos (incluidos los destinos secundarios de un destino múltiple).

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PipelineCondition

PipelineCondition contiene todas las condiciones relevantes para una canalización de entrega.

Representación JSON
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
Campos
pipelineReadyCondition

object (PipelineReadyCondition)

Detalles sobre el estado general de la canalización.

targetsPresentCondition

object (TargetsPresentCondition)

Detalles sobre los destinos enumerados en la canalización.

targetsTypeCondition

object (TargetsTypeCondition)

Detalles sobre si los destinos enumerados en la canalización son del mismo tipo

PipelineReadyCondition

PipelineReadyCondition contiene información sobre el estado de la canalización.

Representación JSON
{
  "status": boolean,
  "updateTime": string
}
Campos
status

boolean

Es verdadero si la canalización se encuentra en un estado válido. De lo contrario, al menos una condición en PipelineCondition tendrá un estado no válido. Iterar sobre esas condiciones y ver qué condiciones tienen el estado = false para averiguar cuál es el problema con la canalización

updateTime

string (Timestamp format)

Última vez que se actualizó la condición.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

TargetsTypeCondition

TargetsTypeCondition contiene información sobre si los destinos definidos en la canalización de entrega son del mismo tipo.

Representación JSON
{
  "status": boolean,
  "errorDetails": string
}
Campos
status

boolean

Es verdadero si todos los objetivos son de un tipo comparable. Por ejemplo, esto es así si todos los objetivos son clústeres de GKE. Esto es falso si algunos destinos son de Cloud Run y otros son clústeres de GKE.

errorDetails

string

Mensaje de error legible por humanos.

Métodos

create

Crea una DeliveryPipeline nueva en una ubicación y un proyecto determinados.

delete

Borra una sola DeliveryPipeline.

get

Obtiene detalles de una sola DeliveryPipeline.

getIamPolicy

Permite obtener la política de control de acceso de un recurso.

list

Muestra una lista de DeliveryPipelines en un proyecto y una ubicación determinados.

patch

Actualiza los parámetros de una sola DeliveryPipeline.

rollbackTarget

Crea un Rollout para revertir el destino especificado.

setIamPolicy

Permite configurar la política de control de acceso en el recurso especificado.

testIamPermissions

Permite mostrar los permisos que tiene un emisor para un recurso específico.