Créer une cible personnalisée

Ce document explique comment créer un type de cible Cloud Deploy personnalisé et l'utiliser comme cible dans un pipeline de livraison Cloud Deploy.

Voici la procédure générale à suivre pour créer un type de cible personnalisé et l'utiliser dans votre pipeline de diffusion :

  1. Créez une application conteneurisée ou des applications incluant la fonctionnalité de déploiement sur votre cible personnalisée et qui répondent aux exigences de Cloud Deploy pour les types de cibles personnalisés.

  2. Créez une définition CustomTargetType avec des tâches qui font référence au conteneur et spécifient la ou les commandes à exécuter dessus.

  3. Définissez une nouvelle cible avec une propriété customTarget qui identifie votre nouveau type de cible personnalisée.

  4. Référencez cette cible à partir de la progression de votre pipeline de diffusion.

  5. Créez une version.

Chacune de ces étapes est décrite en détail dans le reste de ce document.

Créer vos applications conteneurisées

La fonctionnalité de déploiement sur votre cible personnalisée est définie dans les applications conteneurisées que vous fournissez à Cloud Deploy dans votre définition CustomTargetType. Lorsque votre pipeline de déploiement inclut une cible qui utilise un type de cible personnalisé, Cloud Deploy appelle les conteneurs définis pour ce type de cible personnalisé afin d'exécuter le rendu et le déploiement personnalisés que vous avez définis.

Le comportement de vos applications dépend de vous. Toutefois, il doit consommer les variables d'environnement d'entrée fournies par Cloud Deploy et renvoyer les sorties requises.

Dans la plupart des cas, vous créerez un conteneur pour votre rendu personnalisé et un autre pour votre déploiement personnalisé, pour chaque type de cible personnalisée que vous créerez. Le rendu personnalisé est facultatif, mais vous devez en créer un, sauf si votre cible personnalisée fonctionne correctement si elle est rendue avec les moteurs de rendu intégrés. Par défaut, Cloud Deploy utilise skaffold render pour générer vos fichiers manifestes.

Définir votre type de cible personnalisée

Pour définir une cible personnalisée, commencez par créer un type de cible personnalisée à l'aide de la configuration CustomTargetType. Vous pouvez créer le CustomTargetType dans le même fichier que la définition de votre pipeline de diffusion, ou avec les définitions de cibles, ou dans un fichier distinct.

La définition de CustomTargetType est la suivante :

apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name: [CUSTOM_TARGET_TYPE_NAME]
  annotations:
  labels:
description:
tasks:
  render: [RENDER_TASK]
  deploy: [DEPLOY_TASK]

  • CUSTOM_TARGET_TYPE_NAME

    Nom arbitraire que vous attribuez à cette définition de type de ciblage personnalisé. Ce nom est référencé dans la définition de la cible pour toute cible qui utilise le type de cible personnalisé que vous définissez.

  • RENDER_TASK

    Il s'agit de la tâche qui définit votre rendu personnalisé. Si aucun n'est fourni, Cloud Deploy utilise le moteur de rendu intégré spécifié dans votre configuration Skaffold.

  • DEPLOY_TASK

    Il s'agit de la tâche qui définit votre déploiement personnalisé.

Enregistrer votre type de cible personnalisée

Après avoir configuré CustomTargetType, exécutez la commande gcloud deploy apply pour enregistrer la ressource CustomTargetType dans un projet Google Cloud  :

gcloud deploy apply --file=[FILE] --project=[PROJECT] --region=[REGION]

Où :

FILE est le nom du fichier dans lequel vous avez défini ce type de cible personnalisée.

PROJECT est le projet Google Cloud dans lequel créer cette ressource. Le CustomTargetType doit se trouver dans le même projet que la ressource Target qui y fait référence. Vous n'avez pas besoin de spécifier le projet si vous l'avez défini comme projet par défaut pour la Google Cloud CLI.

