Questa pagina spiega come connettere un host GitLab a Cloud Build.
Prima di iniziare
-
Enable the Cloud Build and Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Connettiti a un host GitLab
Prima di creare una connessione host per l'istanza GitLab, devi creare token di accesso personale in GitLab completando i seguenti passaggi:
Accedi alla tua istanza GitLab.
Nella pagina GitLab della tua istanza, fai clic sul tuo avatar nell'angolo in alto a destra.
Fai clic su Modifica profilo.
Nella barra laterale sinistra, seleziona Token di accesso.
Viene visualizzata la pagina Token di accesso personali.
Crea un token di accesso con l'ambito
apida utilizzare per collegare e scollegare i repository.Crea un token di accesso con l'ambito
read_apiper garantire che i repository Cloud Build possano accedere al codice sorgente nei repository.
Console
Per connettere l'host GitLab a Cloud Build:
Apri la pagina Repository nella console Google Cloud .
Viene visualizzata la pagina Repository.
Nella parte superiore della pagina, seleziona la scheda 2ª gen..
Nel selettore di progetti nella barra superiore, seleziona il tuo progetto Google Cloud .
Fai clic su Crea connessione host per connettere un nuovo host a Cloud Build.
Nel riquadro a sinistra, seleziona GitLab come provider di origine.
Nella sezione Configura connessione, inserisci le seguenti informazioni:
Regione: seleziona una regione per la connessione.
Name (Nome): inserisci un nome per la connessione.
Nella sezione Dettagli host, seleziona o inserisci le seguenti informazioni:
- Provider GitLab: seleziona GitLab.com come provider.
Nella sezione Personal access tokens (Token di accesso personale), inserisci le seguenti informazioni:
Token di accesso API: inserisci il token con accesso all'ambito
api. Questo token viene utilizzato per collegare e scollegare i repository.Token di accesso alle API in lettura: inserisci il token con accesso all'ambito
read_api. I trigger di Cloud Build utilizzano questo token per accedere al codice sorgente nei repository.
Fai clic su Connetti.
Dopo aver fatto clic sul pulsante Connetti, i tuoi token di accesso personali vengono memorizzati in modo sicuro in Secret Manager. Dopo la connessione host, Cloud Build crea anche un secret webhook per tuo conto. Puoi visualizzare e gestire i tuoi secret nella pagina Secret Manager.
Ora hai creato una connessione GitLab.
gcloud
Prima di connettere l'host GitLab a Cloud Build, completa i seguenti passaggi per archiviare le credenziali:
Crea un secret webhook in Secret Manager eseguendo il seguente comando:
cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-Se memorizzi i tuoi secret in un progetto Google Cloud diverso da quello che prevedi di utilizzare per creare una connessione host, inserisci il seguente comando per concedere al tuo progetto l'accesso all'agente di servizio 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"Dove:
- PROJECT_ID è l'ID progetto Google Cloud .
Ora puoi procedere per connettere l'host GitLab a Cloud Build.
Completa i seguenti passaggi:
Per connettere l'host GitLab a Cloud Build:
Inserisci il comando seguente per creare una connessione 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_VERSIONDove:
- CONNECTION_NAME è un nome per la connessione all'host GitLab in Cloud Build.
- HOST_URI è l'URI della tua istanza GitLab. Ad esempio,
https://my-gle-server.net. - PROJECT_ID è l'ID progetto Google Cloud .
- REGION è la regione per la tua connessione.
- API_TOKEN è il nome del tuo token con ambito
api. - READ_TOKEN è il nome del tuo token con ambito
read_api. - SECRET_VERSION è la versione del secret.
- WEBHOOK_SECRET è il secret webhook.
Ora hai creato una connessione GitLab.
Ruotare i token di accesso GitLab vecchi o scaduti
Se il token di accesso GitLab scade, la connessione dell'host Cloud Build viene disconnessa dal repository GitLab. Di conseguenza, visualizzerai errori nelle seguenti circostanze:
Quando provi a collegare un repository GitLab alla connessione Cloud Build, viene visualizzato un messaggio
Failed to fetch repositories to link. Check that Cloud Build is still authorized to access data from the selected connection.Nella pagina Trigger, quando fai clic su Esegui, si apre la pagina Esegui trigger e viene visualizzato un messaggio
Failed to list branches. You can still enter one manually.
Per ruotare un token precedente o scaduto per la connessione:
Trova i segreti associati alla connessione host:
Esegui questo comando:
gcloud builds connections describe CONNECTION_PATH --region=REGIONDove:
- CONNECTION_PATH è il percorso della connessione host GitLab in Cloud Build, nel formato
projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME. - REGION è la regione per la tua connessione.
- CONNECTION_PATH è il percorso della connessione host GitLab in Cloud Build, nel formato
Nell'output del comando, cerca i valori dei campi del token utente.
readAuthorizerCredential.userTokenSecretVersionmostra il nome di Secret Manager del tokenread_apieauthorizerCredential.userTokenSecretVersionmostra il nome di Secret Manager del tokenapi. Questi nomi vengono archiviati come secret in Secret Manager.
Ruota ogni token di accesso in GitLab:
Vai al repository GitLab connesso alla connessione all'host Cloud Build.
Segui le istruzioni riportate nella documentazione di GitLab per ruotare un token di accesso. Quando ruoti un token, GitLab ne crea uno nuovo con nuove credenziali e invalida la versione precedente. Il token ruotato ha le stesse autorizzazioni e lo stesso ambito del token originale.
Copia l'ID del token ruotato.
Crea una nuova versione del secret per ogni token:
Apri la pagina Secret Manager nella console Google Cloud :
Per ogni token che hai ruotato, trova il nome del secret che hai identificato nel passaggio 1 e fai clic su Azioni, quindi fai clic su Aggiungi nuova versione.
Nella finestra Aggiungi nuova versione, inserisci l'ID del token ruotato e poi fai clic su Aggiungi nuova versione.
Passaggi successivi
- Scopri come connettere un repository GitLab.
- Scopri come creare ed eseguire il deployment dei tuoi carichi di lavoro su Google Cloud utilizzando i componenti CI/CD gestiti da Google nella pipeline GitLab. Consulta GitLab su Google Cloud.