Componentes de importación

Application 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 los productos de Google Cloud . Importar módulos de Terraform te ayuda a hacer lo siguiente:

  • Acelerar y controlar el desarrollo de aplicaciones
  • Reutiliza tus 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 componente en el diseño de la plantilla de tu aplicación.

Para obtener información sobre Terraform en Google Cloud, consulta los siguientes vínculos:

Antes de comenzar

Pídele a tu administrador que te otorgue uno de los siguientes roles en la carpeta habilitada para la app o en el proyecto de administración:

  • Administrador de App Design Center (roles/designcenter.admin)
  • Usuario de App Design Center (roles/designcenter.user)

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 Google Cloud Terraform. Usarás esta conexión cuando realices la importación.

  1. Crea una conexión de Developer Connect.

    Para conocer los pasos, consulta Conéctate a GitHub.

  2. Crea un vínculo al 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 dejar que App Design Center cree un archivo de metadatos por ti.

Por ejemplo, el siguiente es un archivo metadata.yaml que podrías 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 del Centro de diseño de apps importando un módulo de Terraform basado en un solo producto de Google Cloud . 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:

  1. Identifica el catálogo en el que deseas crear tu componente.

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

    Reemplaza 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.

  2. 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-template
    

    Reemplaza 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.

  3. 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=METADATA | --use-repo
    
    

    Reemplaza 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.0 o refs/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 METADATA por tu archivo metadata.yaml.
      • Para generar automáticamente un archivo de metadatos en tu repositorio, especifica la marca --use-repo.

    Para obtener más información, consulta gcloud design-center spaces catalogs templates revisions create.

  4. 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_SPACE
    

    Reemplaza lo siguiente:

    • SHARE: Es el ID del uso 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 que importaste y los que proporciona Google.

  1. Crea una plantilla de aplicación nueva.

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

    Reemplaza lo siguiente:

    • APPLICATION_TEMPLATE: Es el ID de la plantilla de la 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.

  2. 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 \
      --uri
    

    Reemplaza 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.

  3. 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_URI
    

    Reemplaza 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 la aplicación en 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.

  4. 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_2
    

    Reemplaza lo siguiente:

    • COMPONENT_2: Es el ID del componente 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 la aplicación en la que agregarás el componente.
    • SHARED_TEMPLATE_URI_2: Es el URI de la segunda plantilla compartida de componentes. 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.

  5. 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_2
    

    Reemplaza 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 la aplicación en la que agregarás el componente.
    • SHARED_TEMPLATE_URI_2: Es el URI de la segunda plantilla compartida de componentes. 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?