Ce document présente l'automatisation des déploiements.
Vous pouvez configurer Cloud Deploy pour qu'il effectue automatiquement les tâches liées à la publication et au déploiement d'un pipeline de diffusion donné. Ces tâches incluent promotion de sortie et l'avancement par étapes.
En savoir plus sur les ressources utilisées pour l'automatisation des versions dans Cloud Deploy
Découvrez comment configurer les règles qui définissent le fonctionnement de ces automatisations.
Actions que vous pouvez automatiser
Dans Cloud Deploy, vous pouvez automatiser les versions suivantes activités de déploiement:
Promouvoir une version
Vous pouvez configurer Cloud Deploy pour promouvoir votre version automatiquement, en cas de déploiement réussi sur une cible. Par exemple, si vous avez trois cibles,
dev
,staging
etprod
, vous pouvez configurer une automatisation afin que la version soit promue dansprod
, sans intervention humaine. en cas de déploiement réussi dansstaging
.Avancer un déploiement
Vous pouvez configurer Cloud Deploy pour faire passer un déploiement d'une phase à la suivante après un déploiement réussi sur la cible précédente. Avancement de phase n'est disponible que dans les cibles qui utilisent un stratégie de déploiement Canary.
Comment fonctionne l'automatisation ?
Chaque automatisation est associée au pipeline de diffusion pour lequel elle est utilisée. Vous ne pouvez pas partager une automatisation entre plusieurs pipelines de diffusion.
Voici le processus général de configuration et d'exécution d'une automatisation:
Toi configurer une automatisation
Cette automatisation est associée à un pipeline de livraison.
Vous enregistrez cette automatisation à l'aide de
gcloud deploy apply
.Cela crée le Ressource d'automatisation.
Vous appelez le pipeline de diffusion associé à cette automatisation en créant une version.
Le déploiement est réussi dans au moins une cible.
Dans la cible pour laquelle cette automatisation est configurée...
Si l'automatisation est
promoteReleaseRule
:L'exécution attend que le déploiement soit effectué dans la cible source. La cible source est l'
selector.targets
configurée pour l'automatisation, et non dansAutomationRule
.Si une durée
wait
est configurée, l'exécution attend également cette heure.La version est automatiquement promue vers la cible suivante dans la progression du pipeline ou vers une cible spécifique, si elle est indiquée.
Si l'automatisation est
advanceRolloutRule
et que la cible utilise une version Canary stratégie de déploiement:L'exécution attend la phase source identifiée, le cas échéant.
La propriété
sourcePhase
est facultative, et si aucune phase source n'est spécifiée, chaque phase du déploiement est avancée automatiquement. La l'avancement automatique de la phase se produit lorsque la phase source estIN_PROGRESS
, jusqu'àwait
fois.Si une durée
wait
est configurée, l'exécution attend également cette heure.Lorsque vous automatisez un déploiement de canari, vous utilisez ce temps d'attente pour spécifier la durée de chaque phase de canari.
Le déploiement passe automatiquement de cette phase source à la phase suivante du déploiement.
S'il existe une phase source supplémentaire, elle est traitée de la même manière, y compris le même temps d'attente, le cas échéant.
Ressources sur l'automatisation
Il existe deux ressources Cloud Deploy spécifiquement destinées à l'automatisation :
Automatisation
Un
Automation
est une ressource enfant d'un pipeline de diffusion. Il inclut les informations suivantes :- Pointeur vers la ou les cibles pour lesquelles l'automatisation est utilisée
- La ou les règles qui régissent ce que fait l'automatisation et comment elle le fait
La configuration de la ressource d'automatisation est décrite dans le document À propos de la ressource d'automatisation
Lorsque vous exécutez
gcloud deploy apply
sur un fichier qui inclut une automatisation (kind: Automation
), Cloud Deploy crée un ressource d'automatisation, qui associe un pipeline de livraison et une ou plusieurs cibles à une ou plusieurs règles d'automatisation.Exécution de l'automatisation
AutomationRun
est une instance d'automatisation. Il s'agit d'un pointeur vers la ressource Automation correspondante, ainsi que d'informations sur le déploiement qui l'a généré et d'autres métadonnées.L'exécution de l'automatisation est créée lorsqu'une automatisation est déclenchée.
En savoir plus sur les ressources d'automatisation
Règles d'automatisation
Une règle d'automatisation définit une action pouvant être effectuée sur votre pipeline de livraison automatiquement, ainsi que des détails sur la façon dont l'automatisation doit être effectuée.
En savoir plus sur les règles d'automatisation
Rôles et autorisations Identity and Access Management requis
En plus des autorisations nécessaires pour exécuter des déploiements Cloud Deploy
du pipeline de livraison et l'automatisation des tâches (comme l'avance
lors d'un déploiement), plusieurs autorisations sont nécessaires pour effectuer
certaines opérations sur les ressources Automation
et AutomationRun
:
clouddeploy.automations.create
clouddeploy.automations.delete
clouddeploy.automations.get
clouddeploy.automations.list
clouddeploy.automations.update
clouddeploy.automationRuns.cancel
clouddeploy.automationRuns.get
clouddeploy.automationRuns.list
En plus de ces autorisations, chaque règle d'automatisation peut nécessiter les autorisations requises pour effectuer l'opération automatisée. Consultez la section Configurer des règles d'automatisation pour connaître les autorisations spécifiques requises par règle d'automatisation.
Pour en savoir plus, y compris sur les rôles Cloud Deploy qui incluent ces autorisations, consultez la page Rôles et autorisations IAM.
Créer une automatisation
Vous pouvez créer une automatisation, y compris en utilisant l'une des
règles d'automatisation disponibles,
en configurant une automatisation, puis en créant la ressource d'automatisation à l'aide de
gcloud deploy apply
Consultez la section suivante (Configurer l'automatisation) Configurer des règles d'automatisation
Configurer l'automatisation
Consultez le
Schéma du fichier de configuration
pour savoir comment configurer
Ressource Automation
.
Configuration des règles d'automatisation
En plus de cette configuration d'automatisation, vous spécifiez règles d'automatisation. La configuration est différente pour chacune des règles disponibles.
Voir Utiliser des règles d'automatisation pour obtenir une description de chacune des règles disponibles.
Suspendre une automatisation
Vous pouvez suspendre une ressource existante sans la supprimer. Cela peut être utile pour tester une automatisation sans affecter le pipeline de diffusion. Lorsque vous suspendre une automatisation, celle-ci n'est pas exécutée, journaux de plate-forme sont toujours générés.
Dans Configuration de
Automation
, Définissez la propriétésuspended
surtrue
.Exécutez
gcloud deploy apply
avec ce fichier de configuration.Les journaux de la plate-forme sont toujours générés lors de l'instanciation de l'automatisation, même si elle est suspendue. Vous pouvez l'utiliser pour tester et déboguer l'automatisation sans affecter le pipeline de diffusion.
Étape suivante
Consultez le guide de démarrage rapide: Automatiser la création et le déploiement de versions.
En savoir plus sur Cloud Deploy règles d'automatisation.
En savoir plus sur les ressources d'automatisation Cloud Deploy
Pour en savoir plus sur les fichiers de configuration d'automatisation, consultez la documentation sur le schéma de fichier de configuration.