L'importation de modules Terraform personnalisés dans Application Design Center vous permet d'ajouter vos propres configurations Google Cloud réutilisables en tant que composants dans vos modèles d'application. Lorsque vous importez un module Terraform, App Design Center crée un modèle de composant dans le catalogue de votre espace afin que les développeurs puissent réutiliser vos décisions de conception et vos règles établies.
Pour en savoir plus sur la création de modules Terraform pour Google Cloud, consultez les pages suivantes :
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 |
|---|---|
| Importer des modules Terraform en tant que composants personnalisés | Administrateur App Design Center (roles/designcenter.admin) ouUtilisateur App Design Center ( roles/designcenter.user) |
Pour en savoir plus sur les rôles, consultez Contrôle des accès avec IAM.
Configurer et importer vos modules
Pour vous connecter à GitHub, créer un fichier de métadonnées et importer un module Terraform, procédez comme suit :
Se connecter à votre dépôt à l'aide de Developer Connect
Créez une connexion Developer Connect au dépôt GitHub dans lequel vous stockez vos modules Terraform Google Cloud . Vous utiliserez cette connexion lors de l'importation.
Créez une connexion Developer Connect.
Pour connaître la procédure à suivre, consultez Se connecter à GitHub.
Créez un lien vers un dépôt Developer Connect.
Pour connaître la procédure à suivre, consultez Ajouter des liens de dépôt à des connexions existantes.
Facultatif : Préparer les métadonnées de votre module Terraform
Lorsque vous importez votre module Terraform, vous pouvez fournir vos propres métadonnées ou laisser App Design Center créer un fichier de métadonnées pour vous.
Par exemple, voici un fichier metadata.yaml que vous pouvez créer pour un compte de service :
spec:
info:
actuationTool:
flavor: Terraform
version: ">= 1.3"
interfaces: # Optional
variables:
- name: service_account
connections:
- source:
source: github.com/terraform-google/terraform-google-service-accounts
version: ">= 4.4"
spec:
outputExpr: email
requirements:
roles: # Optional after IAM integrations
- level: Project
roles:
- roles/iam.serviceAccountUser
- roles/iap.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
providerVersions:
- source: hashicorp/google
version: ">= 6, < 7"
- source: hashicorp/google-beta
version: ">= 6, < 7"
ui: # Optional
input:
variables:
ca_root_module:
name: ca_root_module
title: CA Root Module
service_account:
name: service_account
title: Service Account
Importer depuis votre dépôt
Vous pouvez créer un composant App Design Center en important un module Terraform basé sur un seul produit Google Cloud . Si vous apportez des modifications à votre module Terraform dans votre dépôt, répétez ces étapes pour importer vos modifications.
Pour importer votre module Terraform, procédez comme suit :
Identifiez le catalogue dans lequel vous souhaitez créer votre composant.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACERemplacez les éléments suivants :
PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.
Pour en savoir plus, consultez gcloud design-center spaces catalogs list.
Créez un modèle de catalogue dans le catalogue privé de votre espace.
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-templateRemplacez les éléments suivants :
COMPONENT_TEMPLATE: ID du modèle de composant que vous souhaitez créer.PROJECT: ID de votre projet de gestion.CATALOG: ID de votre catalogue.LOCATION: ID de zone géographique.SPACE: ID de votre espace.
Pour en savoir plus, consultez gcloud design-center spaces catalogs templates create.
Créez une révision de modèle de catalogue basée sur le module Terraform de votre dépôt.
gcloud design-center spaces catalogs templates revisions create REVISION \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template=COMPONENT_TEMPLATE \ --developer-connect-repo=DEVELOPER_CONNECT_REPO \ --developer-connect-repo-ref=DEVELOPER_CONNECT_REPO_REF \ --developer-connect-repo-dir=DEVELOPER_CONNECT_REPO_DIR \ --metadata=METADATARemplacez les éléments suivants :
REVISION: ID de la révision que vous souhaitez créer.PROJECT: ID de votre projet de gestion.CATALOG: ID de votre catalogue.LOCATION: ID de zone géographique.SPACE: ID de votre espace.COMPONENT_TEMPLATE: ID du modèle que vous avez créé à l'étape précédente.DEVELOPER_CONNECT_REPO: dépôt Developer Connect à utiliser comme source. Exemple :projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repoDEVELOPER_CONNECT_REPO_REF: branche ou tag Git dans le dépôt. Par exemple,refs/tags/v1.0.0ourefs/heads/main.DEVELOPER_CONNECT_REPO_DIR: répertoire dans le dépôt. Exemple :modules/my-product- Pour spécifier les métadonnées du module Terraform, effectuez l'une des opérations suivantes :
- Pour utiliser votre propre fichier de métadonnées, remplacez
METADATApar votre fichiermetadata.yaml. - Pour utiliser automatiquement les fichiers de métadonnées situés dans votre dépôt, ne spécifiez pas l'option --metadata.
- Pour utiliser votre propre fichier de métadonnées, remplacez
Pour en savoir plus, consultez gcloud design-center spaces catalogs templates revisions create.
Partagez votre catalogue avec d'autres espaces.
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACERemplacez les éléments suivants :
SHARE: ID du partage que vous souhaitez créer.PROJECT: ID de votre projet de gestion.CATALOG: ID de votre catalogue.LOCATION: ID de zone géographique.SPACE: ID de votre espace.DESTINATION_SPACE: ID de l'espace de destination.
Pour en savoir plus, consultez gcloud design-center spaces catalogs shares create.
Créer un modèle d'application à l'aide de composants importés
Créez un modèle d'application à l'aide de vos composants importés et des composants fournis par Google.
Créer un modèle d'application
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACERemplacez 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.
Pour en savoir plus, consultez gcloud design-center spaces application-templates create.
Identifiez les URI de révision de modèle pour les composants que vous souhaitez ajouter au modèle.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uriRemplacez les éléments suivants :
PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.
Pour en savoir plus, consultez gcloud design-center spaces shared-templates list.
Ajoutez un composant à votre modèle d'application.
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URIRemplacez les éléments suivants :
COMPONENT: ID du composant que vous souhaitez ajouter au modèle.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.APPLICATION_TEMPLATE: ID du modèle d'application auquel vous ajoutez le composant.SHARED_TEMPLATE_URI: URI du modèle partagé du composant. Exemple :projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Pour en savoir plus, consultez gcloud design-center spaces application-templates components create.
Ajoutez un deuxième composant à votre modèle.
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2Remplacez les éléments suivants :
COMPONENT_2: ID du deuxième composant que vous souhaitez ajouter au modèle.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.APPLICATION_TEMPLATE: ID du modèle d'application auquel vous ajoutez le composant.SHARED_TEMPLATE_URI_2: URI du modèle partagé du deuxième composant. Exemple :projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Pour en savoir plus, consultez gcloud design-center spaces application-templates components create.
Créez une connexion entre les deux composants.
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=SHARED_TEMPLATE_URI_2Remplacez les éléments suivants :
CONNECTION: ID de la connexion que vous souhaitez ajouter au modèle.PROJECT: ID de votre projet de gestion.LOCATION: ID de zone géographique.SPACE: ID de votre espace.APPLICATION_TEMPLATE: ID du modèle d'application auquel vous ajoutez le composant.SHARED_TEMPLATE_URI_2: URI du modèle partagé du deuxième composant. Exemple :projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Pour en savoir plus, consultez gcloud design-center spaces application-templates components connections create.
Étapes suivantes
- Avant de déployer, créez une application.
- Déployer des applications
- Exportez votre code Terraform.