REST Resource: projects.locations.deliveryPipelines

Ressource: DeliveryPipeline

Une ressource DeliveryPipeline dans l'API Cloud Deploy

Un DeliveryPipeline définit un pipeline à travers lequel une configuration Skaffold peut progresser.

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

string

Facultatif. Nom du DeliveryPipeline. Le format est le suivant : projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}. Le composant deliveryPipeline doit correspondre à [a-z]([a-z0-9-]{0,61}[a-z0-9])?

uid

string

Uniquement en sortie. Identifiant unique du DeliveryPipeline.

description

string

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

annotations

map (key: string, value: string)

Annotations utilisateur Ces attributs ne peuvent être définis et utilisés que par l'utilisateur, et non par Cloud Deploy.

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

labels

map (key: string, value: string)

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 également avoir une taille inférieure ou égale à 128 octets.

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

createTime

string (Timestamp format)

Uniquement en sortie. Heure à laquelle le pipeline a été créé.

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. Dernière mise à jour du pipeline.

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

condition

object (PipelineCondition)

Uniquement en sortie. Informations sur l'état du pipeline de livraison.

etag

string

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

Lorsqu'une version est suspendue, aucune nouvelle version ni aucun déploiement ne peut être créé, mais ceux en cours sont terminés.

Champ d'union pipeline. Configuration de tri de DeliveryPipeline. La pipeline ne peut être qu'un des éléments suivants :
serialPipeline

object (SerialPipeline)

SerialPipeline définit un ensemble séquentiel d'étapes pour un DeliveryPipeline.

SerialPipeline

SerialPipeline définit un ensemble séquentiel d'étapes pour un DeliveryPipeline.

Représentation JSON
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
Champs
stages[]

object (Stage)

Chaque étape spécifie la configuration d'un Target. L'ordre de cette liste définit le flux de la promotion.

Étape

Stage spécifie un emplacement vers lequel déployer.

Représentation JSON
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
Champs
targetId

string

ID cible vers lequel pointe cette étape. Ce champ fait uniquement référence au dernier segment d'un nom de cible. Par exemple, ce champ serait simplement my-target (et non projects/project/locations/location/targets/my-target). L'emplacement de Target est supposé être le même que celui du DeliveryPipeline qui contient ce Stage.

profiles[]

string

Profils Skaffold à utiliser lors de l'affichage du fichier manifeste pour le Target de cette étape.

strategy

object (Strategy)

Facultatif. Stratégie à utiliser pour un Rollout à ce stade.

deployParameters[]

object (DeployParameters)

Facultatif. Paramètres de déploiement à utiliser pour la cible à cette étape.

Stratégie

La stratégie contient des informations sur la stratégie de déploiement.

Représentation 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.
}
Champs
Champ d'union deployment_strategy. Détails de la stratégie de déploiement deployment_strategy ne peut être qu'un des éléments suivants :
standard

object (Standard)

La stratégie de déploiement standard consiste à exécuter un seul déploiement et à vérifier ce dernier.

canary

object (Canary)

La stratégie de déploiement Canary fournit des déploiements progressifs basés sur un pourcentage sur une cible.

Standard

"Standard" représente la stratégie de déploiement standard.

Représentation JSON
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Champs
verify

boolean

Vérifier si un déploiement doit être vérifié ou non.

predeploy

object (Predeploy)

Facultatif. Configuration du job de prédéploiement. Si cette option n'est pas configurée, le job de prédéploiement ne sera pas présent.

postdeploy

object (Postdeploy)

Facultatif. Configuration du job de postdéploiement. Si cette option n'est pas configurée, le job de postdéploiement ne sera pas présent.

Prédéploiement

Le prédéploiement contient les informations de configuration du job de prédéploiement.

Représentation JSON
{
  "actions": [
    string
  ]
}
Champs
actions[]

string

Facultatif. Séquence d'actions personnalisées Skaffold à appeler lors de l'exécution du job de prédéploiement.

Postdéploiement

Le post-déploiement contient les informations de configuration du job de post-déploiement.

Représentation JSON
{
  "actions": [
    string
  ]
}
Champs
actions[]

string

Facultatif. Séquence d'actions personnalisées Skaffold à appeler lors de l'exécution du job de postdeploy.

Canary

Canary représente la stratégie de déploiement Canary.

Représentation 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.
}
Champs
runtimeConfig

object (RuntimeConfig)

Facultatif. Configurations spécifiques à l'environnement d'exécution pour la stratégie de déploiement. La configuration de l'environnement d'exécution permet de déterminer comment Cloud Deploy répartira le trafic pour permettre un déploiement progressif.

