Cloud Build vous permet de créer des déclencheurs pour créer à partir de dépôts hébergés sur GitLab Enterprise Edition, ce qui vous permet d'exécuter des compilations en réponse à des événements tels que des transferts de 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 application GitLab. Instance Enterprise Edition si votre instance est hébergée sur un réseau privé.
Avant de commencer
-
Enable the Cloud Build, Secret Manager, Compute Engine, and Service Networking APIs.
- Suivez les instructions pour connecter un hôte GitLab Enterprise Edition.
- Suivez les instructions pour connecter un dépôt GitLab Enterprise Edition.
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 que dans un réseau VPC, vous devez configurer un service d'annuaire des services et créer des compilations à 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 Directory Services. Suivez les instructions ci-dessous pour vous assurer que votre instance est accessible avant l'exécution créer des déclencheurs:
Activez l'API Service Directory.
Assurez-vous que le rôle Administrateur IAM du projet est attribué au projet Google Cloud dans lequel vous souhaitez créer votre service d'annuaire des services. Pour savoir comment accorder les rôles IAM, consultez Configurer l'accès aux ressources Cloud Build
Pour configurer un service de l'Annuaire des services, procédez comme suit :
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écifier dans votre connexion hôte Cloud Build.
Configurer un service dans votre espace de noms.
Configurer un point de terminaison pour le service enregistré.
Lorsque vous configurez un point de terminaison, vous devez utiliser une adresse IP interne et spécifiez un numéro de port HTTPS pour que Cloud Build puisse accéder Google Cloud.
Pour en savoir plus sur la configuration de l'accès à un réseau privé, consultez la section Configurer l'accès à un réseau privé. Le répertoire de services permet également d'intégrer des services tels que des équilibreurs de charge et Google Kubernetes Engine (GKE). Pour en savoir plus, consultez Présentation de l'annuaire des services et de l'équilibrage de charge ou Présentation de l'Annuaire des services pour GKE.
Accordez à l'agent de service Cloud Build l'accès à l'Annuaire des services:
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 \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.viewer"
Remplacez les éléments suivants :
- PROJECT_ID est l'ID de votre projet Cloud Build.
- PROJECT_ID_CONTAINING_SERVICE_DIRECTORY est l'ID de votre projet Google Cloud contenant votre répertoire de services.
Accordez à l'agent de service Cloud Build l'accès aux ressources réseau VPC :
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_NETWORK_RESOURCE \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.pscAuthorizedService"
Remplacez les éléments suivants :
- PROJECT_ID est l'ID de votre projet Cloud Build.
- PROJECT_ID_CONTAINING_NETWORK_RESOURCE est l'ID de votre projet Google Cloud contenant votre ressource réseau.
Utilisez des pools privés pour exécuter vos compilations. Si vous n'avez pas créé de pool privé, reportez-vous à la section Créer un pool privé piscine privée.
Suivez les instructions pour Créer un déclencheur GitLab Enterprise Edition pour créer des dépôts hébergés sur une instance GitLab Enterprise Edition.
Si vous incluez un certificat auto-signé ou privé lorsque vous connectez votre hôte GitLab Enterprise Edition à Cloud Build, vous devez définir l'URI de l'hôte comme nom d'objet alternatif (SAN) de votre certificat.
Votre déclencheur GitLab Enterprise Edition appelle désormais automatiquement les builds sur votre instance GitLab Enterprise Edition selon votre configuration.
Utiliser l'annuaire des services pour contacter des hôtes en dehors de Google Cloud
Le répertoire de services utilise la plage d'adresses IP 35.199.192.0/19
pour connecter votre hôte en dehors de Google Cloud. Vous devez ajouter cette plage à
une liste d'autorisation de votre pare-feu. De plus, votre réseau privé doit être configuré pour acheminer cette plage via la connexion Cloud VPN ou Cloud Interconnect.
Si votre connexion utilise un routeur Cloud Router, vous pouvez configurer votre connexion pour communiquer la plage à votre réseau privé.
Pour en savoir plus, consultez Configurer l'accès au réseau privé.
Utiliser Cloud Load Balancing pour atteindre des hôtes extérieurs à Google Cloud
Si votre configuration réseau ne vous permet pas d'acheminer la plage d'adresses IP du répertoire de services 35.199.192.0/19
vers Cloud VPN ou Cloud Interconnect, vous pouvez créer un équilibreur de charge à l'aide de l'équilibrage de charge Cloud qui dirige le trafic vers votre hôte.
Lorsque vous créez le point de terminaison de l'Annuaire des services, veillez à utiliser l'adresse IP de la règle de transfert de l'équilibreur de charge au lieu de l'adresse IP adresse de votre hôte. Vous pouvez utiliser un équilibreur de charge HTTPS interne ou un équilibreur de charge TCP (Transmission Control Protocol) interne lorsque vous créez votre point de terminaison.
Lorsque vous créez votre équilibreur de charge TCP, tenez compte des points suivants:
- Seul un groupe de points de terminaison du réseau (NEG) de connectivité hybride est nécessaire pour atteindre votre hôte.
- L'équilibreur de charge TCP n'a pas besoin de la clé privée non chiffrée pour votre Certificat SSL.
- Votre configuration Cloud VPN doit utiliser Cloud Router avec le routage dynamique mondial. Si votre Cloud VPN utilise un routage statique, vous pouvez utiliser un proxy qui utilise Cloud Service Mesh à la place. Pour en savoir plus, consultez Configurer des services de périphérie du réseau pour les déploiements hybrides.
Pour en savoir plus sur la création d'un équilibreur de charge HTTPS, consultez Configurez un équilibreur de charge d'application interne avec une connectivité hybride. Pour en savoir plus sur la création d'un équilibreur de charge TCP, consultez Configurer un équilibreur de charge réseau proxy interne régional avec une connectivité hybride.
Partage des données
Les données envoyées à GitLab Enterprise Edition à partir de Cloud Build vous permettent d'identifier les déclencheurs par nom et d'afficher les résultats de compilation dans 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
- Nom du déclencheur
Étape suivante
- Découvrez comment gérer les déclencheurs de compilation.
- Découvrez comment effectuer des déploiements bleu-vert sur Compute Engine.