Questa pagina spiega come connettere un GitLab a Cloud Build.
Prima di iniziare
Abilita le API Cloud Build e Secret Manager.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, è probabile che tu disponga già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Connettiti a un host GitLab
Prima di creare una connessione host per l'istanza GitLab, devi creare token di accesso personali in GitLab completando i seguenti passaggi:
Accedi all'istanza GitLab.
Nella pagina GitLab per l'istanza, fai clic sul tuo avatar nell'angolo in alto a destra.
Fai clic su Modifica profilo.
Nella barra laterale a 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 assicurarti 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 Google Cloud console.
Viene visualizzata la pagina Repository.
Nella parte superiore della pagina, seleziona la scheda 2ª generazione.
Nel selettore del progetto nella barra in alto, seleziona il tuo Google Cloud progetto.
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.
Nome: inserisci un nome per la connessione.
Nella sezione Dettagli host, vai a Host GitLab e seleziona GitLab.com.
(Facoltativo) Se vuoi gestire le chiavi di crittografia utilizzate per criptare i token di accesso per i repository GitLab, vai alla sezione Crittografia e scegli una chiave Cloud Key Management Service. Per saperne di più, vedi Abilitare le chiavi di crittografia gestite dal cliente per Secret Manager.
Nella sezione Token di accesso personali, 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 token di accesso personali vengono archiviati 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.
Hai creato correttamente 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 archivi i secret in un progetto Google Cloud diverso da quello che intendi utilizzare per creare una connessione host, inserisci il seguente comando per concedere al 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." gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \ --role="roles/secretmanager.admin"Dove:
- PROJECT_ID è l'ID del tuo Google Cloud progetto.
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 seguente comando 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 host GitLab in Cloud Build.
- HOST_URI è l'URI dell'istanza GitLab. Ad esempio,
https://my-gle-server.net. - PROJECT_ID è l'ID del tuo Google Cloud progetto.
- REGION è la regione per la connessione.
- API_TOKEN è il nome del token con ambito
api. - READ_TOKEN è il nome del token con ambito
read_api. - SECRET_VERSION è la versione del secret.
- WEBHOOK_SECRET è il secret webhook.
Hai creato correttamente una connessione GitLab.
Ruotare i token di accesso GitLab vecchi o scaduti
Ruota i token di accesso in modo che la connessione host Cloud Build possa mantenere la connessione al repository GitLab. Se il token di accesso GitLab scade, la connessione host Cloud Build viene disconnessa dal repository GitLab. In questo caso, non puoi disattivare la connessione o collegare un repository finché non ruoti il token scaduto. Inoltre, vedrai errori nelle seguenti circostanze:
La pagina Dettagli connessione per la connessione mostra un messaggio di errore che indica
Connection is disconnected due to an invalid or expired access token(La connessione è disconnessa a causa di un token di accesso non valido o scaduto).Se provi a collegare un repository a una connessione con un token scaduto, viene visualizzato il messaggio Token di accesso non valido. Se fai clic su Visualizza connessione , viene visualizzata la pagina Dettagli connessione per la connessione con il token scaduto.
Cloud Build ti consente di ruotare i token di accesso inserendo nuovi valori dei token e salvandoli in Secret Manager nell'ultima versione del secret per questi token. Per ruotare i token di accesso:
Ruota ogni token di accesso in GitLab:
Vai al repository GitLab connesso alla connessione host Cloud Build.
Segui le istruzioni 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 gli ID dei token ruotati.
Aggiorna il token di accesso in Cloud Build:
Vai alla pagina Dettagli connessione per la connessione.
Seleziona Aggiorna token di accesso.
Nel menu Rotazione token, inserisci i nuovi token nei campi Token di accesso API e Token di accesso in lettura.
(Facoltativo) Se vuoi che la connessione utilizzi sempre l'ultima versione del secret per i token, seleziona Aggiorna connessione per utilizzare sempre l'ultima versione. Se la connessione utilizza un numero di versione del secret specifico, potrebbe essere utile lasciare questa opzione deselezionata.
Seleziona Aggiorna per salvare le modifiche.
Cloud Build salva i nuovi token di accesso come ultima versione del secret in Secret Manager.
Passaggi successivi
- Scopri come connettere un repository GitLab.
- Scopri come creare ed eseguire il deployment dei carichi di lavoro Google Cloud utilizzando i componenti CI/CD gestiti da Google nella pipeline GitLab. Vedi GitLab su Google Cloud.