Compila repositorios a partir de GitLab Enterprise Edition en una red privada

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

En esta página, se explica cómo puedes habilitar la función de activación en una instancia de GitLab Enterprise Edition si la instancia está alojada en una red privada.

Antes de comenzar

  • Habilita las API de Cloud Build, Secret Manager, Compute Engine, and Service Networking.

    Habilita las API

Compila repositorios a partir de GitLab Enterprise Edition en una red privada

Si solo se puede acceder a tu instancia de GitLab Enterprise Edition dentro de una red de VPC, debes configurar un servicio de Directorio de servicios y compilar con grupos privados. El proyecto que contiene tu red de VPC puede existir en un proyecto diferente del que contiene el servicio del Directorio de servicios. Usa las siguientes instrucciones para asegurarte de que se pueda acceder a tu instancia antes de crear activadores:

  1. Habilita la API de Service Directory.

  2. Asegúrate de tener la función de Administrador de IAM del proyecto otorgada al proyecto de Google Cloud en el que deseas crear el servicio del Directorio de servicios. Para obtener información sobre cómo otorgar funciones de IAM, consulta Configura el acceso a los recursos de Cloud Build.

  3. Para configurar un servicio del Directorio de servicios, sigue estos pasos:

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

      La región que especificas en el espacio de nombres debe coincidir con la región que especifiques en la 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 configuras 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 redes privadas. El Directorio de servicios también proporciona integración en servicios como los balanceadores de cargas y Google Kubernetes Engine (GKE). Para obtener más información, consulta Descripción general del Directorio de servicios y del 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_RESOURCE \
       --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
       --role="roles/servicedirectory.viewer"
    

    Donde:

    • PROJECT_ID es tu ID del proyecto de Google Cloud.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE es el ID del proyecto que contiene el recurso del Directorio de servicios.
  5. Otorga la función de Visualizador del directorio de servicios a tu cuenta de servicio de Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com.

  6. Otorga la función Servicio autorizado de Private Service Connect a tu cuenta de servicio de Cloud Build para permitir el acceso a tu recurso de red de VPC, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Debes otorgar la función en el proyecto que contiene tu red de VPC.

  7. Usa grupos privados para ejecutar tus compilaciones. Si no creaste un grupo privado, consulta Crea un grupo privado nuevo.

  8. Sigue las instrucciones para crear un activador de GitLab Enterprise Edition y compilar repositorios alojados en una instancia de GitLab Enterprise Edition.

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

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

Uso compartido de datos

Los datos enviados a GitLab Enterprise Edition desde Cloud Build te ayudan a identificar los activadores por nombre y a ver los resultados de la compilación en los repositorios de GitLab Enterprise Edition.

Los siguientes datos se comparten entre Cloud Build y GitLab Enterprise Edition:

  • ID del proyecto de Google Cloud
  • Nombre del activador

¿Qué sigue?