Il gateway si basa sull'approvazione

Cloud Build ti consente di configurare trigger che non eseguono immediatamente una build, ma che contrassegnano una build come in attesa fino all'approvazione. Se un utente con autorizzazioni approva una build in attesa, la build verrà avviata. Se l'approvazione viene rifiutata, la build non verrà avviata.

In questa pagina viene spiegato come approvare o rifiutare manualmente le build. Per scoprire come configurare un trigger che richiede l'approvazione, consulta Creazione di un trigger di build.

Prima di iniziare

  • Attiva l'API Cloud Build.

    Abilita l'API

  • Installa Google Cloud CLI.

  • Se non lo hai già fatto, crea un trigger di build configurato in modo da richiedere l'approvazione.

Concessione di autorizzazioni

Se un utente ha il ruolo Editor Cloud Build, può aggiornare un trigger in modo che sia richiesta o meno l'approvazione. Per scoprire di più sulle autorizzazioni di Cloud Build, consulta IAM e autorizzazioni. Per concedere a un utente l'autorizzazione ad approvare le build all'interno del progetto, l'utente deve avere il ruolo Approvatore Cloud Build.

Per aggiungere il ruolo Approvatore Cloud Build:

  1. Apri la pagina IAM nella console Google Cloud.

    Apri la pagina IAM

  2. Fai clic su Concedi accesso.

    Verrà visualizzato il riquadro Concedi l'accesso.

  3. Nella sezione Aggiungi entità, aggiungi gli utenti per concedere loro l'autorizzazione a concedere l'approvazione per le build in attesa all'interno del tuo progetto.

    Devi aggiungere una o più entità in questa sezione. Se ti aggiungi come entità, tieni presente che dovrai comunque approvare manualmente una build in attesa se il trigger è controllato da un'approvazione.

  4. Nella sezione Assegna ruoli, seleziona Cloud Build > Approvatore Cloud Build.

Gli utenti specificati ora possono approvare o rifiutare le build in attesa.

Approvazione delle build

Console

Per approvare una build in attesa nella console Google Cloud:

  1. Apri la pagina della dashboard di Cloud Build nella console Google Cloud.

    Apri la pagina della dashboard di Cloud Build

  2. Se hai delle build da approvare, nella parte superiore della pagina viene visualizzato un messaggio con il numero di build in attesa di approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa della tua approvazione.

  3. Fai clic sulle caselle di controllo delle build che vuoi approvare. Puoi selezionare più build da approvare o una singola build da approvare.

  4. Nella parte superiore della pagina, fai clic su Approva per approvare le build selezionate.

  5. Prima dell'avvio della build, viene visualizzata la finestra di dialogo Approva build. Nella finestra di dialogo puoi aggiungere un messaggio facoltativo e un URL da visualizzare insieme all'approvazione della build. Per includere un URL, fai clic su Mostra opzioni aggiuntive e inserisci un URL.

  6. Nella finestra di dialogo, fai clic su Approva per approvare la build.

Dopo la tua approvazione, la build inizierà immediatamente. Se il criterio dell'organizzazione (constraints/cloudbuild.allowedIntegrations) nega l'accesso al repository collegato, il criterio sostituirà l'approvazione. Per saperne di più, consulta la sezione Gate si basa sul criterio dell'organizzazione.

gcloud

Per approvare una build in attesa utilizzando gcloud commands, esegui questo comando nella finestra del terminale:

gcloud builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Sostituisci i valori segnaposto nei comandi riportati sopra con quanto segue:

  • BUILD_ID è l'ID della build che vuoi approvare.
  • PROJECT_ID è l'ID progetto.
  • [Facoltativo] URL è l'URL contenente informazioni sull'approvazione, ad esempio un link a un ticket JIRA.
  • [Facoltativo] COMMENT è il messaggio da visualizzare al momento dell'approvazione della build.

Dopo la tua approvazione, la build inizierà immediatamente. Se il criterio dell'organizzazione per definire le build per le integrazioni consentite (constraints/cloudbuild.allowedIntegrations) è impostato, il criterio sostituirà l'approvazione. Per scoprire di più, vedi Applicazione dei criteri dell'organizzazione ai trigger di build.

Rifiuto delle build in corso...

Console

Per rifiutare una build in attesa nella console Google Cloud:

  1. Apri la pagina della dashboard di Cloud Build nella console Google Cloud.

    Apri la pagina della dashboard di Cloud Build

  2. Se hai delle build da approvare, nella parte superiore della pagina viene visualizzato un messaggio con il numero di build in attesa di approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa della tua approvazione.

  3. Puoi selezionare più build da rifiutare o una singola build da rifiutare. Fai clic sulle caselle di controllo delle build che vuoi rifiutare.

  4. Fai clic su Rifiuta nella parte superiore della pagina per rifiutare la build.

Se rifiuti una build, questa non verrà avviata.

gcloud

Per rifiutare una build in attesa utilizzando gcloud commands, esegui questo comando nella finestra del terminale:

gcloud builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Sostituisci i valori segnaposto nei comandi riportati sopra con quanto segue:

  • BUILD_ID è l'ID della build che vuoi rifiutare.
  • PROJECT_ID è l'ID progetto.
  • [Facoltativo] URL è l'URL contenente informazioni sul rifiuto, ad esempio un link a un ticket JIRA.
  • [Facoltativo] COMMENT è il messaggio che vuoi visualizzare in caso di rifiuto della build.

Se rifiuti una build, questa non verrà mai avviata.

Ricezione di notifiche per le build in attesa di approvazione

Puoi usare i notifiche di Cloud Build per ricevere notifiche sulle build in attesa utilizzando un notificatore gestito da Cloud Build, ad esempio un server Slack o SMTP, oppure creando un tuo notificatore.

Per configurare le notifiche:

  1. Segui le istruzioni in una delle seguenti pagine per configurare le notifiche per il servizio desiderato:

  2. Quando configuri le notifiche utilizzando una delle pagine precedenti, devi configurare il notificatore per filtrare le build con lo stato IN ATTESA. Riceverai notifiche sulle build in attesa di approvazione. Nel seguente esempio di file di configurazione del notificatore SMTP, il campo del filtro utilizza il Common Expression Language (CEL) per filtrare gli eventi di build con stato IN ATTESA:

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    Per visualizzare l'esempio completo, vedi il file di configurazione del notificatore per l'utilità di notifica SMTP.

  3. Per eseguire il deployment del notificatore, esegui il comando gcloud run nel terminale. L'esempio seguente esegue il deployment del notificatore SMTP utilizzando Cloud Run.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

Ora dovresti ricevere notifiche per le build in attesa nel tuo servizio.

Passaggi successivi