Importare componenti

L'importazione di moduli Terraform personalizzati in Application Design Center ti consente di aggiungere le tue configurazioni Google Cloud riutilizzabili come componenti nei template delle applicazioni. Quando importi un modulo Terraform, App Design Center crea un modello di componente nel catalogo del tuo spazio, in modo che gli sviluppatori possano riutilizzare le decisioni di progettazione e le policy stabilite.

Per informazioni di base sulla creazione di moduli Terraform per Google Cloud, consulta quanto segue:

Prima di iniziare

Per eseguire le attività descritte in questo documento, chiedi all'amministratore di concederti i ruoli necessari per la cartella app o il progetto di gestione, come elencato nella tabella seguente:

Attività Ruoli obbligatori
Importa i moduli Terraform come componenti personalizzati Application Design Center Admin (roles/designcenter.admin) o
Application Design Center User (roles/designcenter.user)

Per saperne di più sui ruoli, consulta Controllo dell'accesso con IAM.

Configura e importa i moduli

Completa i seguenti passaggi per connetterti a GitHub, creare un file di metadati e importare un modulo Terraform.

Connettiti al repository utilizzando Developer Connect

Crea una connessione di Developer Connect al repository GitHub in cui archivi i moduli Terraform Google Cloud . Utilizzerai questa connessione durante l'importazione.

  1. Crea una connessione Developer Connect.

    Per i passaggi, vedi Connettiti a GitHub.

  2. Crea un link al repository Developer Connect.

    Per i passaggi, vedi Aggiungi link ai repository alle connessioni esistenti.

(Facoltativo) Prepara i metadati del modulo Terraform

Quando importi il modulo Terraform, puoi fornire i tuoi metadati o consentire ad App Design Center di creare un file di metadati per te.

Ad esempio, di seguito è riportato un file metadata.yaml che potresti creare per un account di servizio:

  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

Importa dal tuo repository

Puoi creare un componente di App Design Center importando un modulo Terraform basato su un singolo prodotto Google Cloud . Se apporti modifiche al modulo Terraform nel repository, ripeti questi passaggi per importare le modifiche.

Per importare il modulo Terraform, segui questi passaggi:

  1. Identifica il catalogo in cui vuoi creare il componente.

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

    Sostituisci quanto segue:

    Per saperne di più, consulta gcloud design-center spaces catalogs list.

  2. Crea un template di catalogo nel catalogo privato del tuo spazio.

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

    Sostituisci quanto segue:

    • COMPONENT_TEMPLATE: l'ID del template del componente che vuoi creare.
    • PROJECT: l'ID del tuo progetto di gestione.
    • CATALOG: l'ID catalogo.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.

    Per saperne di più, consulta gcloud design-center spaces catalogs templates create.

  3. Crea una revisione del template di catalogo basata sul modulo Terraform nel tuo 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
    
    

    Sostituisci quanto segue:

    • REVISION: l'ID della revisione che vuoi creare.
    • PROJECT: l'ID del tuo progetto di gestione.
    • CATALOG: l'ID catalogo.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.
    • COMPONENT_TEMPLATE: l'ID del template creato nel passaggio precedente.
    • DEVELOPER_CONNECT_REPO: il repository Developer Connect da utilizzare come origine. Ad esempio, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo.
    • DEVELOPER_CONNECT_REPO_REF: il branch o il tag Git nel repository. Ad esempio: refs/tags/v1.0.0 o refs/heads/main.
    • DEVELOPER_CONNECT_REPO_DIR: la directory nel repository. Ad esempio, modules/my-product.
    • Per specificare i metadati del modulo Terraform, esegui una delle seguenti operazioni:
      • Per utilizzare il tuo file di metadati, sostituisci METADATA con il tuo file metadata.yaml.
      • Per utilizzare automaticamente i file dei metadati che si trovano nel tuo repository, non specificare il flag --metadata.

    Per saperne di più, consulta gcloud design-center spaces catalogs templates revisions create.

  4. Condividi il tuo catalogo con altri spazi.

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

    Sostituisci quanto segue:

    • SHARE: l'ID della condivisione che vuoi creare.
    • PROJECT: l'ID del tuo progetto di gestione.
    • CATALOG: l'ID catalogo.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.
    • DESTINATION_SPACE: l'ID dello spazio di destinazione.

    Per saperne di più, consulta gcloud design-center spaces catalogs shares create.

Crea un modello di applicazione utilizzando i componenti importati

Crea un modello di applicazione utilizzando i componenti importati e quelli forniti da Google.

  1. Crea un nuovo modello di applicazione.

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

    Sostituisci quanto segue:

    • APPLICATION_TEMPLATE: l'ID del template dell'applicazione che vuoi creare.
    • PROJECT: l'ID del tuo progetto di gestione.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.

    Per saperne di più, consulta gcloud design-center spaces application-templates create.

  2. Identifica gli URI delle revisioni dei modelli per i componenti che vuoi aggiungere al modello.

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

    Sostituisci quanto segue:

    Per saperne di più, consulta gcloud design-center spaces shared-templates list.

  3. Aggiungi un componente al modello di applicazione.

      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
    

    Sostituisci quanto segue:

    • COMPONENT: l'ID del componente che vuoi aggiungere al template.
    • PROJECT: l'ID del tuo progetto di gestione.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.
    • APPLICATION_TEMPLATE: l'ID del template dell'applicazione a cui stai aggiungendo il componente.
    • SHARED_TEMPLATE_URI: l'URI del modello condiviso del componente. Ad esempio, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Per saperne di più, consulta gcloud design-center spaces application-templates components create.

  4. Aggiungi un secondo componente al modello.

      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
    

    Sostituisci quanto segue:

    • COMPONENT_2: l'ID componente del secondo componente che vuoi aggiungere al template.
    • PROJECT: l'ID del tuo progetto di gestione.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.
    • APPLICATION_TEMPLATE: l'ID del template dell'applicazione a cui stai aggiungendo il componente.
    • SHARED_TEMPLATE_URI_2: l'URI del modello condiviso del secondo componente. Ad esempio, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Per saperne di più, consulta gcloud design-center spaces application-templates components create.

  5. Crea una connessione tra i due componenti.

      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
    

    Sostituisci quanto segue:

    • CONNECTION: l'ID connessione per la connessione che vuoi aggiungere al template.
    • PROJECT: l'ID del tuo progetto di gestione.
    • LOCATION: ID località.
    • SPACE: l'ID dello spazio.
    • APPLICATION_TEMPLATE: l'ID del template dell'applicazione a cui stai aggiungendo il componente.
    • SHARED_TEMPLATE_URI_2: l'URI del modello condiviso del secondo componente. Ad esempio, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Per saperne di più, consulta gcloud design-center spaces application-templates components connections create.

Passaggi successivi