Executar builds em um pool particular

Neste documento, explicamos como executar builds em pools particulares. Se você estiver começando a usar os pools particulares, leia a Visão geral dos pools particulares.

Antes de começar

  • Verifique se você criou um pool particular usando as etapas em Como criar e gerenciar pools particulares.

  • Para usar os exemplos de linha de comando neste guia, instale e configure a Google Cloud CLI.

  • É possível usar o mesmo projeto do Google Cloud para criar seu pool particular e os builds do Cloud Build ou usar projetos diferentes. Se as versões estiverem em um projeto diferente do pool particular, defina o projeto padrão na CLI gcloud como o projeto de origem das versões:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Permissões do IAM

  • Para executar versões usando a CLI gcloud ou a API Cloud Build, conceda o papel Usuário do workerPool no projeto do pool particular ao usuário ou à conta de serviço que solicitar a versão.

  • Para executar versões automatizadas usando acionadores:

    • Se o projeto em que você está iniciando a versão for o mesmo em que o pool privado se encontra, não será necessário conceder permissões.
    • Se o projeto em que você está iniciando a compilação for diferente do projeto em que o pool privado existe, conceda o papel Usuário do pool de workers à conta de serviço do Cloud Build do projeto do gatilho na o projeto workerpool em que os builds são criados:

    Console

    1. Abra a página do IAM no console do Google Cloud.

      Abrir a página Permissões do IAM

    2. No menu suspenso do seletor do projeto, na parte superior da página, selecione o projeto que contém o pool particular.

    3. Clique em Conceder acesso.

    4. Insira as seguintes configurações principais e de função:

      • Adicionar participantes: insira o endereço de e-mail padrão da conta de serviço do Cloud Build do projeto que contém o gatilho de compilação. Para encontrar esse endereço de e-mail, siga estas etapas:

        1. Abrir a página do IAM
        2. Selecione o projeto que contém o gatilho de compilação.
        3. Na tabela de permissões, localize o endereço de e-mail que termina com @cloudbuild.gserviceaccount.com. Esta é sua conta de serviço do Cloud Build.
      • Atribuir papéis: selecione o papel de usuário do pool de workers do Cloud Build.

    5. Clique em Salvar para salvar as novas permissões do IAM.

    gcloud

    Para adicionar a conta de serviço padrão do Cloud Build do projeto de gatilho ao projeto do pool de workers com o papel cloudbuild.workerPoolUser:

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

    Substitua os valores de marcador no comando acima pelo seguinte:

    • PRIVATEPOOL_PROJECT_ID é o ID do projeto com o pool particular executando a versão.
    • TRIGGER_PROJECT_NUMBER é o número do projeto com o gatilho que executa o build.

Como executar versões

É possível enviar versões do mesmo projeto do Google Cloud em que você criou o pool particular ou de um projeto diferente do Google Cloud. É possível especificar o pool particular no arquivo de configuração do build ou diretamente no comando gcloud:

Como especificar o pool particular no arquivo de configuração do build:

  1. No arquivo de configuração do Cloud Build, adicione uma opção pool e especifique o nome completo do recurso do pool particular para executar o 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"
        }
      }
    }
    

    Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:

    • PRIVATEPOOL_PROJECT_ID: o projeto do Google Cloud em que seu pool particular está localizado.
    • REGION: a região em que você criou o pool particular.
    • PRIVATEPOOL_ID: o ID do pool particular exclusivo que você especificou ao criar o pool particular.
  2. Use o arquivo de configuração do build criado acima para executar seu build via gcloud ou API ou usando gatilhos. Se a instância estiver hospedada no local, o Cloud Build também oferecerá suporte à funcionalidade do gatilho para vários sistemas de gerenciamento de código-fonte externos, como GitHub Enterprise ou Bitbucket Server.

Como especificar o pool particular no comando gcloud:

É possível especificar o pool particular no comando gcloud em vez de no arquivo de configuração do build. Por exemplo, considere que você tenha o seguinte arquivo de configuração do build:

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!"
      ]
    }
    ],
  }

O comando a seguir cria usando o arquivo de configuração do build e especifica o pool de workers no comando:

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

Substitua os valores dos marcadores nos comandos acima pelo seguinte:

  • CONFIG_FILE: o caminho para o arquivo de configuração do build.
  • PRIVATEPOOL_ID: o ID do pool particular exclusivo que você especificou ao criar o pool particular.
  • PRIVATEPOOL_PROJECT_ID: o projeto do Google Cloud em que seu pool particular está localizado.
  • REGION: a região em que você criou o pool particular.

A seguir