Champ d'union mode. Mode à utiliser pour la stratégie de déploiement Canary. mode ne peut être qu'un des éléments suivants :
canaryDeployment

object (CanaryDeployment)

Configure le déploiement progressif pour une cible.

customCanaryDeployment

object (CustomCanaryDeployment)

Configure le déploiement progressif pour une cible, mais permet la personnalisation au niveau des phases (une phase représentant chacun des pourcentages de déploiements).

RuntimeConfig

RuntimeConfig contient les configurations spécifiques à l'environnement d'exécution pour une stratégie de déploiement.

Représentation 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.
}
Champs
Champ d'union runtime_config. Détails de la configuration de l'environnement d'exécution. runtime_config ne peut être qu'un des éléments suivants :
kubernetes

object (KubernetesConfig)

Configuration de l'environnement d'exécution Kubernetes.

cloudRun

object (CloudRunConfig)

de l'environnement d'exécution Cloud Run.

KubernetesConfig

KubernetesConfig contient la configuration de l'environnement d'exécution Kubernetes.

Représentation 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.
}
Champs
Champ d'union service_definition. Configuration de la définition de service. service_definition ne peut être qu'un des éléments suivants :
gatewayServiceMesh

object (GatewayServiceMesh)

Configuration du maillage de services de l'API Kubernetes Gateway

serviceNetworking

object (ServiceNetworking)

Configuration de la mise en réseau de services Kubernetes.

GatewayServiceMesh

Informations sur la configuration du maillage de services de l'API Kubernetes Gateway.

Représentation JSON
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
Champs
httpRoute

string

Obligatoire. Nom de la ressource HTTPRoute de l'API Gateway.

service

string

Obligatoire. Nom du service Kubernetes.

deployment

string

Obligatoire. Nom du déploiement Kubernetes dont le trafic est géré par la route HTTP et le service spécifiés.

routeUpdateWaitTime

string (Duration format)

Facultatif. Délai d'attente de la propagation des mises à jour du routage. La durée maximale configurable est de 3 heures (exprimée en secondes). S'il n'est pas spécifié, aucun temps d'attente n'est défini.

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

stableCutbackDuration

string (Duration format)

Facultatif. Durée de migration du trafic du service Canary vers le service d'origine pendant le déploiement en phase stable. Si elle est spécifiée, elle doit être comprise entre 15 s et 3 600 s. Si aucune valeur n'est spécifiée, il n'y a pas de délai de réduction.

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

ServiceNetworking

Informations sur la configuration de mise en réseau des services Kubernetes.

Représentation JSON
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
Champs
service

string

Obligatoire. Nom du service Kubernetes.

deployment

string

Obligatoire. Nom du déploiement Kubernetes dont le trafic est géré par le service spécifié.

disablePodOverprovisioning

boolean

Facultatif. Indique si le surprovisionnement des pods doit être désactivé. Si le surprovisionnement des pods est désactivé, Cloud Deploy limite le nombre total de pods utilisés pour la stratégie de déploiement au nombre de pods du déploiement sur le cluster.

CloudRunConfig

CloudRunConfig contient la configuration de l'environnement d'exécution Cloud Run.

Représentation JSON
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
Champs
automaticTrafficControl

boolean

Indique si Cloud Deploy doit mettre à jour le bloc de trafic dans un service Cloud Run au nom de l'utilisateur afin de faciliter la répartition du trafic. Cette condition est obligatoire pour les CanaryDeployments, mais facultative pour CustomCanaryDeployments.

canaryRevisionTags[]

string

Facultatif. Liste des balises ajoutées à la révision Canary, alors que la phase Canary est en cours.

priorRevisionTags[]

string

Facultatif. Liste des tags ajoutés à la révision précédente alors que la phase Canary est en cours.

stableRevisionTags[]

string

Facultatif. Liste des tags ajoutés à la révision stable finale lorsque la phase stable est appliquée.

CanaryDeployment

CanaryDeployment représente la configuration de déploiement Canary

Représentation JSON
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Champs
percentages[]

integer

Obligatoire. Déploiements basés sur un pourcentage qui seront effectués dans le cadre d'un Rollout. La liste doit s'afficher dans l'ordre croissant et chaque nombre entier n est égal à 0 <= n < 100.

verify

boolean

Indique si les tests de vérification doivent être exécutés après chaque déploiement en pourcentage.

predeploy

object (Predeploy)

