App Design Center admite varios Google Cloud productos que puedes agregar como componentes a tu aplicación. Para usar tu propia versión de estos componentes o agregar otros, importa tus módulos de Terraform a App Design Center.
Los módulos de Terraform son configuraciones reutilizables para Google Cloud productos. Importar módulos de Terraform te ayuda a hacer lo siguiente:
- Acelerar y controlar el desarrollo de aplicaciones
- Reutilizar las decisiones de diseño existentes en App Design Center
- Ayudar a los desarrolladores de aplicaciones a cumplir con las políticas de diseño establecidas
Cuando importas un módulo de Terraform, App Design Center crea una plantilla de componente correspondiente en el catálogo de tu espacio. Luego, puedes usar la plantilla como un componente en el diseño de la plantilla de tu aplicación.
Para obtener información sobre Terraform on Google Cloud, consulta lo siguiente:
- Descripción general de Terraform.
- Prácticas recomendadas para el estilo y la estructura generales.
- Prácticas recomendadas para módulos reutilizables.
Antes de comenzar
Pídele a tu administrador que te otorgue uno de los siguientes roles en la carpeta habilitada para la aplicación o el proyecto de administración:
- Administrador de App Design Center (
roles/designcenter.admin) - Usuario de App Design Center (
roles/designcenter.user)
Configura y, luego, 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 Google Cloud módulos de Terraform. Usarás esta conexión cuando importes.
Crea una conexión de Developer Connect.
Para conocer los pasos, consulta Conéctate a GitHub.
Crea un vínculo de repositorio de Developer Connect.
Para conocer los pasos, consulta Agrega vínculos de repositorio a las 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 si importas un módulo de Terraform basado en un solo Google Cloud producto. Si realizas cambios en tu 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 deseas 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 del 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-repo.DEVELOPER_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 del repositorio. Por ejemplo,modules/my-product.- Para especificar los metadatos del módulo de Terraform, haz 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 componentes proporcionados por Google.
Crea 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 URIs 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 la plantilla de tu 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 en la que agregas 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 agregas 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 agregas 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 la implementación, crea una aplicación.
- Implementa aplicaciones.
- Exporta tu código de Terraform.