Crie repositórios do GitLab Enterprise Edition em uma rede privada

O Cloud Build permite criar gatilhos para compilação a partir de repositórios hospedados no GitLab Enterprise Edition (em inglês). Assim, você executa versões em resposta a eventos como envios de confirmação ou solicitações de mesclagem associadas ao seu repositório do GitLab Enterprise Edition.

Nesta página, explicamos como ativar o recurso de acionamento em uma instância do GitLab Enterprise Edition se a instância estiver hospedada em uma rede privada.

Antes de começar

  • Ative as APIs Cloud Build, Secret Manager, Compute Engine, and Service Networking.

    Ative as APIs

Crie repositórios do GitLab Enterprise Edition em uma rede privada

Se sua instância do GitLab Enterprise Edition só puder ser acessada em uma rede VPC, você precisará configurar um serviço do Diretório de serviços e criar usando pools particulares. O projeto que contém a rede VPC pode existir em um projeto diferente daquele que contém o serviço do Diretório de serviços. Use as instruções a seguir para garantir que sua instância possa ser acessada antes de criar acionadores:

  1. Ative a API Service Directory.

  2. Verifique se você tem o papel Administrador do IAM do projeto concedido ao projeto do Google Cloud em que pretende criar o serviço do Diretório de serviços. Para saber como conceder papéis do IAM, consulte Como configurar o acesso aos recursos do Cloud Build.

  3. Configure um serviço do Diretório de serviços seguindo as seguintes etapas:

    1. Configure um namespace para seu projeto do Google Cloud.

      A região especificada no namespace precisa corresponder à região especificada na conexão do host do Cloud Build.

    2. Configure um serviço no seu namespace.

    3. Configure um endpoint para o serviço registrado.

      Ao configurar um endpoint, você precisa usar um endereço IP interno e especificar um número de porta HTTPS para que o Cloud Build acesse seu serviço.

    Para saber mais sobre a configuração do acesso à rede privada, consulte Configurar o acesso à rede privada. O Diretório de serviços também fornece integração com serviços como balanceadores de carga e o Google Kubernetes Engine (GKE). Para saber mais, consulte a Visão geral do Diretório de serviços e do balanceamento de carga ou a Visão geral do Diretório de serviços para o GKE.

  4. Conceda ao Diretório de serviços acesso ao agente de serviço do Cloud Build:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE \
       --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
       --role="roles/servicedirectory.viewer"
    

    Em que:

    • PROJECT_ID é o ID do projeto no Google Cloud.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE é o ID do projeto que contém o recurso do Diretório de serviços.
  5. Conceda o papel Leitor do diretório de serviços à conta de serviço do Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com.

  6. Conceda o papel Private Service Connect Authorized Service à sua conta de serviço do Cloud Build para permitir acesso ao recurso da rede VPC, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Você precisa conceder o papel no projeto que contém a rede VPC.

  7. Use pools privados para executar as versões. Se você não tiver criado um pool particular, consulte Criar um novo pool particular.

  8. Siga as instruções para criar um gatilho do GitLab Enterprise Edition (em inglês) e criar repositórios hospedados em uma instância do GitLab Enterprise Edition.

    Se você incluir um certificado autoassinado ou particular ao conectar o host do GitLab Enterprise Edition ao Cloud Build, será necessário definir o URI do host como o nome alternativo do assunto (SAN, na sigla em inglês) do certificado.

Agora, seu gatilho do GitLab Enterprise Edition invoca automaticamente os builds na sua instância do GitLab Enterprise Edition com base na sua configuração.

Compartilhamento de dados

Os dados enviados ao GitLab Enterprise Edition pelo Cloud Build ajudam a identificar gatilhos por nome e ver os resultados de builds nos repositórios do GitLab Enterprise Edition.

Os dados a seguir são compartilhados entre o Cloud Build e o GitLab Enterprise Edition:

  • ID do projeto do Google Cloud
  • Nome do gatilho

A seguir