Se connecter à un hôte GitLab

Cette page explique comment connecter un hôte GitLab à Cloud Build.

Avant de commencer

  • Activer les API Cloud Build and Secret Manager.

    Activer les API

Se connecter à un hôte GitLab

Avant de créer une connexion hôte pour votre instance GitLab, vous devez créer des jetons d'accès personnels dans GitLab en procédant comme suit:

  1. Connectez-vous à votre instance GitLab Enterprise Edition.

  2. Sur la page GitLab Enterprise Edition de votre instance, cliquez sur votre avatar en haut à droite.

  3. Cliquez sur Modifier mon profil.

  4. Dans la barre latérale de gauche, sélectionnez Jetons d'accès.

    La page Personal Access Tokens (Jetons d'accès personnels) s'affiche.

  5. Créez un jeton d'accès avec le niveau d'accès api à utiliser pour connecter et déconnecter des dépôts.

  6. Créez un jeton d'accès avec le niveau d'accès read_api pour vous assurer que les dépôts Cloud Build peuvent accéder au code source qu'ils contiennent.

Console

Pour connecter votre hôte GitLab à Cloud Build, procédez comme suit:

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

    Ouvrir la page "Dépôts"

    La page Dépôts s'affiche.

  2. En haut de la page, sélectionnez l'onglet 2nd gen (2e génération).

  3. Dans le sélecteur de projet de la barre supérieure, sélectionnez votre projet Google Cloud.

  4. Cliquez sur Créer une connexion hôte pour connecter un nouvel hôte à Cloud Build.

  5. Dans le panneau de gauche, sélectionnez GitLab comme fournisseur source.

  6. Dans la section Configure Connection (Configurer la connexion), saisissez les informations suivantes:

    1. Région: sélectionnez une région pour votre connexion.

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

  7. Dans la section Host details (Détails de l'hôte), sélectionnez ou saisissez les informations suivantes:

    1. Fournisseur GitLab: sélectionnez GitLab.com comme fournisseur.
  8. Dans la section Personal access tokens (Jetons d'accès personnels), saisissez les informations suivantes:

    1. Jeton d'accès à l'API: saisissez le jeton avec le niveau d'accès api. Ce jeton est utilisé pour connecter et déconnecter des dépôts.

    2. Jeton d'accès à l'API en lecture: saisissez le jeton avec le niveau d'accès read_api. Les déclencheurs Cloud Build utilisent ce jeton pour accéder au code source dans les dépôts.

  9. Cliquez sur Connect (Se connecter).

    Lorsque vous cliquez sur le bouton Connecter, vos jetons d'accès personnels sont stockés de manière sécurisée dans Secret Manager. Après la connexion hôte, 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.

Vous venez de créer une connexion GitLab.

gcloud

Avant de connecter votre hôte GitLab à Cloud Build, procédez comme suit pour stocker vos identifiants:

  1. Stockez votre jeton dans Secret Manager.

  2. Créez un secret de webhook dans Secret Manager en exécutant la commande suivante:

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. Si vous stockez vos secrets dans un projet Google Cloud différent de celui que vous prévoyez d'utiliser pour créer une connexion hôte, saisissez la commande suivante pour autoriser votre projet à accéder à l'agent de service 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"
    

    Où :

    • PROJECT_ID correspond à votre ID de projet Google Cloud.

Vous pouvez maintenant connecter votre hôte GitLab à Cloud Build.

Procédez comme suit :

Pour connecter votre hôte GitLab à Cloud Build, procédez comme suit:

  1. Saisissez la commande suivante pour créer une connexion 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
    

    Où :

    • CONNECTION_NAME est le nom de votre connexion.
    • HOST_URI est l'URI de votre instance GitLab. Exemple :https://my-gle-server.net
    • PROJECT_ID correspond à votre ID de projet Google Cloud.
    • REGION est la région de votre connexion.
    • API_TOKEN est le nom de votre jeton avec le niveau d'accès api.
    • READ_TOKEN est le nom de votre jeton avec le niveau d'accès read_api.
    • SECRET_VERSION est la version de votre secret.
    • WEBHOOK_SECRET est le secret de votre webhook.

Vous venez de créer une connexion GitLab.

Étapes suivantes