REST Resource: projects.locations.deliveryPipelines.automations

Ressource: Automatisation

Une ressource Automation dans l'API Cloud Deploy.

Un Automation permet d'automatiser des actions manuelles pour un pipeline de livraison, ce qui inclut la promotion de publication parmi les cibles, la réparation du déploiement et l'avancement de la stratégie de déploiement. L'automatisation vise à réduire l'intervention manuelle dans le processus de livraison continue.

Représentation 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)
    }
  ]
}
Champs
name

string

Uniquement en sortie. Nom du Automation. Le format est le suivant : projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation}.

uid

string

Uniquement en sortie. Identifiant unique du Automation.

description

string

Facultatif. Description de Automation. Ne doit pas dépasser 255 caractères

createTime

string (Timestamp format)

Uniquement en sortie. Heure à laquelle l'automatisation a été créée.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Uniquement en sortie. Heure à laquelle l'automatisation a été mise à jour.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

annotations

map (key: string, value: string)

Facultatif. Annotations utilisateur Ces attributs ne peuvent être définis et utilisés que par l'utilisateur, et non par Cloud Deploy. Les annotations doivent respecter les contraintes suivantes:

  • Les annotations sont des paires clé/valeur.
  • Les clés d'annotation valides comportent deux segments: un préfixe et un nom facultatifs, séparés par une barre oblique (/).
  • Le segment de nom est obligatoire. Il doit comporter 63 caractères au maximum. Il doit commencer et se terminer par un caractère alphanumérique ([a-z0-9A-Z]), et contenir des tirets (-), des traits de soulignement (_), des points (.) et des caractères alphanumériques.
  • Le préfixe est facultatif. S'il est spécifié, le préfixe doit être un sous-domaine DNS: une série de libellés DNS séparés par des points(.), ne dépassant pas 253 caractères au total, suivi d'une barre oblique (/).

Pour en savoir plus, consultez la page https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

labels

map (key: string, value: string)

Facultatif. Les étiquettes sont des attributs qui peuvent être définis et utilisés à la fois par l'utilisateur et par Cloud Deploy. Les étiquettes doivent respecter les contraintes suivantes:

  • Les clés et les valeurs ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets.
  • Tous les caractères doivent être encodés au format UTF-8. Les caractères internationaux sont acceptés.
  • Les clés doivent commencer par une lettre minuscule ou un caractère international.
  • Chaque ressource est limitée à un maximum de 64 libellés.

Les clés et les valeurs doivent par ailleurs contenir 63 caractères maximum.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

etag

string

Facultatif. Etag faible de la ressource Automation. Cette somme de contrôle est calculée par le serveur en fonction de la valeur d'autres champs. Elle peut être envoyée lors des requêtes de mise à jour et de suppression pour s'assurer que le client dispose d'une valeur à jour avant de poursuivre.

suspended

boolean

Facultatif. Lorsque l'option "Suspendue" est suspendue, l'exécution est désactivée pour l'automatisation.

serviceAccount

string

Obligatoire. Adresse e-mail du compte de service IAM géré par l'utilisateur qui crée les ressources de version et de déploiement Cloud Deploy.

selector

object (AutomationResourceSelector)

Obligatoire. Ressources sélectionnées auxquelles l'automatisation sera appliquée.

rules[]

object (AutomationRule)

Obligatoire. Liste des règles d'automatisation associées à la ressource Automation. Doit avoir au moins une règle, avec un maximum de 250 règles par pipeline de livraison. Remarque: l'ordre des règles n'est pas le même que celui d'exécution.

AutomationResourceSelector

"AutomationResourceSélecteur" contient les informations permettant de sélectionner les ressources auxquelles une automatisation va être appliquée.

Représentation JSON
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
Champs
targets[]

object (TargetAttribute)

Contient des attributs concernant une cible.

TargetAttribute

Contient les critères de sélection des cibles.

Représentation JSON
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
Champs
id

string

ID de Target. La valeur de ce champ peut être l'une des suivantes: * Le dernier segment d'un nom de cible. Il a seulement besoin de cet ID pour déterminer quelle cible est désignée par * "*", toutes les cibles d'une zone géographique.

labels

map (key: string, value: string)

Libellés cibles.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

AutomationRule

AutomationRule définit les activités d'automatisation.

Représentation 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.
}
Champs
Champ d'union rule. Configuration de la règle d'automatisation. rule ne peut être qu'un des éléments suivants :
promoteReleaseRule

object (PromoteReleaseRule)

Facultatif. PromoteReleaseRule promouvoira automatiquement une version de la cible actuelle vers une cible spécifiée.

advanceRolloutRule

object (AdvanceRolloutRule)

Facultatif. AdvanceRolloutRule avance automatiquement un déploiement réussi.

repairRolloutRule

object (RepairRolloutRule)

Facultatif. Le RepairRolloutRule réparera automatiquement un déploiement ayant échoué.

PromoteReleaseRule

La règle PromoteRelease promouvoira automatiquement une version de la cible actuelle vers une cible spécifiée.

Représentation JSON
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
Champs
id

string

