Créer des dépôts à partir de GitLab Enterprise Edition dans un réseau privé

Cloud Build vous permet de créer des déclencheurs de compilation à partir de dépôts hébergés sur GitLab Enterprise Edition. Ils vous permettent d'exécuter des compilations en réponse à des événements tels que des commits ou des demandes de fusion associés à votre dépôt GitLab Enterprise Edition.

Cette page explique comment activer la fonctionnalité de déclenchement sur une instance GitLab Enterprise Edition si celle-ci est hébergée sur un réseau privé.

Avant de commencer

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

    Activer les API

Créer des dépôts à partir de GitLab Enterprise Edition dans un réseau privé

Si votre instance GitLab Enterprise Edition n'est accessible qu'au sein d'un réseau VPC, vous devez configurer un service de l'Annuaire des services et compiler à l'aide de pools privés. Le projet contenant votre réseau VPC peut exister dans un projet différent de celui contenant votre service Annuaire des services. Pour vous assurer que votre instance est accessible avant de créer des déclencheurs, procédez comme suit:

  1. Activez l'API de l'Annuaire des services.

  2. Assurez-vous que le rôle Administrateur IAM de projet a été attribué au projet Google Cloud dans lequel vous souhaitez créer le service de l'Annuaire des services. Pour savoir comment attribuer des rôles IAM, consultez la page Configurer l'accès aux ressources Cloud Build.

  3. Pour configurer un service de l'Annuaire des services, procédez comme suit:

    1. Configurez un espace de noms pour votre projet Google Cloud.

      La région que vous spécifiez dans votre espace de noms doit correspondre à la région que vous spécifiez dans votre connexion hôte Cloud Build.

    2. Configurez un service dans votre espace de noms.

    3. Configurez un point de terminaison pour votre service enregistré.

      Lorsque vous configurez un point de terminaison, vous devez utiliser une adresse IP interne et spécifier un numéro de port HTTPS pour que Cloud Build puisse accéder à votre service.

    Pour en savoir plus sur la configuration de l'accès au réseau privé, consultez la page Configurer l'accès au réseau privé. L'Annuaire des services s'intègre aussi à des services tels que les équilibreurs de charge et Google Kubernetes Engine (GKE). Pour en savoir plus, consultez la page Présentation de l'annuaire des services et de l'équilibrage de charge ou Présentation de l'annuaire des services pour GKE.

  4. Accordez à l'annuaire des services l'accès à l'agent de service Cloud Build:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE \
       --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
       --role="roles/servicedirectory.viewer"
    

    Où :

    • PROJECT_ID correspond à votre ID de projet Google Cloud.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE est l'ID du projet contenant votre ressource d'Annuaire des services.
  5. Attribuez le rôle Lecteur de l'annuaire des services à votre compte de service Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com.

  6. Attribuez le rôle Service autorisé Private Service Connect à votre compte de service Cloud Build pour autoriser l'accès à votre ressource de réseau VPC, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Vous devez accorder le rôle dans le projet qui contient votre réseau VPC.

  7. Utilisez des pools privés pour exécuter vos compilations. Si vous n'avez pas créé de pool privé, consultez la section Créer un pool privé.

  8. Suivez les instructions pour créer un déclencheur GitLab Enterprise Edition afin de créer des dépôts hébergés sur une instance GitLab Enterprise Edition.

    Si vous incluez un certificat autosigné ou privé lors de la connexion de votre hôte GitLab Enterprise Edition à Cloud Build, vous devez définir l'URI de l'hôte en tant qu'autre nom d'objet (SAN, Subject Alternative Name) de votre certificat.

Votre déclencheur GitLab Enterprise Edition appelle désormais automatiquement des compilations sur votre instance GitLab Enterprise Edition en fonction de votre configuration.

Partage des données

Les données envoyées à GitLab Enterprise Edition depuis Cloud Build vous permettent d'identifier les déclencheurs par leur nom et d'afficher les résultats des compilations sur vos dépôts GitLab Enterprise Edition.

Les données suivantes sont partagées entre Cloud Build et GitLab Enterprise Edition:

  • ID de projet Google Cloud
  • Trigger name

Étapes suivantes