Import components

Application Design Center supports several Google Cloud products that you can add as components to your application. To use your own version of these components, or add other components, import your Terraform modules to App Design Center.

Terraform modules are reusable configurations for Google Cloud products. Importing Terraform modules helps you do the following:

  • Accelerate and govern application development.
  • Reuse your existing design decisions in App Design Center.
  • Help application developers adhere to your established design policies.

When you import a Terraform module, App Design Center creates a corresponding component template in your space's catalog. You can then use the template as a component in your application template design.

To learn about Terraform on Google Cloud, see the following:

Before you begin

Ask your administrator to grant you one of the following roles on the app-enabled folder or management project:

  • Application Design Center Admin ( roles/designcenter.admin ).
  • Application Design Center User ( roles/designcenter.user ).

Configure and import your modules

Complete the following steps to connect to GitHub, create a metadata file, and import a Terraform module.

Connect to your repository using Developer Connect

Create a Developer Connect connection to the GitHub repository where you store your Google Cloud Terraform modules. You'll use this connection when you import.

  1. Create a Developer Connect connection.

    For steps, see Connect to GitHub .

  2. Create a Developer Connect repository link.

    For steps, see Add repository links to existing connections .

When you import your Terraform module, you can supply your own metadata, or let App Design Center create a metadata file for you.

For example, the following is a metadata.yaml file that you might create for a service account:

   
 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 
 

Import from your repository

You can create an App Design Center component by importing a Terraform module that is based on a single Google Cloud product. If you make changes to your Terraform module in your repository, repeat these steps to import your changes.

To import your Terraform module, do the following:

  1. Identify the catalog where you want to create your component.

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

    Replace the following:

    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.

    For more information, see gcloud design-center spaces catalogs list .

  2. Create a catalog template in your space's private catalog.

       
    gcloud  
    design-center  
    spaces  
    catalogs  
    templates  
    create  
     COMPONENT_TEMPLATE 
      
     \ 
      
    --project = 
     PROJECT 
      
     \ 
      
    --catalog = 
     CATALOG 
      
     \ 
      
    --location = 
     LOCATION 
      
     \ 
      
    --space = 
     SPACE 
      
     \ 
      
    --template-category = 
    component-template 
    

    Replace the following:

    • COMPONENT_TEMPLATE : The template ID for the component template that you want to create.
    • PROJECT : Your management project ID.
    • CATALOG : Your catalog ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.

    For more information, see gcloud design-center spaces catalogs templates create .

  3. Create a catalog template revision based on the Terraform module in your repository.

       
    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 
      
     | 
      
    --use-repo 
    

    Replace the following:

    • REVISION : The revision ID for the revision that you want to create.
    • PROJECT : Your management project ID.
    • CATALOG : Your catalog ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.
    • COMPONENT_TEMPLATE : The template ID that you created in the previous step.
    • DEVELOPER_CONNECT_REPO : The Developer Connect repository to use as a source. For example, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo .
    • DEVELOPER_CONNECT_REPO_REF : The Git branch or tag in the repository. For example, refs/tags/v1.0.0 or refs/heads/main .
    • DEVELOPER_CONNECT_REPO_DIR : The directory in the repository. For example, modules/my-product .
    • To specify the Terraform module metadata, do one of the following:
      • To use your own metadata file , replace METADATA with your metadata.yaml file.
      • To automatically generate a metadata file in your repository, specify the --use-repo flag.

    For more information, see gcloud design-center spaces catalogs templates revisions create .

  4. Share your catalog with other spaces.

       
    gcloud  
    design-center  
    spaces  
    catalogs  
    shares  
    create  
     SHARE 
      
     \ 
      
    --project = 
     PROJECT 
      
     \ 
      
    --catalog = 
     CATALOG 
      
     \ 
      
    --location = 
     LOCATION 
      
     \ 
      
    --space = 
     SPACE 
      
     \ 
      
    --destination-space = 
     DESTINATION_SPACE 
     
    

    Replace the following:

    • SHARE : The share ID for the share that you want to create.
    • PROJECT : Your management project ID.
    • CATALOG : Your catalog ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.
    • DESTINATION_SPACE : The destination space ID.

    For more information, see gcloud design-center spaces catalogs shares create .

Create an application template using imported components

Create an application template using your imported components and Google-provided components.

  1. Create a new application template.

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

    Replace the following:

    • APPLICATION_TEMPLATE : The template ID for the application template that you want to create.
    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.

    For more information, see gcloud design-center spaces application-templates create .

  2. Identify the template revision URIs for the components that you want to add to the template.

       
    gcloud  
    design-center  
    spaces  
    shared-templates  
    list  
     \ 
      
    --project = 
     PROJECT 
      
     \ 
      
    --location = 
     LOCATION 
      
     \ 
      
    --space = 
     SPACE 
      
     \ 
      
    --uri 
    

    Replace the following:

    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.

    For more information, see gcloud design-center spaces shared-templates list .

  3. Add a component to your application template.

       
    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 
     
    

    Replace the following:

    • COMPONENT : The component ID for the component that you want to add to the template.
    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.
    • APPLICATION_TEMPLATE : The template ID for the application template where you're adding the component.
    • SHARED_TEMPLATE_URI : The component shared template URI. For example, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 .

    For more information, see gcloud design-center spaces application-templates components create .

  4. Add a second component to your template.

       
    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 
     
    

    Replace the following:

    • COMPONENT_2 : The component ID for the second component that you want to add to the template.
    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.
    • APPLICATION_TEMPLATE : The template ID for the application template where you're adding the component.
    • SHARED_TEMPLATE_URI_2 : The second component shared template URI. For example, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 .

    For more information, see gcloud design-center spaces application-templates components create .

  5. Create a connection between the two components.

       
    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 
     
    

    Replace the following:

    • CONNECTION : The connection ID for the connection that you want to add to the template.
    • PROJECT : Your management project ID.
    • LOCATION : Your location ID.
    • SPACE : Your space ID.
    • APPLICATION_TEMPLATE : The template ID for the application template where you're adding the component.
    • SHARED_TEMPLATE_URI_2 : The second component shared template URI. For example, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 .

    For more information, see gcloud design-center spaces application-templates components connections create .

What's next

Design a Mobile Site
View Site in Mobile | Classic
Share by: