Définir et utiliser un type de cible personnalisé
Ce guide de démarrage rapide vous explique comment utiliser Cloud Deploy pour créer un type de cible personnalisé, puis effectuer un déploiement sur une cible personnalisée de ce type.
Dans ce guide de démarrage rapide, vous allez:
Créez une configuration Skaffold.
Le fichier de configuration Skaffold vous permet de configurer le comportement de la cible. Cette configuration fait référence à des images de conteneur et à des commandes shell à exécuter sur ces images, qui sont les actions pour les opérations de rendu et de déploiement.
Définissez un type de cible personnalisé et une cible qui fait référence à ce type.
Définissez votre pipeline de livraison Cloud Deploy.
Ce pipeline ne comprend qu'une seule étape et n'utilise qu'une seule cible. À ce stade, vous allez faire référence à la cible que vous avez configurée.
Créez une version, qui crée automatiquement un déploiement, ce qui entraîne l'exécution des opérations de rendu et de déploiement personnalisées.
Dans le cadre de cette version et de ce déploiement, les opérations de rendu et de déploiement définies dans votre configuration Skaffold sont toutes deux exécutées.
Afficher les résultats des opérations personnalisées Cela inclut un fichier de configuration rendu importé dans Cloud Storage, une chaîne écrite dans ce fichier, ainsi qu'un fichier de résultats qui inclut l'état de l'opération.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Assurez-vous que le compte de service Compute Engine par défaut dispose d'autorisations suffisantes.
Le compte de service dispose peut-être déjà des autorisations nécessaires. Ces étapes sont incluses pour les projets qui désactivent les attributions automatiques de rôles pour les comptes de service par défaut.
- Commencez par ajouter le rôle
clouddeploy.jobRunner
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner"
- Ajoutez le rôle de développeur pour votre environnement d'exécution spécifique.
-
Ajoutez le rôle
iam.serviceAccountUser
, qui inclut l'autorisationactAs
de déployer dans l'environnement d'exécution:gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
Si Google Cloud CLI est déjà installé, assurez-vous d'exécuter la dernière version:
gcloud components update
Préparer votre configuration Skaffold
Cloud Deploy utilise Skaffold pour fournir les détails de ce que vous devez déployer et de la manière de le déployer sur votre cible.
Dans ce guide de démarrage rapide, vous allez créer un fichier skaffold.yaml
, qui définit des actions personnalisées représentant les opérations de rendu et de déploiement pour le type de cible personnalisée.
Notez que les actions personnalisées fournies dans ce guide de démarrage rapide ne déploient en réalité aucune application dans un environnement d'exécution. Les actions de rendu et de déploiement importent un fichier de résultats dans Cloud Storage pour respecter le contrat de cible personnalisée entre Cloud Deploy et le rendu et le déploiement définis par l'utilisateur.
Ouvrez une fenêtre de terminal.
Créez un répertoire et accédez-y.
mkdir custom-target-quickstart cd custom-target-quickstart
Créez un fichier nommé
skaffold.yaml
avec le contenu suivant :apiVersion: skaffold/v4beta7 kind: Config customActions: - name: custom-render containers: - name: render image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:66e2681aa3099b4e517e4cdcdefff8f2aa45d305007124ccdc09686f6712d018 command: ['/bin/bash'] args: - '-c' - |- echo "Sample manifest rendered content" > manifest.txt gcloud storage cp manifest.txt $CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt echo {\"resultStatus\": \"SUCCEEDED\", \"manifestFile\": \"$CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json - name: custom-deploy containers: - name: deploy image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:66e2681aa3099b4e517e4cdcdefff8f2aa45d305007124ccdc09686f6712d018 command: ['/bin/bash'] args: - '-c' - |- echo {\"resultStatus\": \"SUCCEEDED\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json
Ce fichier inclut la strophe
customActions:
, qui définit une action de rendu personnalisée et une action de déploiement personnalisée. Chacune de ces actions personnalisées fait référence à une image de conteneur à exécuter et à des commandes à exécuter sur ce conteneur.Pour en savoir plus sur ce fichier de configuration, consultez la documentation de référence sur
skaffold.yaml
.
Créer votre pipeline de diffusion, votre type de cible personnalisée et votre cible
Vous pouvez définir votre pipeline de diffusion, votre type de cible personnalisée et votre cible dans un seul fichier ou dans des fichiers distincts. Dans ce guide de démarrage rapide, vous allez créer un seul fichier contenant les trois éléments.
Dans le répertoire custom-target-quickstart, créez un fichier nommé
clouddeploy.yaml
contenant le contenu suivant:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: custom-targets-pipeline serialPipeline: stages: - targetId: sample-env --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: sample-env customTarget: customTargetType: basic-custom-target --- apiVersion: deploy.cloud.google.com/v1 kind: CustomTargetType metadata: name: basic-custom-target customActions: renderAction: custom-render deployAction: custom-deploy
Enregistrez votre pipeline et vos cibles auprès du service Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
Vous disposez désormais d'un pipeline de diffusion avec une seule cible. Il s'agit de votre cible utilisant le type de cible personnalisée. Ce pipeline ne déploie pas d'application dans un environnement d'exécution.
Vérifiez votre pipeline et vos cibles:
Dans la console Google Cloud, accédez à la page Pipelines de diffusion de Cloud Deploy pour afficher la liste de vos pipelines de diffusion disponibles.
Ouvrir la page Pipelines de diffusion
Le pipeline de diffusion que vous venez de créer s'affiche, avec une cible listée dans la colonne Cibles.
Créer une version
Une version est la ressource Cloud Deploy centrale qui représente les modifications déployées. Le pipeline de diffusion définit le cycle de vie de cette version. Pour en savoir plus sur ce cycle de vie, consultez la section Architecture du service Cloud Deploy.
Exécutez la commande suivante à partir du répertoire custom-target-quickstart
pour créer une ressource release
représentant l'action personnalisée à déployer:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=custom-targets-pipeline
Comme pour toutes les versions (sauf si elles incluent --disable-initial-rollout
), Cloud Deploy crée également automatiquement une ressource de déploiement. Toutes les phases de ce déploiement sont exécutées, y compris le rendu et le déploiement.
Afficher les résultats dans la console Google Cloud
Le déploiement est terminé au bout de quelques minutes. Dans ce cas, comme les deux actions personnalisées sont des commandes permettant d'afficher des chaînes dans un fichier et d'importer le fichier dans Cloud Storage, rien n'est déployé dans un environnement d'exécution cible.
Toutefois, vous pouvez afficher le fichier et les chaînes qu'il contient:
Dans la console Google Cloud, accédez à la page Pipelines de diffusion de Cloud Deploy pour afficher votre pipeline de diffusion (
custom-targets-pipeline
).Cliquez sur le nom de votre pipeline de diffusion (
custom-targets-pipeline
).La visualisation du pipeline indique l'état de déploiement de l'application. Comme il n'y a qu'une seule étape dans le pipeline, la visualisation n'affiche qu'un seul nœud.
Votre version est répertoriée dans l'onglet Versions sous Détails du pipeline de diffusion.
Cliquez sur le nom de la version.
La page Détails de la version s'affiche.
Cliquez sur l'onglet Artefacts.
Sous Artefacts cibles, cliquez sur le lien AFFICHER LES ARTEFACTS.
Le fichier manifeste affiché. Dans ce cas, le fichier est la sortie de l'action de rendu personnalisée que vous avez définie dans votre fichier de configuration
skaffold.yaml
, contenant la chaîne "Sample manifest rendered content" (Exemple de contenu affiché dans le fichier manifeste).Recherchez les buckets Cloud Storage créés par cette version.
uvrez la page du navigateur Cloud Storage
La page Buckets (Buckets) s'affiche, affichant deux buckets créés pour cette version. Un bucket contient le fichier de configuration du pipeline de diffusion et le
skaffold.yaml
généré. L'autre inclut le fichier de sortie que notre action personnalisée est configurée pour créer.Cliquez sur le bucket dont le nom commence par
us-central1.deploy-artifacts
.Cliquez sur le dossier dont le nom commence par
custom-targets-pipeline-
, puis sur le dossiertest-release-001
.Cliquez sur le dossier portant le nom de votre déploiement, qui devrait être
test-release-001-to-sample-env-0001
.Cliquez sur le dossier affiché, qui est un UUID, puis sur le dossier
custom-output
.Cliquez sur
results.json
, puis sur l'URL hypertexte dans le champ URL authentifiée.Ce fichier contient la chaîne que vous avez configurée comme sortie de l'action
custom-deploy
, dans votreskaffold.yaml
:
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :
Supprimez le pipeline de diffusion, la cible, la version et le déploiement:
gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_ID
Supprimez les deux buckets Cloud Storage créés par Cloud Deploy.
Voilà ! Vous avez terminé le guide de démarrage rapide.