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

O Cloud Build permite criar gatilhos para criar a partir de repositórios hospedados no GitLab Enterprise Edition, permitindo que você execute builds 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 a funcionalidade do gatilho em um GitLab Instância do 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 a instância do GitLab Enterprise Edition só puder ser acessada em um rede VPC, é preciso configurar uma Serviço do Diretório de serviços e criação usando pools particulares. A projeto que contém sua rede VPC pode existir em outro 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 criação de gatilhos:

  1. Ative o API Service Directory.

  2. Verifique se você tem o papel Administrador de IAM do projeto concedido à projeto do Google Cloud em que você pretende criar Serviço do Diretório de serviços em. 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 concluindo as seguintes etapas:

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

      A região especificada no seu namespace precisa corresponder à região que você especificar na conexão de host do Cloud Build.

    2. Configurar um serviço no seu namespace.

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

      Ao configurar um endpoint, é obrigatório usar um endereço IP interno e especifique um número de porta HTTPS para que o Cloud Build alcance 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 oferece integração com serviços balanceadores de carga e o Google Kubernetes Engine (GKE). Para saber mais, consulte Visão geral do diretório de serviços e do balanceamento de carga ou Visão geral do Diretório de serviços para GKE.

  4. Conceder acesso ao Diretório de serviços ao Cloud Build Agente de serviço:

    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 aos conta de serviço do Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com

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

  7. Use pools privados para executar dos builds. Se você não tiver criado um pool privado, consulte Criar um novo pool pool privado.

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

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

Seu gatilho do GitLab Enterprise Edition agora invocará builds automaticamente em sua instância do GitLab Enterprise Edition com base na sua configuração.

Compartilhamento de dados

Os dados enviados do Cloud Build para o GitLab Enterprise Edition ajudam identificar gatilhos por nome e conferir os resultados de build no GitLab Enterprise Repositórios de edição.

Os dados a seguir são compartilhados entre o Cloud Build e o GitLab Edição empresarial:

  • ID do projeto do Google Cloud
  • Nome do gatilho

A seguir