Compila repositorios de GitLab Enterprise Edition en una red privada

Cloud Build te permite crear activadores para compilar a partir de repositorios alojados en GitLab Enterprise Edition, lo que te permite ejecutar compilaciones en respuesta a eventos como envíos de confirmación o las solicitudes de combinación asociadas a tu repositorio de GitLab Enterprise Edition.

En esta página, se explica cómo puedes habilitar la funcionalidad de activadores en una instancia de la Edición Enterprise de Gitlab si se aloja en una red privada.

Antes de comenzar

  • Enable the Cloud Build, Secret Manager, Compute Engine, and Service Networking APIs.

    Enable the APIs

Compila repositorios de GitLab Enterprise Edition en una red privada

Si solo se puede acceder a tu instancia de GitLab Enterprise Edition red de VPC, debes configurar una del Directorio de servicios y compilar con grupos privados. El proyecto que contiene tu red de VPC puede existir en un al del Directorio de servicios. Sigue estas instrucciones para asegurarte de que se pueda acceder a tu instancia antes de la creación de activadores:

  1. Habilita el API de Directorio de servicios.

  2. Asegúrate de tener el rol de Administrador de IAM del proyecto otorgado al proyecto de Google Cloud en el que deseas crear tu servicio de Directory de servicios. Si deseas obtener información para otorgar roles de IAM, consulta Configura el acceso a los recursos de Cloud Build.

  3. Para configurar un servicio del Directorio de servicios, completa los siguientes pasos:

    1. Configura un espacio de nombres para tu proyecto de Google Cloud.

      La región que especifiques en tu espacio de nombres debe coincidir con la región especificar en tu conexión de host de Cloud Build.

    2. Configura un servicio en tu espacio de nombres.

    3. Configura un extremo para el servicio registrado.

      Cuando configures un extremo, debes usar una dirección IP interna y especificar un número de puerto HTTPS para que Cloud Build llegue a tu servicio.

    Para obtener más información sobre la configuración del acceso a redes privadas, consulta Configura el acceso a la red privada. El Directorio de servicios también proporciona integración en servicios como balanceadores de cargas y Google Kubernetes Engine (GKE). Para obtener más información, consulta Descripción general del Directorio de servicios y el balanceo de cargas o Descripción general del Directorio de servicios para GKE.

  4. Otorga acceso al Directorio de servicios al agente de servicio de Cloud Build:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding  PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.viewer"
    

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto de Cloud Build.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY es el ID de tu Proyecto de Google Cloud que contiene tu Directorio de servicios.
  5. Otorga acceso a los recursos de red de VPC al agente de servicio de Cloud Build:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.pscAuthorizedService"
    

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto de Cloud Build.
    • PROJECT_ID_CONTAINING_NETWORK_RESOURCE es el ID de tu Proyecto de Google Cloud que contiene tu recurso de red.
  6. Usa grupos privados para ejecutar tus compilaciones. Si no creaste un grupo privado, consulta Crea uno nuevo grupo privado.

  7. Sigue las instrucciones para Crea un activador de GitLab Enterprise Edition para compilar repositorios alojados en una instancia de GitLab Enterprise Edition.

    Si incluyes un certificado privado o firmado por ti cuando conectas tu host de GitLab Enterprise Edition a Cloud Build, debes configurar el URI de host como el nombre alternativo de sujeto (SAN) de tu certificado.

El activador de GitLab Enterprise Edition ahora invocará automáticamente las compilaciones tu instancia de GitLab Enterprise Edition según tu configuración.

Uso compartido de datos

Los datos que se envían a GitLab Enterprise Edition desde Cloud Build te ayudan identificar los activadores por nombre y ver los resultados de la compilación en tu GitLab Enterprise Edition.

Los siguientes datos se comparten entre Cloud Build y GitLab Edición Enterprise:

  • ID del proyecto de Google Cloud
  • Nombre del activador

¿Qué sigue?