Componentes de importación

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 Application Design Center (roles/designcenter.admin) o
Usuario de Application 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.

  1. Crea una conexión de Developer Connect.

    Para conocer los pasos, consulta Cómo conectarse a GitHub.

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

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

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

    Reemplaza lo siguiente:

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

  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
    
    

    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 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 METADATA por tu archivo metadata.yaml.
      • Para usar automáticamente los archivos de metadatos ubicados en tu repositorio, deja la marca --metadata sin especificar.

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

  1. Crear 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 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 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
    

    Reemplaza lo siguiente:

    Para obtener más información, consulta gcloud design-center spaces shared-templates list.

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

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

  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=COMPONENT_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 aplicación en la que agregarás la conexión.
    • COMPONENT: Es el ID del componente de origen.
    • COMPONENT_2: Es el ID del componente de destino.

    Para obtener más información, consulta gcloud design-center spaces application-templates components connections create.

¿Qué sigue?