Conéctese a un host del centro de datos de Bitbucket

En esta página, se explica cómo conectarse a un host del centro de datos de Bitbucket a Cloud Build.

Antes de comenzar

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

    Habilita las API

Configuración

Antes de conectar el host del centro de datos de Bitbucket, debes obtener una clave de API para autenticar y aceptar eventos entrantes del centro de datos de Bitbucket. Además, debes otorgar permisos de IAM en tu proyecto de Google Cloud para crear tokens de acceso personal en el centro de datos de Bitbucket a fin de crear webhooks y recuperar datos de repositorio.

Obtén una clave de API

Para conectar los repositorios del 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. Haz 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 la clave para las aplicaciones de producto, haz clic en Restringir clave a fin de completar los pasos adicionales para proteger la clave. De lo contrario, haga clic en Cerrar.

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

Crea tokens de acceso personal

Debes crear dos tokens de acceso personal en el centro de datos de Bitbucket para realizar las siguientes tareas:

Estos tokens de acceso personal son los permisos mínimos necesarios. Puedes configurar permisos adicionales en el centro de datos de Bitbucket según sea necesario. Por ejemplo, puedes seleccionar la cuenta del centro de datos de Bitbucket para tener acceso solo a un subconjunto de repositorios de tu instancia de centro de datos de Bitbucket a fin de tener un control más preciso sobre lo que está disponible en Cloud Build.

Después de crear tus tokens de acceso personal, guarda los valores de tus tokens de manera segura para conectarte a tu repositorio del centro de datos de Bitbucket.

Cómo conectarse a un host del centro de datos de Bitbucket

Console

Para conectar el host de tu centro de datos de Bitbucket 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. Haz clic en Conectar host.

    Verá el panel Conectar host.

    Ingresa la siguiente información para conectar tu instancia de centro de datos de Bitbucket a Cloud Build:

    • URL del host: Es la URL del host de la instancia de centro de datos de Bitbucket. Por ejemplo, https://bbs.example-test.com:7990.
    • Clave de API de Google Cloud: tu clave de API que se usa para autenticar tus credenciales.
    • Certificado de CA: Certificado 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 predeterminado de certificados.
    • Nombre de usuario: el nombre de usuario de tu cuenta del centro de datos de Bitbucket. Esta cuenta debe tener acceso de administrador a los repositorios que deseas conectar con Cloud Build.
    • Token de acceso de lectura: Es el token de acceso personal de tu cuenta del centro de datos de Bitbucket con permisos de lectura.
    • Token de acceso de administrador: Es el token de acceso personal de tu cuenta del centro de datos de Bitbucket con permisos de administrador en proyectos y repositorios.
    • [OPCIONAL] Proyecto de red: El ID del proyecto de red correspondiente a la red local.
    • [OPCIONAL] Nombre de la red: El nombre de tu red local.
  3. Haz clic en Conectar host.

    Si tu instancia de centro de datos de Bitbucket está en una red con intercambio de tráfico, la conexión del host puede tardar varios minutos en completarse.

    Se te redireccionará al panel Conectar repositorio.

    Después de crear una conexión de host, tus tokens de acceso personales y tu secreto de webhook se almacenarán de forma segura en Secret Manager. Puedes ver y administrar tus Secrets en la página del Secret Manager.

gcloud

Para conectar el host del centro de datos de Bitbucket a Cloud Build con comandos gcloud, debes ejecutar el comando gcloud alpha builds enterprise-config bitbucketserver create en la terminal. A diferencia de conectar el host con Google Cloud Console, deberás almacenar de forma manual los tokens de acceso personales y el secreto de webhook en Secret Manager antes de ejecutar el siguiente comando:

gcloud alpha builds enterprise-config bitbucketserver create
--name=BITBUCKET_DATA_CENTER_CONFIG_NAME \
--user-name=USERNAME \
--host-uri=HOST_URI \
--admin-access-token-secret-version=ADMIN_ACCESS_TOKEN_SECRET_VERSION \
--read-access-token-secret-version=READ_ACCESS_TOKEN_SECRET_VERSION \
--webhook-secret-secret-version=WEBHOOK_SECRET_SECRET_VERSION \
--api-key=API_KEY \
--peered-network=PEERED_NETWORK \
--ssl-ca-file=SSL_CA_FILE

Donde:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de tu configuración del centro de datos de Bitbucket.
  • USERNAME es tu nombre de usuario del centro de datos de Bitbucket.
  • HOST_URI es el URI del host de tu instancia de Bitbucket Data Cemter.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso de administrador almacenado en Secret Manager. El formato esperado para los Secrets 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 del 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 es la clave de API de Google Cloud.
  • PEERED_NETWORK es la red de VPC para conectarse a las instancias del centro de datos de Bitbucket (opcional).
  • SSL_CA_FILE es la ruta a un archivo local que contiene el certificado SSL que se usará para las solicitudes al centro de datos de Bitbucket. El certificado debe estar en formato PEM.

API

Para conectar el host de tu centro de datos de Bitbucket a Cloud Build con la API, usa la siguiente plantilla de JSON. A diferencia de conectar tu host con Google Cloud Console, debes almacenar manualmente tus tokens de acceso personales y tu secreto de webhook en Secret Manager antes de llamar a la API:

  {
      "hostUri": HOST_URI,
      "username": USERNAME,
      "apiKey": API_KEY,
      "secrets": {
        "adminAccessTokenVersionName": ADMIN_ACCESS_TOKEN_SECRET_VERSION,
        "readAccessTokenVersionName": READ_ACCESS_TOKEN_SECRET_VERSION,
        "webhookSecretVersionName": WEBHOOK_SECRET_SECRET_VERSION,
      },
      "peeredNetwork": PEERED_NETWORK,
      "sslCa": SSL_CERTIFICATE
  }

Donde:

  • HOST_URI es el URI del host de tu instancia de centro de datos de Bitbucket.
  • USERNAME es tu nombre de usuario del centro de datos de Bitbucket.
  • API_KEY es la clave de API de Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION es el nombre del recurso de tu token de acceso de administrador almacenado en Secret Manager. Es posible que debas otorgar la función de administrador de secretos a tu cuenta de servicio de Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Para obtener más información, consulta Cómo otorgar la función 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.

  • PEERED_NETWORK es la red de VPC para conectarse a las instancias del centro de datos de Bitbucket (opcional).

  • [Opcional] SSL_CERTIFICATE es el certificado SSL que se usa para tus instancias de Bitbucket Data Center.

Ingresa el siguiente comando de 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/global/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_DATA_CENTER_CONFIG_NAME -d @config.json

Donde:

  • PROJECT_ID es el ID del proyecto de Cloud.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de la configuración de tu centro de datos de Bitbucket.

Si el proceso es satisfactorio, el cuerpo de la respuesta contiene una instancia nueva de Operation.

Ingresa el siguiente comando de curl en tu terminal:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8"  -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID

Donde:

  • PROJECT_NUMBER es el número de proyecto de Cloud.
  • PROJECT_ID es el ID del proyecto de Cloud.
  • OPERATION_ID es el ID de la operación de creación de configuración del centro de datos de Bitbucket.

Es posible que debas seguir ejecutando el comando de la API de GetOperation hasta que la respuesta contenga done: true, lo que indica que la operación se completó. Si la configuración del centro de datos de Bitbucket se creó de manera correcta, puedes ver la configuración en el campo response.value. De lo contrario, consulta el campo error para ver un informe de errores detallado.

¿Qué sigue?