REST Resource: projects.locations.deliveryPipelines.automations

Recurso: Automatización

Un recurso Automation en la API de Cloud Deploy

Un Automation permite la automatización de acciones impulsadas de forma manual para una canalización de entrega, lo que incluye la promoción de lanzamiento entre objetivos, la reparación del lanzamiento y el avance de la estrategia de implementación. El objetivo de la automatización es reducir la intervención manual en el proceso de entrega continua.

Representación 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

Solo salida. Es el nombre del Automation. El formato es projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation}.

uid

string

Solo salida. Es el identificador único de Automation.

description

string

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

createTime

string (Timestamp format)

Solo salida. Hora en la que se creó la automatizació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 en la que se actualizó la automatizació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".

annotations

map (key: string, value: string)

Opcional. Anotaciones de usuario Solo el usuario puede configurar y usar estos atributos, no Cloud Deploy. Las anotaciones deben cumplir con las siguientes restricciones:

  • Las anotaciones son pares clave-valor.
  • Las claves de anotación válidas tienen dos segmentos: un prefijo y un nombre opcionales, separados por una barra (/).
  • El segmento de nombre es obligatorio y debe tener 63 caracteres o menos, comenzar y terminar con un carácter alfanumérico ([a-z0-9A-Z]) con guiones (-), guiones bajos (_), puntos (.) y signos alfanuméricos en el medio.
  • El prefijo es opcional. Si se especifica, el prefijo debe ser un subdominio DNS: una serie de etiquetas DNS separadas por puntos(.) de no más de 253 caracteres en total, seguidas de una barra (/).

Para obtener más información, consulta https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set.

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

labels

map (key: string, value: string)

Opcional. 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 tener 63 caracteres o menos.

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

etag

string

Opcional. La ETag débil del recurso Automation. 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

Opcional. Cuando se suspende, se desactiva la ejecución de la automatización.

serviceAccount

string

Obligatorio. Dirección de correo electrónico de la cuenta de servicio de IAM administrada por el usuario que crea los recursos de actualización y lanzamiento de Cloud Deploy.

selector

object (AutomationResourceSelector)

Obligatorio. Recursos seleccionados a los que se aplicará la automatización.

rules[]

object (AutomationRule)

Obligatorio. Lista de reglas de automatización asociadas con el recurso de automatización. Debe tener al menos una regla y un límite de 250 reglas por canalización de entrega. Nota: Aquí, el orden de las reglas no es el mismo que el orden de ejecución.

AutomationResourceSelector

AutomationResourceSelector contiene la información para seleccionar los recursos a los que se aplicará una automatización.

Representación JSON
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
Campos
targets[]

object (TargetAttribute)

Contiene atributos sobre un destino.

TargetAttribute

Contiene criterios para seleccionar objetivos.

Representación JSON
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
Campos
id

string

Es el ID de Target. El valor de este campo podría ser uno de los siguientes: * El último segmento de un nombre de destino. Solo necesita el ID para determinar a qué destino se hace referencia en * "*", todas las orientaciones de una ubicación.

labels

map (key: string, value: string)

Etiquetas de destino.

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

AutomationRule

AutomationRule define las actividades de automatización.

Representación 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ón rule. La configuración de la regla de automatización. rule puede ser solo uno de los siguientes:
promoteReleaseRule

object (PromoteReleaseRule)

Opcional. PromoteReleaseRule promoverá automáticamente una versión del destino actual a un destino específico.

advanceRolloutRule

object (AdvanceRolloutRule)

Opcional. AdvanceRolloutRule avanzará automáticamente un lanzamiento exitoso.

repairRolloutRule

object (RepairRolloutRule)

Opcional. RepairRolloutRule reparará automáticamente un lanzamiento con errores.

PromoteReleaseRule

La regla PromoteRelease promoverá automáticamente una versión del destino actual a un destino específico.

Representación JSON
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
Campos
id

string

