Se connecter à un hôte de centre de données Bitbucket

Cette page explique comment connecter un hôte Bitbucket Data Center à Cloud Build.

Avant de commencer

  • Activer les API Cloud Build, Secret Manager, and Compute Engine.

    Activer les API

  • Préparez votre code source dans un dépôt de centre de données Bitbucket.
  • Vous disposez d'un Dockerfile ou d'un fichier de configuration Cloud Build dans votre dépôt source Bitbucket Data Center.
  • Si vous n'avez pas installé d'instance de centre de données Bitbucket, consultez la page Installer le centre de données Bitbucket pour obtenir des instructions.
  • Pour utiliser les commandes gcloud sur cette page, installez la Google Cloud CLI.

Se connecter à un hôte de centre de données Bitbucket

Console

Pour connecter votre hôte de centre de données Bitbucket à Cloud Build à l'aide de la console Google Cloud, procédez comme suit:

  1. Ouvrez la page Dépôts dans la console Google Cloud:

    Ouvrir la page "Dépôts"

  2. En haut de la page, sélectionnez l'onglet 1re génération.

  3. Cliquez sur Connecter un hôte.

  4. Sélectionnez Bitbucket Data Center dans le menu déroulant.

    Le panneau Connecter un hôte s'affiche.

    Saisissez les informations suivantes pour connecter votre instance de centre de données Bitbucket à Cloud Build:

    1. Région: sélectionnez la région de votre connexion.

    2. Name (Nom) : saisissez le nom de votre connexion.

    3. URL de l'hôte: l'URL de l'hôte de votre instance de centre de données Bitbucket. Exemple : https://bbs.example-test.com:7990.

    4. Google Cloud API key (Clé API Google Cloud) : saisissez la clé API utilisée pour authentifier vos identifiants.

    5. Certificat CA: votre certificat autosigné. Votre certificat ne doit pas dépasser 10 Ko et doit être au format PEM (.pem, .cer ou .crt). Si vous laissez cette section vide, Google Cloud utilise un certificat de l'ensemble de certificats par défaut.

    6. Nom d'utilisateur: nom d'utilisateur de votre compte du centre de données Bitbucket. Ce compte doit disposer d'un accès administrateur aux dépôts que vous souhaitez connecter à Cloud Build.

    7. Read access token (Jeton d'accès en lecture) : saisissez le jeton d'accès personnel de votre compte du centre de données Bitbucket avec autorisations de lecture.

    8. Jeton d'accès administrateur: saisissez le jeton d'accès personnel de votre compte du centre de données Bitbucket avec les autorisations d'administrateur sur les projets et les dépôts.

    9. Sous Type de réseau, sélectionnez l'une des options suivantes:

      1. Public Internet (Internet public) : sélectionnez cette option si votre instance est accessible via l'Internet public.

      2. Réseau privé: sélectionnez cette option si votre instance est hébergée sur un réseau privé.

        1. Project (Projet) : sélectionnez l'ID de votre projet Google Cloud.

        2. Réseau: sélectionnez votre réseau dans le menu déroulant. Si vous n'avez pas créé de réseau, consultez la page Créer et gérer des réseaux VPC pour apprendre à créer un réseau.

        3. Plage d'adresses IP: saisissez la plage d'adresses IP internes que les VM peuvent être attribuées au sein de la plage allouée d'un réseau appairé.

          Vous pouvez spécifier la plage à l'aide du format de routage CIDR (Classless Inter-Domain Routing) au format STARTING_IP/SUBNET_PREFIX_SIZE. Par exemple, la longueur de préfixe de 192.0.2.0/24 est de 24. Les 24 premiers bits de la plage d'adresses IP servent de masque de sous-réseau (192.0.2.0), tandis que les adresses d'hôtes possibles sont comprises entre 192.0.2.0 et 192.0.2.255.

          La longueur de votre préfixe ne doit pas dépasser /29. Si aucune valeur n'est spécifiée pour la plage, la valeur par défaut /24 est automatiquement attribuée. Si aucune valeur n'est spécifiée pour la longueur du préfixe, les adresses IP sont automatiquement attribuées au sein du réseau VPC appairé. Si aucune valeur n'est spécifiée pour l'adresse IP, une plage est automatiquement attribuée à l'adresse IP au sein du réseau VPC appairé.

  5. Cliquez sur Connecter un hôte.

    Si votre instance de centre de données Bitbucket se trouve sur un réseau appairé, la connexion de votre hôte peut prendre plusieurs minutes.

    Vous serez redirigé vers le panneau Connecter un dépôt.

    Après la création d'une connexion hôte, vos jetons d'accès personnels et votre secret de webhook sont stockés de manière sécurisée dans Secret Manager. Vous pouvez afficher et gérer vos secrets sur la page Secret Manager.

gcloud

Pour connecter votre hôte de centre de données Bitbucket à Cloud Build à l'aide des commandes gcloud, vous devez exécuter la commande gcloud alpha builds enterprise-config bitbucketserver create dans votre terminal. Contrairement à la connexion de votre hôte à l'aide de la console Google Cloud, vous devez stocker manuellement vos jetons d'accès personnels et le code secret du webhook dans Secret Manager avant d'exécuter la commande suivante:

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 \
    --peered-network-ip-range=PEERED_NETWORK_IP_RANGE \
    --ssl-ca-file=SSL_CA_FILE

Où :

  • BITBUCKET_DATA_CENTER_CONFIG_NAME est le nom de votre configuration de centre de données Bitbucket.
  • USERNAME est votre nom d'utilisateur pour le centre de données Bitbucket.
  • HOST_URI est l'URI hôte de votre instance de centre de données Bitbucket.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès administrateur stocké dans Secret Manager. Le format attendu pour les secrets stockés dans Secret Manager est projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Vous pouvez spécifier latest comme version pour utiliser la dernière version de votre secret. Cela s'applique à chaque ressource stockée dans Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès en lecture stocké dans Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource du secret de votre webhook, stocké dans Secret Manager.
  • API_KEY est la clé API Google Cloud.
  • Facultatif: PEERED_NETWORK est le réseau VPC auquel vous connecter pour vos instances de centre de données Bitbucket sur site. Pour en savoir plus, consultez Créer des dépôts à partir du centre de données Bitbucket dans un réseau privé.

  • Facultatif: PEERED_NETWORK_IP_RANGE est la plage d'adresses IP internes à laquelle les VM peuvent être attribuées dans la plage allouée d'un réseau appairé.

  • SSL_CA_FILE est le chemin d'accès à un fichier local contenant le certificat SSL à utiliser pour les requêtes envoyées au centre de données Bitbucket. Le certificat doit être au format PEM.

API

Pour connecter votre hôte de centre de données Bitbucket à Cloud Build à l'aide de l'API, utilisez le modèle JSON suivant. Contrairement à la connexion de votre hôte à l'aide de la console Google Cloud, vous devez stocker manuellement vos jetons d'accès personnels et le code secret du webhook dans Secret Manager avant d'appeler l'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",
    "peeredNetworkIpRange": "PEERED_NETWORK_IP_RANGE",
    "sslCa": "SSL_CERTIFICATE"
}

