Importer des composants

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) ou
Utilisateur 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.

  1. Créez une connexion Developer Connect.

    Pour connaître la procédure à suivre, consultez Se connecter à GitHub.

  2. 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 :

  1. Identifiez le catalogue dans lequel vous souhaitez créer votre composant.

      gcloud design-center spaces catalogs list \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    Remplacez 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.

  2. 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-template
    

    Remplacez 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.

  3. 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=METADATA
    
    

    Remplacez 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-repo
    • DEVELOPER_CONNECT_REPO_REF : branche ou tag Git dans le dépôt. Par exemple, refs/tags/v1.0.0 ou refs/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 METADATA par votre fichier metadata.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 en savoir plus, consultez gcloud design-center spaces catalogs templates revisions create.

  4. 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_SPACE
    

    Remplacez 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.

  1. Créer un modèle d'application

      gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    Remplacez 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.

  2. 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 \
      --uri
    

    Remplacez 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.

  3. 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_URI
    

    Remplacez 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.

  4. 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_2
    

    Remplacez 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.

  5. 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_2
    

    Remplacez 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