Conéctate a un host de GitLab Enterprise Edition

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

Antes de comenzar

  • Habilita las API de Cloud Build and Secret Manager.

    Habilita las API

Configuración

Antes de crear una conexión de host de GitLab Enterprise Edition, debes obtener una clave de API para autenticar y aceptar eventos entrantes de GitLab Enterprise Edition. Además, debes crear tokens de acceso personal en GitLab Enterprise Edition para crear webhooks y recuperar datos del repositorio.

En esta sección, se analizan los pasos que debes completar antes de crear un activador de GitLab Enterprise Edition.

Obtén una clave de API

Para conectar los repositorios de host y autenticar los eventos de webhook entrantes, necesitas una clave de API.

Para obtener una clave de API, haz lo siguiente:

  1. Abre la página Credenciales en Google Cloud Console:

    Abre la página Credenciales.

  2. Haz clic en Crear credenciales.

  3. Haga clic en Clave de API.

    Verás un diálogo con tu clave de API creada. Anota tu clave de API.

  4. Si deseas restringir tu clave para aplicaciones de productos, haz clic en Restringir clave a fin de completar los pasos adicionales a fin de proteger tu clave. De lo contrario, haga clic en Cerrar.

    Para obtener información sobre cómo restringir tu clave, consulta Aplica restricciones de clave de API.

Crea tokens de acceso personal

Debes crear dos tokens de acceso personales en GitLab Enterprise Edition para realizar las siguientes tareas:

Después de crear tus tokens de acceso personal, guarda los valores de los tokens de manera temporal, por ejemplo, en un archivo de texto sin formato. Luego, agregarás los tokens a Secret Manager, un almacén de credenciales que usarás con Cloud Build en pasos posteriores. Los tokens se usarán para conectar tu repositorio de GitLab Enterprise Edition a Cloud Build.

Conéctate a un host de GitLab Enterprise Edition

Consola

Para conectar el host de GitLab Enterprise Edition a Cloud Build con Google Cloud Console, sigue estos pasos:

  1. Abre la página Administrar repositorios en Google Cloud Console:

    Abrir la página Administrar repositorios

  2. Selecciona una Región en el menú desplegable.

  3. Haz clic en Conectar host.

  4. Selecciona GitLab Enterprise Edition.

    Aparecerá el panel Conectar host.

    Ingresa la siguiente información para conectar tu instancia de GitLab Enterprise Edition a Cloud Build:

    • Nombre: Es el nombre de la conexión de host.

    • URL de host: Es la URL de host de la instancia de GitLab Enterprise Edition. Por ejemplo, https://gitlab.example.com

    • Clave de API de Google Cloud: La clave de API que se usa para autenticar tus credenciales.

    • [OPCIONAL] Certificado de CA: Su certificado privado o autofirmado. El certificado no debe superar los 10 KB y debe estar en formato PEM (.pem, .cer o .crt). Si esta sección se deja en blanco, se usa un conjunto de certificados predeterminado.

    • Nombre de usuario: el nombre de usuario de tu cuenta de GitLab Enterprise Edition. Esta cuenta debe tener acceso de mantenimiento a los repositorios que deseas conectar con Cloud Build.

    • Token de acceso a la API de lectura: el token de acceso personal a tu cuenta de GitLab Enterprise Edition con permisos de lectura.

    • Token de acceso a la API: el token de acceso personal a la cuenta de GitLab Enterprise Edition con permisos de API en los proyectos y repositorios.

    • Tipo de conexión: Selecciona Internet pública si Cloud Build se conecta a tu instancia a través de Internet pública. Selecciona Acceso a la red privada si Cloud Build conecta tu instancia a través de una red de VPC existente mediante el Directorio de servicios.

    • [OPCIONAL] Servicio de Directorio de servicios: si seleccionas Acceso a la red privada como tu Tipo de conexión, ingresa el nombre de tu servicio de Directorio de servicios. Si deseas obtener más información, consulta Usa el Directorio de servicios para el acceso privado o Compila repositorios desde GitLab Enterprise Edition en una red privada.

  5. Haz clic en Conectar host.

    Aparecerá el panel Conectar repositorio.

    Después de crear una conexión con el host, tus tokens de acceso personal y tu clave de API se almacenan de forma segura en Secret Manager. Después de la conexión con el host, Cloud Build también crea un secreto de webhook por ti. Puedes ver y administrar tus secretos en la página del Administrador de secretos.

gcloud

Para conectar tu host de GitLab Enterprise Edition a Cloud Build mediante los comandos de gcloud, debes ejecutar el comando gcloud alpha builds enterprise-config gitlab create en tu terminal. A diferencia de conectar el host con Google Cloud Console, deberás almacenar de forma manual los tokens de acceso personales, la clave de API y el secreto de webhook en el Administrador de secretos antes de ejecutar el siguiente comando:

