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) oApplication 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.
Crea una connessione Developer Connect.
Per i passaggi, vedi Connettiti a GitHub.
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:
Identifica il catalogo in cui vuoi creare il componente.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACESostituisci quanto segue:
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 catalogs list.
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-templateSostituisci 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.
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=METADATASostituisci 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.0orefs/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
METADATAcon il tuo filemetadata.yaml. - Per utilizzare automaticamente i file dei metadati che si trovano nel tuo repository, non specificare il flag --metadata.
- Per utilizzare il tuo file di metadati,
sostituisci
Per saperne di più, consulta gcloud design-center spaces catalogs templates revisions create.
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_SPACESostituisci 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.
Crea un nuovo modello di applicazione.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACESostituisci 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.
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 \ --uriSostituisci quanto segue:
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 shared-templates list.
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_URISostituisci 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.
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_2Sostituisci 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.
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_2Sostituisci 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
- Prima di eseguire il deployment, crea un'applicazione.
- Esegui il deployment delle applicazioni.
- Esporta il codice Terraform.