REGION est la région (par exemple, us-central1) dans laquelle créer cette ressource. Le CustomTargetType doit se trouver dans la même région que la ressource Target qui y fait référence. Vous n'avez pas besoin de spécifier la région si vous l'avez définie comme région par défaut pour la gcloud CLI.

Maintenant que CustomTargetType est créé en tant que ressource Cloud Deploy, vous pouvez l'utiliser dans une définition Target pour créer votre cible personnalisée.

Pour en savoir plus sur la définition de CustomTargetType, consultez la documentation de référence sur le schéma de configuration Cloud Deploy.

Définir votre cible

La seule différence entre une définition de cible pour un type de cible compatible et une définition de cible personnalisée est que la définition de cible personnalisée inclut une strophe customTarget. La syntaxe d'un customTarget est la suivante :

customTarget:
  customTargetType: [CUSTOM_TARGET_TYPE_NAME]

CUSTOM_TARGET_TYPE_NAME correspond à la valeur de la propriété name définie dans votre configuration de type de cible personnalisée.

Ajouter votre cible au pipeline de livraison

Vous pouvez utiliser une cible personnalisée dans un pipeline de livraison exactement comme vous le feriez avec un type de cible compatible. En d'autres termes, la progression du pipeline de diffusion est la même pour les cibles d'un type de cible compatible et les cibles personnalisées.

Toutes les cibles d'un pipeline de déploiement doivent utiliser le même type de cible. Par exemple, vous ne pouvez pas avoir de pipeline de livraison avec des cibles déployant sur Google Kubernetes Engine et des cibles personnalisées.

Comme pour les types de cibles compatibles, vous pouvez inclure des paramètres de déploiement dans la phase de pipeline.

Créer une version

Maintenant que votre type de cible personnalisée est entièrement défini et qu'une cible a été créée pour l'utiliser, vous pouvez créer une version de la manière habituelle :

gcloud deploy releases create [RELEASE_NAME] \
  --project=[PROJECT_NAME] \
  --region=[REGION] \
  --delivery-pipeline=[PIPELINE_NAME]

Lors de la création d'une version, votre rendu personnalisé est exécuté pour chaque cible de votre pipeline de diffusion, y compris le traitement des paramètres de déploiement configurés sur la version, les cibles ou le pipeline de diffusion. Cloud Deploy fournit les paramètres de déploiement en entrée au conteneur de rendu personnalisé.

Afficher le résultat de vos cibles personnalisées

Si votre tâche de rendu personnalisée répond aux exigences pour les cibles personnalisées, vous pouvez utiliser la console Google Cloud pour afficher les artefacts rendus.

Suivez ces étapes pour afficher le résultat de votre tâche de rendu personnalisé.

  1. Dans la console Google Cloud , accédez à la page Pipelines de livraison de Cloud Deploy pour afficher votre pipeline de livraison.

    Ouvrir la page Pipelines de diffusion

  2. Cliquez sur le nom de votre pipeline de diffusion.

    La visualisation du pipeline indique l'état de déploiement de l'application, et votre version est répertoriée dans l'onglet Versions sous Détails du pipeline de diffusion.

  3. Cliquez sur le nom de la version.

    La page Détails de la version s'affiche.

  4. Cliquez sur l'onglet Artifacts.

  5. Sous Artefacts cibles, cliquez sur la flèche à côté de Afficher les artefacts.

    Les artefacts rendus sont listés, y compris le fichier de configuration Skaffold rendu et le fichier manifeste rendu généré par le moteur de rendu personnalisé. Vous pouvez cliquer sur le lien Emplacement de stockage à côté de chacun d'eux pour accéder au bucket Cloud Storage et afficher ces fichiers.

    Vous pouvez également cliquer sur le lien Afficher les artefacts pour afficher ces fichiers par version, par cible ou par phase à l'aide de l'inspecteur de version.

Étapes suivantes