Facultatif. Configuration du job de prédéploiement de la première phase. Si cette option n'est pas configurée, aucun job de prédéploiement ne sera effectué pour cette phase.

postdeploy

object (Postdeploy)

Facultatif. Configuration du job de postdéploiement de la dernière phase. Si cette option n'est pas configurée, il n'y aura pas de job de post-déploiement pour cette phase.

CustomCanaryDeployment

CustomCanaryDeployment représente la configuration de déploiement Canary personnalisée.

Représentation JSON
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
Champs
phaseConfigs[]

object (PhaseConfig)

Obligatoire. Configuration de chaque phase du déploiement Canary, dans l'ordre exécuté.

PhaseConfig

PhaseConfig représente la configuration d'une phase du déploiement Canary personnalisé.

Représentation JSON
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Champs
phaseId

string

Obligatoire. ID à attribuer à la phase Rollout. 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])?$.

percentage

integer

Obligatoire. Pourcentage de déploiement pour la phase.

profiles[]

string

Profils Skaffold à utiliser lors de l'affichage du fichier manifeste pour cette phase. Ils s'ajoutent à la liste des profils spécifiée à l'étape DeliveryPipeline.

verify

boolean

Indique si les tests de vérification doivent être exécutés après le déploiement.

predeploy

object (Predeploy)

Facultatif. Configuration du job de prédéploiement de cette phase. Si cette option n'est pas configurée, aucun job de prédéploiement ne sera effectué pour cette phase.

postdeploy

object (Postdeploy)

Facultatif. Configuration du job de postdéploiement de cette phase. Si cette option n'est pas configurée, il n'y aura pas de job de post-déploiement pour cette phase.

DeployParameters

DeployParameters contient des informations sur les paramètres de déploiement.

Représentation JSON
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
Champs
values

map (key: string, value: string)

Obligatoire. Les valeurs sont des paramètres de déploiement dans des paires clé/valeur.

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

matchTargetLabels

map (key: string, value: string)

Facultatif. Les paramètres de déploiement sont appliqués aux cibles avec des libellés de correspondance. S'ils ne sont pas spécifiés, les paramètres de déploiement sont appliqués à toutes les cibles (y compris les cibles enfants d'un groupe multicible).

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

PipelineCondition

PipelineCondition contient toutes les conditions pertinentes pour un pipeline de livraison.

Représentation JSON
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
Champs
pipelineReadyCondition

object (PipelineReadyCondition)

Détails sur l'état général du pipeline.

targetsPresentCondition

object (TargetsPresentCondition)

Détails concernant les cibles énumérées dans le pipeline.

targetsTypeCondition

object (TargetsTypeCondition)

Indique si les cibles énumérées dans le pipeline sont du même type.

PipelineReadyCondition

"PipelineReadyCondition" contient des informations sur l'état du pipeline.

Représentation JSON
{
  "status": boolean,
  "updateTime": string
}
Champs
status

boolean

"True" si le pipeline est dans un état valide. Sinon, l'état d'au moins une condition de PipelineCondition n'est pas valide. Itérez ces conditions et identifiez celles dont l'état est "false" pour déterminer ce qui ne va pas avec le pipeline.

updateTime

string (Timestamp format)

Heure de la dernière mise à jour de la condition.

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

TargetsTypeCondition

CiblesTypeCondition contient des informations indiquant si les cibles définies dans le pipeline de livraison sont du même type.

Représentation JSON
{
  "status": boolean,
  "errorDetails": string
}
Champs
status

boolean

"True" si les cibles sont toutes de type comparable. Par exemple, c'est le cas si toutes les cibles sont des clusters GKE. Cette valeur est "false" si certaines cibles sont des cibles Cloud Run et d'autres sont des clusters GKE.

errorDetails

string

Message d'erreur lisible par l'humain.

Méthodes

create

Crée un DeliveryPipeline dans un projet et un emplacement donnés.

delete

Supprime un seul DeliveryPipeline.

get

Récupère les détails d'un seul DeliveryPipeline.

getIamPolicy

Récupère la stratégie de contrôle d'accès d'une ressource.

list

Répertorie les DeliveryPipelines dans un projet et un emplacement donnés.

patch

Met à jour les paramètres d'un seul DeliveryPipeline.

rollbackTarget

Crée un Rollout pour effectuer un rollback de la cible spécifiée.

setIamPolicy

Définit la stratégie de contrôle d'accès de la ressource spécifiée.

testIamPermissions

Renvoie les autorisations qu'un appelant a sur la ressource spécifiée.