Crea repository da GitLab Enterprise Edition in una rete privata

Cloud Build ti consente di creare trigger per la build dai repository ospitati su GitLab Enterprise Edition , permettendoti di eseguire build in risposta a eventi come push di commit o unione di richieste associate al tuo repository GitLab Enterprise Edition.

Questa pagina spiega come abilitare la funzionalità di trigger su un'istanza GitLab Enterprise Edition se l'istanza è ospitata su una rete privata.

Prima di iniziare

  • Abilita le API Cloud Build, Secret Manager, Compute Engine, and Service Networking.

    Abilita le API

Crea repository da GitLab Enterprise Edition in una rete privata

Se la tua istanza GitLab Enterprise Edition è accessibile solo all'interno di una rete VPC, devi configurare un servizio Service Directory e creare utilizzando pool privati. Il progetto contenente la tua rete VPC può trovarsi in un progetto diverso da quello contenente il tuo servizio Service Directory. Prima di creare i trigger, utilizza le istruzioni riportate di seguito per assicurarti che la tua istanza sia raggiungibile:

  1. Abilita l'API Service Directory.

  2. Assicurati di aver concesso il ruolo Amministratore IAM progetto al progetto Google Cloud in cui intendi creare il servizio Service Directory. Per scoprire come concedere i ruoli IAM, consulta Configurazione dell'accesso alle risorse Cloud Build.

  3. Per configurare un servizio Service Directory, segui questi passaggi:

    1. Configura uno spazio dei nomi per il tuo progetto Google Cloud.

      La regione specificata nello spazio dei nomi deve corrispondere alla regione specificata nella connessione host di Cloud Build.

    2. Configura un servizio nello spazio dei nomi.

    3. Configura un endpoint per il servizio registrato.

      Quando configuri un endpoint, devi utilizzare un indirizzo IP interno e specificare un numero di porta HTTPS per consentire a Cloud Build di raggiungere il tuo servizio.

    Per scoprire di più sulla configurazione dell'accesso alla rete privata, vedi Configurare l'accesso alla rete privata. Service Directory offre inoltre integrazione con servizi come bilanciatori del carico e Google Kubernetes Engine (GKE). Per saperne di più, consulta Panoramica di Service Directory e bilanciamento del carico o Panoramica di Service Directory per GKE.

  4. Concedi a Service Directory l'accesso all'agente di servizio 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"
    

    Dove:

    • PROJECT_ID è l'ID del tuo progetto Google Cloud.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE è l'ID progetto contenente la risorsa Service Directory.
  5. Concedi il ruolo Visualizzatore Service Directory al tuo account di servizio Cloud Build service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com.

  6. Concedi il ruolo Servizio autorizzato Private Service Connect al tuo account di servizio Cloud Build per consentire l'accesso alla risorsa di rete VPC, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Devi concedere il ruolo nel progetto che contiene la tua rete VPC.

  7. Usa pool privati per eseguire le tue build. Se non hai creato un pool privato, consulta Creare un nuovo pool privato.

  8. Segui le istruzioni per creare un trigger GitLab Enterprise Edition per creare repository ospitati su un'istanza GitLab Enterprise Edition.

    Se includi un certificato autofirmato o privato quando connetti il tuo host GitHub Enterprise Edition a Cloud Build, devi impostare l'URI dell'host come nome alternativo del soggetto (SAN) del tuo certificato.

Ora il trigger GitLab Enterprise Edition richiama automaticamente le build sull'istanza GitLab Enterprise Edition in base alla configurazione.

Condivisione dei dati

I dati inviati a GitLab Enterprise Edition da Cloud Build consentono di identificare i trigger per nome e di visualizzare i risultati della build nei repository GitLab Enterprise Edition.

I seguenti dati vengono condivisi tra Cloud Build e GitLab Enterprise Edition:

  • ID progetto Google Cloud
  • Nome trigger

Passaggi successivi