Où :

  • HOST_URI est l'URI hôte de votre instance de centre de données Bitbucket.
  • USERNAME est votre nom d'utilisateur pour le centre de données Bitbucket.
  • API_KEY est la clé API Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès administrateur stocké dans Secret Manager. Vous devrez peut-être attribuer le rôle Secret Manager à votre compte de service Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Pour en savoir plus, consultez Attribuer le rôle Secret Manager à votre compte de service.

  • READ_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès en lecture stocké dans Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource du secret du webhook stocké dans Secret Manager.

  • Facultatif: PEERED_NETWORK est le réseau VPC à appairer pour vos instances de centre de données Bitbucket sur site.

    Vous pouvez spécifier la plage à l'aide du format de routage CIDR (Classless Inter-Domain Routing) au format STARTING_IP/SUBNET_PREFIX_SIZE. Par exemple, 192.0.2.0/24 a une longueur de préfixe de 24. Les 24 premiers bits de la plage d'adresses IP servent de masque de sous-réseau (192.0.2.0), tandis que les adresses d'hôtes possibles sont comprises entre 192.0.2.0 et 192.0.2.225.

  • Facultatif: PEERED_NETWORK_IP_RANGE est la plage d'adresses IP internes à laquelle les VM peuvent être attribuées dans la plage allouée d'un réseau appairé.

  • Facultatif: SSL_CERTIFICATE est le certificat SSL utilisé pour vos instances de centre de données Bitbucket sur site.

Saisissez la commande curl suivante dans votre 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/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_DATA_CENTER_CONFIG_NAME -d @config.json

Où :

  • PROJECT_ID correspond à votre ID de projet Google Cloud.
  • REGION est la région associée à votre configuration de centre de données Bitbucket.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME est le nom de votre configuration de centre de données Bitbucket.

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation.

Saisissez la commande curl suivante dans votre 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/REGION/operations/OPERATION_ID

Où :

  • PROJECT_NUMBER est le numéro de votre projet Google Cloud.
  • PROJECT_ID correspond à votre ID de projet Google Cloud.
  • REGION est la région associée à votre configuration de centre de données Bitbucket.
  • OPERATION_ID est l'ID de votre opération de création de configuration de centre de données Bitbucket.

Vous devrez peut-être continuer à exécuter la commande de l'API GetOperation jusqu'à ce que la réponse contienne done: true, ce qui indique que l'opération est terminée. Si la configuration du centre de données Bitbucket a bien été créée, vous pouvez la voir dans le champ response.value. Sinon, consultez le champ error pour obtenir un rapport d'erreur détaillé.

Étapes suivantes