Se connecter à un hôte GitLab Enterprise Edition

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page explique comment se connecter à un hôte GitLab Enterprise Edition sur Cloud Build.

Avant de commencer

  • Activer les API Cloud Build and Secret Manager.

    Activer les API

Configuration

Avant de créer une connexion hôte à GitLab Enterprise Edition, vous devez obtenir une clé API pour authentifier et accepter les événements entrants provenant de GitLab Enterprise Edition. De plus, vous devez créer des jetons d'accès personnels dans GitLab Enterprise Edition pour créer des webhooks et récupérer les données du dépôt.

Cette section décrit la procédure à suivre avant de créer un déclencheur GitLab Enterprise Edition.

Obtenir une clé API

Pour connecter vos dépôts hôtes et authentifier les événements de webhook entrants, vous avez besoin d'une clé API.

Pour obtenir une clé API:

  1. Ouvrez la page Identifiants dans Google Cloud Console:

    Ouvrez la page Identifiants.

  2. Cliquez sur Créer des identifiants.

  3. Cliquez sur Clé API.

    Une boîte de dialogue contenant la clé API s'affiche. Prenez note de votre clé API.

  4. Si vous souhaitez limiter votre clé pour les applications de produits, cliquez sur Restreindre la clé pour effectuer les étapes supplémentaires permettant de sécuriser votre clé. Sinon, cliquez sur Fermer.

    Pour savoir comment restreindre votre clé, consultez la section Appliquer des restrictions de clé API.

Créer des jetons d'accès personnels

Vous devez créer deux jetons d'accès personnels dans GitLab Enterprise Edition pour effectuer les tâches suivantes:

Une fois que vous avez créé vos jetons d'accès personnels, enregistrez temporairement les valeurs de vos jetons, par exemple dans un fichier au format texte brut. Vous ajouterez ensuite les jetons à Secret Manager, un magasin d'informations d'identification que vous utiliserez avec Cloud Build dans les étapes suivantes. Les jetons seront utilisés pour connecter votre dépôt GitLab Enterprise Edition à Cloud Build.

Se connecter à un hôte GitLab Enterprise Edition

Console

