Conéctate a un host de GitLab

En esta página, se explica cómo conectar un host de GitLab a Cloud Build.

Antes de comenzar

  • Habilita las API de Cloud Build and Secret Manager.

    Habilita las API

Conéctate a un host de GitLab

Antes de crear una conexión de host para tu instancia de GitLab, debes crear tokens de acceso personal en GitLab mediante los siguientes pasos:

  1. Accede a tu instancia de GitLab Enterprise Edition.

  2. En la página GitLab Enterprise Edition de tu instancia, haz clic en tu avatar en la esquina superior derecha.

  3. Haz clic en Editar perfil.

  4. En la barra lateral izquierda, selecciona Tokens de acceso.

    Verás la página Personal Access Tokens (Tokens de acceso personal).

  5. Crea un token de acceso con el permiso api para usarlo en la conexión y desconectar los repositorios.

  6. Crea un token de acceso con el permiso read_api para asegurarte de que los repositorios de Cloud Build puedan acceder al código fuente en los repositorios.

Consola

Para conectar tu host de GitLab a Cloud Build, sigue estos pasos:

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página repositorios

    Verás la página Repositories.

  2. En la parte superior de la página, selecciona la pestaña 2nd gen.

  3. En el selector de proyectos de la barra superior, selecciona tu proyecto de Google Cloud.

  4. Haz clic en Crear conexión de host para conectar un host nuevo a Cloud Build.

  5. En el panel izquierdo, selecciona GitLab como tu proveedor de código fuente.

  6. En la sección Configurar conexión, ingresa la siguiente información:

    1. Región: Selecciona una región para tu conexión.

    2. Nombre: Ingresa un nombre para tu conexión.

  7. En la sección Detalles del host, selecciona o ingresa la siguiente información:

    1. Proveedor de GitLab: Selecciona GitLab.com como tu proveedor.
  8. En la sección Personal access tokens, ingresa la siguiente información:

    1. Token de acceso a la API: Ingresa el token con el acceso al permiso api. Este token se usa para conectar y desconectar repositorios.

    2. Token de acceso a la API de lectura: ingresa el token con el acceso al permiso read_api. Los activadores de Cloud Build usan este token para acceder al código fuente en los repositorios.

  9. Haz clic en Conectar.

    Después de hacer clic en el botón Conectar, tus tokens de acceso personal se almacenarán de forma segura en Secret Manager. Después de la conexión del host, Cloud Build también crea un secreto de webhook por ti. Puedes ver y administrar tus secretos en la página de Secret Manager.

Creaste correctamente una conexión de GitLab.

gcloud

Antes de conectar tu host de GitLab a Cloud Build, completa los siguientes pasos para almacenar tus credenciales:

  1. Almacena tu token en Secret Manager.

  2. Crea un secreto de webhook en Secret Manager mediante la ejecución del siguiente comando:

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. Si almacenas tus secretos en un proyecto de Google Cloud diferente del que planeas usar para crear una conexión de host, ingresa el siguiente comando a fin de otorgar a tu proyecto acceso al agente de servicio de Cloud Build:

    PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
      --role="roles/secretmanager.admin"
    

    Aquí:

    • PROJECT_ID es tu ID del proyecto de Google Cloud.

Ahora puedes proceder a conectar tu host de GitLab a Cloud Build.

Completa los siguientes pasos:

Para conectar tu host de GitLab a Cloud Build, sigue estos pasos:

  1. Ingresa el siguiente comando para crear una conexión de GitLab:

    gcloud builds connections create gitlab CONNECTION_NAME \
      --host-uri=HOST_URI \
      --project=PROJECT_ID \
      --region=REGION \
      --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \
      --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \
      --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION
    

    Aquí:

    • CONNECTION_NAME es el nombre de la conexión.
    • HOST_URI es el URI de tu instancia de GitLab. Por ejemplo, https://my-gle-server.net
    • PROJECT_ID es tu ID del proyecto de Google Cloud.
    • REGION es la región de tu conexión.
    • API_TOKEN es el nombre de tu token con alcance api.
    • READ_TOKEN es el nombre de tu token con alcance read_api.
    • SECRET_VERSION es la versión de tu secreto.
    • WEBHOOK_SECRET es el secreto de tu webhook.

Creaste correctamente una conexión de GitLab.

¿Qué sigue?