Application Design Center vous permet d'importer vos configurationsGoogle Cloud Terraform multiproduits existantes dans un modèle d'application tel quel, sans restructurer votre code en modules de composants individuels ni le publier d'abord dans un catalogue.
Contrairement aux modules Terraform monoproduits que vous importez en tant que composants de catalogue et que vous connectez sur le canevas de conception, une configuration Terraform multiproduit est un module racine qui provisionne des ressources sur plusieurs produits Google Cloud . Pour importer des modules à produit unique en tant que composants, consultez Importer des composants.
L'importation de configurations Terraform existantes dans App Design Center vous permet d'effectuer les opérations suivantes :
- Intégrez les configurations Terraform existantes à la gestion du cycle de vie des applications d'App Design Center et enregistrez automatiquement les ressources déployées dans App Hub.
- Gérez les versions de vos configurations Terraform en créant des révisions de modèles d'application immuables.
- Prévisualisez et déployez des applications à l'aide d'Infrastructure Manager, ou exportez les fichiers Terraform vers Cloud Storage.
Après avoir créé une révision de modèle, vous pouvez l'utiliser de l'une des manières suivantes :
- Déployer directement : créez une application à partir de la révision, prévisualisez-la pour obtenir un rapport d'évaluation, puis déployez-la. Vous n'avez pas besoin de publier le modèle dans un catalogue, de le partager ni de trouver un modèle partagé au préalable.
- Réutilisation via votre catalogue : publiez la révision dans votre catalogue, ajoutez-la en tant que composant à un modèle d'application composite, puis exportez le code Terraform du modèle composite. Pour en savoir plus, consultez Publier un modèle d'application dans un catalogue.
Avant de commencer
Pour effectuer les tâches décrites dans ce document, demandez à votre administrateur de vous accorder les rôles nécessaires sur le dossier compatible avec les applications ou le projet de gestion, comme indiqué dans le tableau suivant :
| Tâche | Rôles requis |
|---|---|
| Créer, importer, exporter et créer des instantanés de modèles d'application et de révisions de modèles | Administrateur App Design Center (roles/designcenter.admin) ouUtilisateur App Design Center ( roles/designcenter.user) |
| Créer, déployer et exporter des applications | Administrateur de l'application (roles/designcenter.applicationAdmin) ouÉditeur de l'application ( roles/designcenter.applicationEditor) |
Pour en savoir plus sur les rôles, consultez Contrôle des accès avec Identity and Access Management.
Stockez votre module racine Terraform (fichiers .tf et tous les fichiers associés, tels que les fichiers .json) dans l'une des sources suivantes :
- Un bucket Cloud Storage.
- Un dépôt Developer Connect.
- Un dépôt Git public.
- Fichier YAML ou JSON local contenant les fichiers.
Importer Terraform dans un modèle d'application
Suivez les étapes ci-dessous à l'aide de la Google Cloud CLI pour créer un modèle d'application, importer votre configuration Terraform existante et créer une révision de modèle immuable.
Créez un modèle d'application dans votre espace.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --display-name=DISPLAY_NAMERemplacez les éléments suivants :
APPLICATION_TEMPLATE: ID du modèle d'application que vous souhaitez créer.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.DISPLAY_NAME: nom à afficher pour le modèle d'application.
Pour en savoir plus, consultez gcloud design-center spaces application-templates create.
Importez votre configuration Terraform dans le modèle d'application à partir de l'une des sources suivantes :
Pour importer des données à partir d'un bucket Cloud Storage, exécutez la commande suivante :
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --gcs-uri=GCS_URI \ --raw-terraform-import-enabledPour importer des données à partir d'un dépôt Developer Connect, exécutez la commande suivante :
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --developer-connect-repo-uri=DEVELOPER_CONNECT_REPO_URI \ --developer-connect-branch=DEVELOPER_CONNECT_BRANCH \ --developer-connect-dir=DEVELOPER_CONNECT_DIR \ --raw-terraform-import-enabledPour importer des fichiers depuis un dépôt Git public, exécutez la commande suivante :
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --git-source-repo=GIT_SOURCE_REPO \ --git-source-ref-tag=GIT_SOURCE_REF_TAG \ --git-source-dir=GIT_SOURCE_DIR \ --raw-terraform-import-enabledPour importer des données à partir d'un fichier YAML ou JSON local contenant une charge utile
IaCModule, exécutez la commande suivante :gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --iac-module-from-file=IAC_MODULE_FILE \ --raw-terraform-import-enabled
Remplacez les éléments suivants :
APPLICATION_TEMPLATE: ID du modèle d'application.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.GCS_URI: URI Cloud Storage contenant vos fichiers Terraform, au formatgs://BUCKET_NAME/FOLDER_PATH.DEVELOPER_CONNECT_REPO_URI: URI du lien vers le dépôt Developer Connect, au formatprojects/PROJECT/locations/LOCATION/connections/CONNECTION/gitRepositoryLinks/REPO_LINK.DEVELOPER_CONNECT_BRANCH: nom de la branche dans votre dépôt Developer Connect. Vous pouvez également spécifier--developer-connect-ref-tagou--developer-connect-commit-sha.DEVELOPER_CONNECT_DIR: chemin d'accès au répertoire dans votre dépôt Developer Connect.GIT_SOURCE_REPO: URL HTTPS du dépôt Git public.GIT_SOURCE_REF_TAG: référence ou tag Git dans le dépôt Git public.GIT_SOURCE_DIR: chemin d'accès au répertoire dans le dépôt Git public.IAC_MODULE_FILE: chemin d'accès à un fichier YAML ou JSON local contenant vos fichiers Terraform.
Créez un instantané du modèle d'application pour générer une révision immuable du modèle d'application que vous pouvez utiliser pour créer et déployer des applications.
gcloud design-center spaces application-templates snapshot APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACERemplacez les éléments suivants :
APPLICATION_TEMPLATE: ID du modèle d'application.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.
Le résultat inclut l'URI de la révision du modèle d'application créée au format
projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION.
Créer et déployer une application à partir du modèle
Après avoir créé une révision d'instantané de votre modèle Terraform importé, vous pouvez créer un brouillon d'application, fournir des valeurs de variables d'entrée et déployer l'application.
Créez un brouillon d'application à partir de la révision du modèle d'application.
gcloud design-center spaces applications create APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \ --deployment-project=DEPLOYMENT_PROJECT \ --deployment-region=DEPLOYMENT_REGION \ --app-parameters=APP_PARAMETERS \ --scope-type=SCOPE_TYPERemplacez les éléments suivants :
APPLICATION: ID de l'application que vous souhaitez créer.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.SOURCE_APPLICATION_TEMPLATE_REVISION: URI de révision du modèle d'application renvoyé par la commandesnapshot.DEPLOYMENT_PROJECT: ID du projet cible dans lequel vos ressources Terraform sont déployées.DEPLOYMENT_REGION: région cible dans laquelle vos ressources Terraform sont déployées.APP_PARAMETERS: facultatif. Paires clé/valeur de variable d'entrée pour votre module racine Terraform (par exemple,key=KEY,value=VALUE) ou chemin d'accès à un fichier YAML ou JSON contenant les paramètres de votre application.SCOPE_TYPE: champ d'application de votre application, soitregional, soitglobal.
Pour en savoir plus sur la gestion des applications, consultez Gérer les applications.
Prévisualisez et déployez votre application. Pour obtenir des instructions détaillées, consultez Déployer des applications.
Exporter du code Terraform vers Cloud Storage
Vous pouvez exporter les fichiers Terraform d'un modèle d'application, d'une révision de modèle d'application ou d'une application vers un bucket Cloud Storage. Exportez lorsque vous souhaitez exécuter Terraform avec vos propres outils CI/CD ou conserver une copie dans le contrôle des versions.
Pour exporter des fichiers Terraform à partir d'un brouillon de modèle d'application, exécutez la commande suivante :
gcloud design-center spaces application-templates export APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIPour exporter des fichiers Terraform à partir d'une révision de modèle d'application, exécutez la commande suivante :
gcloud design-center spaces application-templates revisions export REVISION \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIPour exporter des fichiers Terraform à partir d'une application (y compris
zz_adc_inputs.auto.tfvars.jsonrenseigné avec les paramètres d'application configurés), exécutez la commande suivante :gcloud design-center spaces applications export APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
Remplacez les éléments suivants :
APPLICATION_TEMPLATE: ID du modèle d'application.REVISION: ID de révision du modèle d'application.APPLICATION: ID d'application.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.ARTIFACT_LOCATION_GCS_URI: URI Cloud Storage de destination au formatgs://BUCKET_NAME/EXPORT_FOLDER.
Étapes suivantes
- Gérer les applications.
- Déployer des applications
- Téléchargez et déployez Terraform.
- Exportez le code Terraform depuis la console Google Cloud .
- Publier un modèle d'application dans un catalogue
- Importer des composants