Pour connecter votre hôte GitLab Enterprise Edition à Cloud Build à l'aide de la console Google Cloud:

  1. Ouvrez la page Gérer les dépôts dans Google Cloud Console:

    Ouvrir la page "Gérer les dépôts"

  2. Sélectionnez une Région dans le menu déroulant.

  3. Cliquez sur Connecter un hôte.

  4. Sélectionnez GitLab Enterprise Edition.

    Le panneau Connecter un hôte s'affiche.

    Saisissez les informations suivantes pour connecter votre instance GitLab Enterprise Edition à Cloud Build:

    • Nom: le nom de votre connexion hôte.

    • Host url (URL de l'hôte) : URL de l'instance GitLab Enterprise Edition. Exemple : https://gitlab.example.com.

    • Clé API Google Cloud : clé API utilisée pour authentifier vos identifiants.

    • [FACULTATIF] Certificat CA : votre certificat autosigné ou privé. La taille de votre certificat ne doit pas dépasser 10 Ko et doit être au format PEM (.pem, .cer ou .crt). Si vous ne renseignez pas cette section, un ensemble de certificats par défaut est utilisé.

    • Username (Nom d'utilisateur) : nom d'utilisateur de votre compte GitLab Enterprise Edition. Ce compte doit disposer d'un accès en maintenance des dépôts que vous souhaitez connecter à Cloud Build.

    • Jeton d'accès aux API : jeton d'accès personnel de votre compte GitLab Enterprise Edition avec autorisations de lecture.

    • Jeton d'accès à l'API: le jeton d'accès personnel de votre compte GitLab Enterprise Edition avec des autorisations d'API sur les projets et les dépôts.

    • Type de connexion: sélectionnez Internet public si Cloud Build se connecte à votre instance via l'Internet public. Sélectionnez Accès au réseau privé si Cloud Build connecte votre instance via un réseau VPC existant à l'aide de l'Annuaire des services.

    • [FACULTATIF] Service Directory de service: si vous sélectionnez Accès au réseau privé comme Type de connexion, saisissez le nom de votre service de l'Annuaire des services. Pour en savoir plus, consultez Utiliser l'annuaire des services pour l'accès privé ou Créer des dépôts à partir de GitLab Enterprise Edition dans un réseau privé.

  5. Cliquez sur Connecter un hôte.

    Le panneau Connecter un dépôt s'affiche.

    Une fois la connexion hôte créée, vos jetons d'accès personnels et votre clé API sont stockés de manière sécurisée dans Secret Manager. Une fois la connexion hôte établie, Cloud Build crée également un secret de webhook en votre nom. Vous pouvez afficher et gérer vos secrets sur la page Secret Manager.

gcloud

Pour connecter votre hôte GitLab Enterprise Edition à Cloud Build à l'aide des commandes gcloud, vous devez exécuter la commande gcloud alpha builds enterprise-config gitlab create dans votre terminal. Contrairement à la connexion à votre hôte à l'aide de Google Cloud Console, vous devez stocker manuellement vos jetons d'accès personnels, la clé API et le secret de webhook dans Secret Manager avant d'exécuter la commande suivante:

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

Remplacez les éléments suivants :

  • GITLAB_ENTERPRISE_EDITION_CONFIG_NAME est le nom de votre configuration GitLab Enterprise Edition.
  • REGION est la région dans laquelle se trouve votre configuration GitLab Enterprise Edition.

  • USERNAME est votre nom d'utilisateur GitLab Enterprise Edition.

  • HOST_URI est l'URI hôte de votre GitLab Enterprise Edition.

  • API_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès à l'API 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 de votre secret de webhook stocké dans Secret Manager.

  • API_KEY_SECRET_VERSION est la clé API Google Cloud.

  • [Facultatif] SERVICE_DIRECTORY_SERVICE est le nom de l'annuaire des services utilisé pour communiquer avec votre instance GitLab Enterprise Edition.

  • [Facultatif] SSL_CA_FILE est votre certificat SSL à utiliser pour les requêtes à GitLab Enterprise Edition. Le certificat doit être au format PEM. Vous pouvez importer votre certificat à l'aide du chemin d'accès au fichier local.

API

Pour connecter votre hôte GitLab Enterprise Edition à Cloud Build à l'aide de l'API Cloud Build, utilisez le modèle JSON suivant. Contrairement à la connexion à votre hôte à l'aide de Google Cloud Console, vous devez stocker manuellement vos jetons d'accès personnels et votre secret Secret dans Secret Manager avant d'appeler l'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"
        }
      }
  }

Remplacez les éléments suivants :

  • USERNAME est votre nom d'utilisateur GitLab Enterprise Edition.
  • API_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès à l'API 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 la page 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 de votre secret de webhook stocké dans Secret Manager.

  • API_KEY_SECRET_VERSION est la clé API Google Cloud.

  • HOST_URI est l'URI hôte de votre instance GitLab Enterprise Edition.

  • [Facultatif] SSL_CA est votre certificat SSL à utiliser pour les requêtes à GitLab Enterprise Edition. Le certificat doit être au format PEM et être fourni sous forme de chaîne.

  • [Facultatif] SERVICE_DIRECTORY_SERVICE est le nom du service de l'Annuaire des services qui permet de communiquer avec votre instance GitLab Enterprise Edition.

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/gitLabConfigs?gitlabConfigId=GITLAB_ENTERPRISE_EDITION_CONFIG_NAME -d @config.json

Remplacez les éléments suivants :

  • PROJECT_ID correspond à votre ID de projet Google Cloud.
  • REGION est la région dans laquelle se trouve votre configuration GitLab Enterprise Edition.

  • GITLAB_ENTERPRISE_EDITION_CONFIG_NAME est le nom de votre configuration GitLab Enterprise Edition.

Étapes suivantes