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 de 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, números, 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 está limitado a un máximo de 64 etiquetas.

Las claves y los valores también tienen el límite de 128 bytes o menos.

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 verificación según el valor de otros campos, y puede enviarse en las 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 nuevos lanzamientos ni lanzamientos, pero sí se completarán los que están en curso.

Campo de unión pipeline. La configuración de orden 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 una Target. El orden de esta lista define el flujo de promoción.

Etapa

La etapa especifica una ubicación en la que realizar 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 de un nombre de destino. 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 usan cuando se renderiza el manifiesto para el Target de esta etapa

strategy

object (Strategy)

Opcional. La estrategia que se usa para un Rollout en esta etapa.

deployParameters[]

object (DeployParameters)

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

Estrategia

En la estrategia, se incluye información sobre 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 a 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

Determina si se debe verificar una implementación.

predeploy

object (Predeploy)

Opcional. Configuración del trabajo de implementación previa. Si no se configura, el trabajo de implementación previa no estará presente.

postdeploy

object (Postdeploy)

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

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 de implementación previa.

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. Opciones de configuración específicas 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 para habilitar una implementación progresiva.

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

object (CanaryDeployment)

Configura la implementación de base progresiva para un destino.

customCanaryDeployment

object (CustomCanaryDeployment)

Configura la implementación de base progresiva para un destino, pero permite la personalización a nivel de la fase en la que una fase representa cada una de las implementaciones porcentuales.

RuntimeConfig

RuntimeConfig contiene las configuraciones específicas 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 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 Service 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 de la implementación de Kubernetes cuyo tráfico es administrado por el servicio y la ruta HTTP especificados.

routeUpdateWaitTime

string (Duration format)

Opcional. El tiempo de espera a que se propaguen las actualizaciones de ruta. El tiempo máximo configurable es 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. La cantidad de tiempo para migrar el tráfico del Service Canary al Service original durante la implementación de la fase estable. Si se especifica, debe estar entre 15 s y 3,600 s. Si no se especifica, no hay tiempo de reversió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 del Deployment de Kubernetes cuyo tráfico es administrado por el Service especificado.

disablePodOverprovisioning

boolean

Opcional. Indica si se debe inhabilitar el aprovisionamiento excesivo de Pods. Si se inhabilita el aprovisionamiento excesivo de Pods, Cloud Deploy limitará la cantidad total de Pods usados para la estrategia de implementación a la cantidad de Pods que el Deployment tenga 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

Indica 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 CanaryDeployments, pero es opcional para CustomCanaryDeployments.

canaryRevisionTags[]

string

Opcional. Una lista de etiquetas que se agregan a la revisión de versiones canary mientras la fase de versión canary 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 ocurrirán como parte de un Rollout. Se espera que la lista sea ascendente, y cada número entero n es 0 <= n < 100.

verify

boolean

Indica si se deben ejecutar pruebas de verificación después de cada implementación porcentual.

predeploy

object (Predeploy)

Opcional. Configuración del 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 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 en que se ejecutó.

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 para la fase.

profiles[]

string

Perfiles de Skaffold para usar cuando se renderiza el manifiesto para esta fase Además de la lista de perfiles especificada en la etapa DeliveryPipeline.

verify

boolean

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

predeploy

object (Predeploy)

Opcional. La configuración del trabajo de implementación previa de esta fase. Si no se configura, no habrá ningún trabajo de implementación previa para esta fase.

postdeploy

object (Postdeploy)

Opcional. La configuración del 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 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 varios destinos).

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

Verdadero si la canalización está en un estado válido. De lo contrario, al menos una condición de PipelineCondition tiene 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)

La ú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 destinos son clústeres de GKE. Este valor es falso si algunos objetivos son de Cloud Run y otros son clústeres de GKE.

errorDetails

string

Mensaje de error legible por humanos.

Métodos

create

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

delete

Borra una sola DeliveryPipeline.

get

Obtiene los 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.