Esegui build in un pool privato

Questo documento spiega come eseguire build in pool privati. Se non hai mai utilizzato i pool privati, leggi la panoramica sui pool privati.

Prima di iniziare

  • Assicurati di aver creato un pool privato utilizzando i passaggi descritti in Creazione e gestione dei pool privati.

  • Per utilizzare gli esempi di riga di comando in questa guida, installa e configura Google Cloud CLI.

  • Puoi utilizzare lo stesso progetto Google Cloud per creare il tuo pool privato e le build di Cloud Build oppure utilizzare progetti diversi. Se le build si trovano in un progetto diverso dal pool privato, imposta il progetto predefinito nellgcloud CLI sul progetto da cui hanno origine le build:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Autorizzazioni IAM

  • Per eseguire le build tramite gcloud CLI o l'API Cloud Build, concedi il ruolo WorkerPool User nel progetto del pool privato all'account utente o di servizio che richiede la build.

  • Per eseguire build automatizzate utilizzando i trigger:

    • Se il progetto in cui avvii la build è lo stesso del progetto in cui si trova il pool privato, non è necessario concedere alcuna autorizzazione.
    • Se il progetto in cui inizi la build è diverso da quello in cui esiste il pool privato, concedi il ruolo Utente pool di worker all'account di servizio Cloud Build del progetto trigger nel progetto del pool di lavoro in cui vengono create le build:

    Console

    1. Apri la pagina IAM nella console Google Cloud.

      Apri la pagina Autorizzazioni IAM

    2. Nel menu a discesa del selettore progetti nella parte superiore della pagina, seleziona il progetto contenente il pool privato.

    3. Fai clic su Concedi accesso.

    4. Inserisci le seguenti impostazioni per entità e ruolo:

      • Aggiungi entità: inserisci l'indirizzo email predefinito dell'account di servizio Cloud Build del progetto che contiene il trigger di build. Per ottenere questo indirizzo email:

        1. Apri la pagina IAM.
        2. Seleziona il progetto che contiene il trigger di build.
        3. Nella tabella delle autorizzazioni, individua l'indirizzo email che termina con @cloudbuild.gserviceaccount.com. Questo è il tuo account di servizio Cloud Build.
      • Assegna ruoli: seleziona il ruolo Utente pool di worker di Cloud Build.

    5. Fai clic su Salva per salvare le nuove autorizzazioni IAM.

    gcloud

    Per aggiungere l'account di servizio Cloud Build predefinito dal progetto trigger al progetto del pool di worker con il ruolo cloudbuild.workerPoolUser:

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=serviceAccount:TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerPoolUser
    

    Sostituisci i valori segnaposto nel comando precedente con quanto segue:

    • PRIVATEPOOL_PROJECT_ID è l'ID del progetto con il pool privato che esegue la build.
    • TRIGGER_PROJECT_NUMBER è il numero del progetto con il trigger che esegue la build.

Esecuzione delle build

Puoi inviare build dallo stesso progetto Google Cloud in cui hai creato il pool privato o da un progetto Google Cloud diverso. Puoi specificare il pool privato nel file di configurazione della build o direttamente nel comando gcloud:

Specifica del pool privato nel file di configurazione della build:

  1. Nel file di configurazione di Cloud Build, aggiungi un'opzione pool e specifica il nome completo della risorsa del pool privato per eseguire la build:

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    Sostituisci i valori segnaposto nel file di configurazione precedente con quanto segue:

    • PRIVATEPOOL_PROJECT_ID: il progetto Google Cloud in cui si trova il tuo pool privato.
    • REGION: la regione in cui hai creato il pool privato.
    • PRIVATEPOOL_ID: l'ID univoco del pool privato specificato durante la creazione del pool privato.
  2. Utilizza il file di configurazione della build creato in precedenza per eseguire la build tramite gcloud o l'API oppure usando i trigger. Se l'istanza è ospitata on-premise, Cloud Build fornisce anche il supporto per la funzionalità di trigger per diversi sistemi di gestione del codice sorgente esterni, come GitHub Enterprise o Bitbucket Server.

Specifica del pool privato nel comando gcloud:

Puoi specificare il pool privato nel comando gcloud anziché nel file di configurazione della build. Ad esempio, supponiamo che il file di configurazione della build sia il seguente:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

Il seguente comando crea utilizzando il file di configurazione della build e specifica il pool di worker nel comando:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

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

  • CONFIG_FILE: percorso del file di configurazione della build.
  • PRIVATEPOOL_ID: l'ID univoco del pool privato specificato durante la creazione del pool privato.
  • PRIVATEPOOL_PROJECT_ID: il progetto Google Cloud in cui si trova il tuo pool privato.
  • REGION: la regione in cui hai creato il pool privato.

Che cosa succede dopo?