Importar módulos de Terraform personalizados a Application Design Center te permite agregar tus propios parámetros de configuración de Google Cloud reutilizables como componentes en tus plantillas de aplicación. Cuando importas un módulo de Terraform, App Design Center crea una plantilla de componente en el catálogo de tu espacio para que los desarrolladores puedan reutilizar las decisiones y políticas de diseño establecidas.
Para obtener información sobre la creación de módulos de Terraform para Google Cloud, consulta lo siguiente:
Antes de comenzar
Para realizar las tareas de este documento, pídele a tu administrador que te otorgue los roles necesarios en la carpeta habilitada para apps o el proyecto de administración, como se indica en la siguiente tabla:
| Tarea | Roles obligatorios |
|---|---|
| Importa módulos de Terraform como componentes personalizados | Administrador de App Design Center (roles/designcenter.admin) oUsuario de App Design Center ( roles/designcenter.user) |
Para obtener más información sobre los roles, consulta Control de acceso con IAM.
Configura e importa tus módulos
Completa los siguientes pasos para conectarte a GitHub, crear un archivo de metadatos y, luego, importar un módulo de Terraform.
Conéctate a tu repositorio con Developer Connect
Crea una conexión de Developer Connect al repositorio de GitHub en el que almacenas tus módulos de Terraform de Google Cloud . Usarás esta conexión cuando realices la importación.
Crea una conexión de Developer Connect.
Para conocer los pasos, consulta Cómo conectarse a GitHub.
Crea un vínculo de repositorio de Developer Connect.
Para conocer los pasos, consulta Agrega vínculos de repositorios a conexiones existentes.
Opcional: Prepara los metadatos de tu módulo de Terraform
Cuando importas tu módulo de Terraform, puedes proporcionar tus propios metadatos o permitir que App Design Center cree un archivo de metadatos por ti.
Por ejemplo, el siguiente es un archivo metadata.yaml que puedes crear para una
cuenta de servicio:
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 desde tu repositorio
Puedes crear un componente de App Design Center importando un módulo de Terraform que se base en un solo producto de Google Cloud . Si realizas cambios en el módulo de Terraform en tu repositorio, repite estos pasos para importar los cambios.
Para importar tu módulo de Terraform, haz lo siguiente:
Identifica el catálogo en el que quieres crear tu componente.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACEReemplaza lo siguiente:
PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.
Para obtener más información, consulta gcloud design-center spaces catalogs list.
Crea una plantilla de catálogo en el catálogo privado de tu espacio.
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-templateReemplaza lo siguiente:
COMPONENT_TEMPLATE: Es el ID de la plantilla de componente que deseas crear.PROJECT: Es el ID de tu proyecto de administración.CATALOG: Es el ID de tu catálogo.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.
Para obtener más información, consulta gcloud design-center spaces catalogs templates create.
Crea una revisión de la plantilla del catálogo basada en el módulo de Terraform de tu repositorio.
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=METADATAReemplaza lo siguiente:
REVISION: Es el ID de la revisión que deseas crear.PROJECT: Es el ID de tu proyecto de administración.CATALOG: Es el ID de tu catálogo.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.COMPONENT_TEMPLATE: Es el ID de la plantilla que creaste en el paso anterior.DEVELOPER_CONNECT_REPO: Es el repositorio de Developer Connect que se usará como fuente. Por ejemplo,projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repoDEVELOPER_CONNECT_REPO_REF: Es la rama o etiqueta de Git en el repositorio. Por ejemplo,refs/tags/v1.0.0orefs/heads/main.DEVELOPER_CONNECT_REPO_DIR: Es el directorio en el repositorio. Por ejemplo,modules/my-product- Para especificar los metadatos del módulo de Terraform, realiza una de las siguientes acciones:
- Para usar tu propio archivo de metadatos,
reemplaza
METADATApor tu archivometadata.yaml. - Para usar automáticamente los archivos de metadatos ubicados en tu repositorio, deja la marca --metadata sin especificar.
- Para usar tu propio archivo de metadatos,
reemplaza
Para obtener más información, consulta gcloud design-center spaces catalogs templates revisions create.
Comparte tu catálogo con otros espacios.
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACEReemplaza lo siguiente:
SHARE: Es el ID del recurso compartido que deseas crear.PROJECT: Es el ID de tu proyecto de administración.CATALOG: Es el ID de tu catálogo.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.DESTINATION_SPACE: Es el ID del espacio de destino.
Para obtener más información, consulta gcloud design-center spaces catalogs shares create.
Crea una plantilla de aplicación con componentes importados
Crea una plantilla de aplicación con los componentes importados y los que proporciona Google.
Crear una plantilla de aplicación nueva
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACEReemplaza lo siguiente:
APPLICATION_TEMPLATE: Es el ID de la plantilla de aplicación que deseas crear.PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.
Para obtener más información, consulta gcloud design-center spaces application-templates create.
Identifica los URI de revisión de la plantilla para los componentes que deseas agregar a la plantilla.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uriReemplaza lo siguiente:
PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.
Para obtener más información, consulta gcloud design-center spaces shared-templates list.
Agrega un componente a tu plantilla de aplicación.
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_URIReemplaza lo siguiente:
COMPONENT: Es el ID del componente que deseas agregar a la plantilla.PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.APPLICATION_TEMPLATE: Es el ID de la plantilla de aplicación a la que agregarás el componente.SHARED_TEMPLATE_URI: Es el URI de la plantilla compartida del componente. Por ejemplo,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Para obtener más información, consulta gcloud design-center spaces application-templates components create.
Agrega un segundo componente a tu plantilla.
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_2Reemplaza lo siguiente:
COMPONENT_2: Es el ID del segundo componente que deseas agregar a la plantilla.PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.APPLICATION_TEMPLATE: Es el ID de la plantilla de aplicación en la que agregarás el componente.SHARED_TEMPLATE_URI_2: Es el URI de la plantilla compartida del segundo componente. Por ejemplo,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Para obtener más información, consulta gcloud design-center spaces application-templates components create.
Crea una conexión entre los dos componentes.
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_2Reemplaza lo siguiente:
CONNECTION: Es el ID de la conexión que deseas agregar a la plantilla.PROJECT: Es el ID de tu proyecto de administración.LOCATION: Es el ID de tu ubicación.SPACE: Es el ID de tu espacio.APPLICATION_TEMPLATE: Es el ID de la plantilla de aplicación en la que agregarás el componente.SHARED_TEMPLATE_URI_2: Es el URI de la plantilla compartida del segundo componente. Por ejemplo,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
Para obtener más información, consulta gcloud design-center spaces application-templates components connections create.
¿Qué sigue?
- Antes de implementar, crea una aplicación.
- Implementar aplicaciones.
- Exporta tu código de Terraform.