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

  • Enable the Cloud Build, Secret Manager, Compute Engine, and Service Networking APIs.

    Enable the 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 uma rede VPC, será necessário configurar um serviço do Diretório de serviços e criar usando pools particulares. O 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 de Administrador do IAM do projeto concedido ao projeto do Google Cloud em que você pretende criar seu serviço do Service Directory. 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. Configure 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 o 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 como 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. Conceda ao agente de serviço do Cloud Build acesso ao Diretório de serviços:

    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 \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.viewer"
    

    Substitua:

    • PROJECT_ID é o ID do projeto do Cloud Build.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY é o ID do projeto do Google Cloud que contém o diretório de serviços.
  5. Conceda ao agente de serviço do Cloud Build acesso aos recursos de rede VPC:

    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_NETWORK_RESOURCE \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.pscAuthorizedService"
    

    Substitua:

    • PROJECT_ID é o ID do projeto do Cloud Build.
    • PROJECT_ID_CONTAINING_NETWORK_RESOURCE é o ID do Projeto do Google Cloud que contém o recurso de rede.
  6. Use pools privados para executar dos builds. Se você não tiver criado um pool privado, consulte Criar um novo pool pool privado.

  7. 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.

Agora, o gatilho do GitLab Enterprise Edition vai invocar automaticamente os builds na 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