gcloud alpha builds enterprise-config gitlab create
    --name=GITLAB_ENTERPRISE_EDITION_CONFIG_NAME \
    --region=REGION \
    --user-name=USERNAME \
    --host-uri=HOST_URI \
    --api-access-token-secret-version=API_ACCESS_TOKEN_SECRET_VERSION \
    --read-access-token-secret-version=READ_ACCESS_TOKEN_SECRET_VERSION \
    --webhook-secret-secret-version=WEBHOOK_SECRET_SECRET_VERSION \
    --api-key-secret-version=API_KEY_SECRET_VERSION \
    --service-directory-service=SERVICE_DIRECTORY_SERVICE \
    --ssl-ca-file=SSL_CA_FILE

Reemplaza lo siguiente:

  • GITLAB_ENTERPRISE_EDITION_CONFIG_NAME es el nombre de tu configuración de GitLab Enterprise Edition.
  • REGION es la región en la que se encuentra la configuración de GitLab Enterprise Edition.

  • USERNAME es tu nombre de usuario de GitLab Enterprise Edition.

  • HOST_URI es el URI del host de GitLab Enterprise Edition.

  • API_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso a la API almacenado en Secret Manager. El formato esperado para los secretos almacenados en Secret Manager es projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Puedes especificar latest como tu versión para usar la última versión de tu secreto. Esto se aplica a cada recurso almacenado en Secret Manager.

  • READ_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso de lectura almacenado en Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION es el nombre del recurso de tu secreto de webhook almacenado en Secret Manager.

  • API_KEY_SECRET_VERSION es la clave de API de Google Cloud.

  • [Opcional] SERVICE_DIRECTORY_SERVICE es el nombre del Directorio de servicios que se usa para comunicarse con la instancia de GitLab Enterprise Edition.

  • [Opcional] SSL_CA_FILE es tu certificado SSL para usar en las solicitudes a GitLab Enterprise Edition. El certificado debe estar en formato PEM. Puedes usar la ruta de archivo local para subir tu certificado.

API

Para conectar tu host de GitLab Enterprise Edition a Cloud Build con la API de Cloud Build, usa la siguiente plantilla JSON. A diferencia de conectar el host con Google Cloud Console, debes almacenar de forma manual los tokens de acceso personales y el secreto de webhook en el Administrador de secretos antes de llamar a la API:

  {
      "username": "USERNAME",
      "secrets": {
        "apiAccessTokenVersion": "API_ACCESS_TOKEN_SECRET_VERSION",
        "readAccessTokenVersion": "READ_ACCESS_TOKEN_SECRET_VERSION",
        "webhookSecretVersion": "WEBHOOK_SECRET_SECRET_VERSION",
        "apiKeyVersion": "API_KEY_SECRET_VERSION"
      },
      "enterpriseConfig": {
        "hostUri": "HOST_URI",
        "sslCa": "SSL_CA",
        "serviceDirectoryConfig": {
          "service: "SERVICE_DIRECTORY_SERVICE"
        }
      }
  }

Reemplaza lo siguiente:

  • USERNAME es tu nombre de usuario de GitLab Enterprise Edition.
  • API_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso a la API almacenado en Secret Manager. Es posible que debas otorgar la función de Secret Manager a tu cuenta de servicio de Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Para obtener más información, consulta Otorga funciones de administrador de secretos a tu cuenta de servicio.

  • READ_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso de lectura almacenado en Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION es el nombre del recurso de tu secreto de webhook almacenado en Secret Manager.

  • API_KEY_SECRET_VERSION es la clave de API de Google Cloud.

  • HOST_URI es el URI del host de tu instancia de GitLab Enterprise Edition.

  • [Opcional] SSL_CA es tu certificado SSL para usar en las solicitudes a GitLab Enterprise Edition. El certificado debe estar en formato PEM y proporcionarse como una string.

  • [Opcional] SERVICE_DIRECTORY_SERVICE es el nombre del servicio del Directorio de servicios que se usa para comunicarse con tu instancia de GitLab Enterprise Edition.

Ingresa el siguiente comando curl en tu terminal:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/gitLabConfigs?gitlabConfigId=GITLAB_ENTERPRISE_EDITION_CONFIG_NAME -d @config.json

Reemplaza lo siguiente:

  • PROJECT_ID es tu ID del proyecto de Cloud.
  • REGION es la región en la que se encuentra la configuración de GitLab Enterprise Edition.

  • GITLAB_ENTERPRISE_EDITION_CONFIG_NAME es el nombre de tu configuración de GitLab Enterprise Edition.

¿Qué sigue?