Obligatorio. Es el ID de la regla. Este ID debe ser único en el recurso Automation al que pertenece esta regla. El formato es [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

wait

string (Duration format)

Opcional. La cantidad de tiempo que se debe pausar la versión para que se promocione al siguiente destino.

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

destinationTargetId

string

Opcional. El ID de la etapa en la canalización en la que se implementa este Release. Si no se especifica, se establece de forma predeterminada en la siguiente etapa del flujo de promoción. El valor de este campo podría ser uno de los siguientes:

  • El último segmento del nombre de un destino. Solo necesita el ID para determinar si el destino es una de las etapas de la secuencia de promoción definida en la canalización.
  • “@next”, el siguiente destino de la secuencia de promoción.
condition

object (AutomationRuleCondition)

Solo salida. Información sobre el estado de la regla de automatización.

destinationPhase

string

Opcional. La fase inicial del lanzamiento creado por esta operación. Se establece de forma predeterminada en la primera fase.

AutomationRuleCondition

AutomationRuleCondition contiene condiciones relevantes para una regla de Automation.

Representación JSON
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
Campos
targetsPresentCondition

object (TargetsPresentCondition)

Opcional. Detalles sobre los objetivos enumerados en la regla.

AdvanceRolloutRule

La regla de automatización rollouts.advance avanzará automáticamente un lanzamiento exitoso a la siguiente fase.

Representación JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
Campos
id

string

Obligatorio. Es el ID de la regla. Este ID debe ser único en el recurso Automation al que pertenece esta regla. El formato es [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Opcional. Continúa solo después de que el nombre de la fase coincida con cualquiera de la lista. 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])?$.

wait

string (Duration format)

Opcional. Tiempo de espera después de que finaliza un lanzamiento.

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

condition

object (AutomationRuleCondition)

Solo salida. Información sobre el estado de la regla de automatización.

RepairRolloutRule

La regla de automatización RepairRolloutRule reparará automáticamente un Rollout con errores.

Representación JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
Campos
id

string

Obligatorio. Es el ID de la regla. Este ID debe ser único en el recurso Automation al que pertenece esta regla. El formato es [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Opcional. Fases en las que los trabajos están sujetos a acciones de reparación automáticas en caso de falla Continúa solo después de que el nombre de fase coincida con cualquiera de la lista o para todas las fases si no se especifica. 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])?$.

jobs[]

string

Opcional. Trabajos por reparar. Continúa solo después de que el nombre del trabajo coincida con alguno de la lista o para todos los trabajos si no se especifica o están vacíos. La fase que incluye el trabajo debe coincidir con el ID de fase especificado en sourcePhase. 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])?$.

repairModes[]

object (RepairMode)

Obligatorio. Define los tipos de acciones de reparación automáticas para los trabajos con errores.

condition

object (AutomationRuleCondition)

Solo salida. Información sobre el estado de la regla “Automatización”.

RepairMode

Es la configuración de la acción de reparación.

Representación 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ón mode. La acción de reparación que se debe realizar. mode puede ser solo uno de los siguientes:
retry

object (Retry)

Opcional. Vuelve a intentar un trabajo con errores.

rollback

object (Rollback)

Opcional. Revierte un Rollout.

Volver a intentarlo

Vuelve a intentar el trabajo con errores.

Representación JSON
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
Campos
attempts

string (int64 format)

Obligatorio. Cantidad total de reintentos. Se omite el reintento si se establece en 0. El valor mínimo es 1 y el máximo es 10.

wait

string (Duration format)

Opcional. Tiempo de espera para el primer reintento. El valor predeterminado es 0 y el valor máximo es 14 días.

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

backoffMode

enum (BackoffMode)

Opcional. El patrón de cómo se aumentará el tiempo de espera. La configuración predeterminada es lineal. Se ignorará el modo de retirada si wait es 0.

Revertir

Revierte un Rollout.

Representación JSON
{
  "destinationPhase": string
}
Campos
destinationPhase

string

Opcional. El ID de la fase inicial para Rollout. Si no se especifica, Rollout comenzará en la fase estable.

Métodos

create

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

delete

Borra un solo recurso de automatización.

get

Obtiene detalles de una sola automatización.

list

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

patch

Actualiza los parámetros de un solo recurso de automatización.