Obligatoire. Identifiant de la règle. Cet ID doit être unique dans la ressource Automation à laquelle appartient cette règle. Le format est le suivant : [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

wait

string (Duration format)

Facultatif. La durée pendant laquelle la version doit être mise en pause avant d'être promue sur la cible suivante.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

destinationTargetId

string

Facultatif. ID de l'étape du pipeline dans laquelle ce Release est déployé. Si aucune valeur n'est spécifiée, passez par défaut à l'étape suivante du flux de promotion. La valeur de ce champ peut être l'une des suivantes:

  • Dernier segment d'un nom de cible. Il a seulement besoin de l'ID pour déterminer si la cible est l'une des étapes de la séquence de promotion définie dans le pipeline.
  • "@next" correspond à la cible suivante dans la séquence de promotion.
condition

object (AutomationRuleCondition)

Uniquement en sortie. Informations sur l'état de la règle d'automatisation.

destinationPhase

string

Facultatif. Phase de début du déploiement créée par cette opération. La première phase est utilisée par défaut.

AutomationRuleCondition

AutomationRuleCondition contient des conditions pertinentes pour une règle Automation.

Représentation JSON
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
Champs
targetsPresentCondition

object (TargetsPresentCondition)

Facultatif. Détails sur les cibles énumérées dans la règle.

AdvanceRolloutRule

La règle d'automatisation rollouts.advance fera automatiquement passer un déploiement réussi à la phase suivante.

Représentation JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
Champs
id

string

Obligatoire. Identifiant de la règle. Cet ID doit être unique dans la ressource Automation à laquelle appartient cette règle. Le format est le suivant : [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Facultatif. Ne se poursuit que lorsque le nom de la phase correspond à l'un des noms de la liste. Cette valeur doit être composée de lettres minuscules, de chiffres et de traits d'union. Elle doit commencer par une lettre et se terminer par une lettre ou un chiffre. Elle ne doit pas dépasser 63 caractères. En d'autres termes, il doit correspondre à l'expression régulière suivante: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

wait

string (Duration format)

Facultatif. Délai d'attente après la fin d'un déploiement.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

condition

object (AutomationRuleCondition)

Uniquement en sortie. Informations sur l'état de la règle d'automatisation.

RepairRolloutRule

La règle d'automatisation RepairRolloutRule réparera automatiquement une Rollout ayant échoué.

Représentation JSON
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
Champs
id

string

Obligatoire. Identifiant de la règle. Cet ID doit être unique dans la ressource Automation à laquelle appartient cette règle. Le format est le suivant : [a-z]([a-z0-9-]{0,61}[a-z0-9])?.

sourcePhases[]

string

Facultatif. Phases au cours desquelles les tâches sont soumises à des actions de réparation automatique en cas d'échec. Ne se poursuit que lorsque le nom de la phase correspond à l'un des éléments de la liste ou pour toutes les phases s'il n'est pas spécifié. Cette valeur doit être composée de lettres minuscules, de chiffres et de traits d'union. Elle doit commencer par une lettre et se terminer par une lettre ou un chiffre. Elle ne doit pas dépasser 63 caractères. En d'autres termes, il doit correspondre à l'expression régulière suivante: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

jobs[]

string

Facultatif. Jobs à réparer. Ne se poursuit qu'une fois que le nom de la tâche correspond à l'une des tâches de la liste, ou lorsqu'elle n'est pas spécifiée ou est vide. La phase qui inclut le job doit correspondre à l'ID de phase spécifié dans sourcePhase. Cette valeur doit être composée de lettres minuscules, de chiffres et de traits d'union. Elle doit commencer par une lettre et se terminer par une lettre ou un chiffre. Elle ne doit pas dépasser 63 caractères. En d'autres termes, il doit correspondre à l'expression régulière suivante: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

repairModes[]

object (RepairMode)

Obligatoire. Définit les types d'actions de réparation automatique pour les jobs ayant échoué.

condition

object (AutomationRuleCondition)

Uniquement en sortie. Informations sur l'état de la règle "Automatisation".

RepairMode

Configuration de l'action de réparation.

Représentation 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.
}
Champs
Champ d'union mode. Action de réparation à effectuer. mode ne peut être qu'un des éléments suivants :
retry

object (Retry)

Facultatif. Relance une tâche ayant échoué.

rollback

object (Rollback)

Facultatif. Annule une Rollout.

Réessayer

Il relance la tâche ayant échoué.

Représentation JSON
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
Champs
attempts

string (int64 format)

Obligatoire. Nombre total de tentatives. La nouvelle tentative est ignorée si elle est définie sur 0. La valeur minimale est 1, et la valeur maximale est 10.

wait

string (Duration format)

Facultatif. Délai d'attente avant la première nouvelle tentative. La valeur par défaut est 0 et la valeur maximale est 14 j.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

backoffMode

enum (BackoffMode)

Facultatif. Schéma montrant comment le temps d'attente sera augmenté. La valeur par défaut est "linéaire". Le mode d'intervalle entre les tentatives est ignoré si wait est défini sur 0.

Rollback

Annule une Rollout.

Représentation JSON
{
  "destinationPhase": string
}
Champs
destinationPhase

string

Facultatif. ID de la phase de début pour Rollout. Si aucune valeur n'est spécifiée, Rollout démarrera dans la phase stable.

Méthodes

create

Crée une automatisation dans un projet et un emplacement donnés.

delete

Supprime une seule ressource d'automatisation.

get

Récupère les détails d'une seule automatisation.

list

Répertorie les automatisations pour un projet et un emplacement donnés.

patch

Met à jour les paramètres d'une seule ressource d'automatisation.