Conectar-se a um host do GitLab

Esta página explica como conectar um host do GitLab ao Cloud Build.

Antes de começar

  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

Como se conectar a um host do GitLab

Antes de criar uma conexão de host para sua instância do GitLab, crie tokens de acesso pessoal no GitLab seguindo estas etapas:

  1. Faça login na sua instância do GitLab.

  2. Na página do GitLab da sua instância, clique no seu avatar no canto superior direito.

  3. Clique em Editar perfil.

  4. Na barra lateral esquerda, selecione Tokens de acesso.

    A página Tokens de acesso pessoal vai aparecer.

  5. Crie um token de acesso com o escopo api para usar na conexão e desconexão de repositórios.

  6. Crie um token de acesso com o escopo read_api para garantir que os repositórios do Cloud Build possam acessar o código-fonte nos repositórios.

Console

Para conectar o host do GitLab ao Cloud Build:

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

    Você vai encontrar a página Repositórios.

  2. Na parte de cima da página, selecione a guia 2ª geração.

  3. No seletor de projetos, na barra superior, selecione seu projeto do Google Cloud.

  4. Clique em Criar conexão de host para conectar um novo host ao Cloud Build.

  5. No painel à esquerda, selecione GitLab como o provedor de origem.

  6. Na seção Configurar conexão, insira as seguintes informações:

    1. Região: selecione uma região para a conexão.

    2. Nome: insira um nome para a conexão.

  7. Na seção Detalhes do host, selecione ou insira as seguintes informações:

    1. Provedor do GitLab: selecione GitLab.com como seu provedor.
  8. Na seção Personal access tokens, insira as seguintes informações:

    1. Token de acesso à API: insira o token com o acesso de escopo api. Esse token é usado para conectar e desconectar repositórios.

    2. Ler token de acesso à API: insira o token com o acesso de escopo read_api. Os gatilhos do Cloud Build usam esse token para acessar o código-fonte em repositórios.

  9. Clique em Conectar.

    Depois de clicar no botão Conectar, seus tokens de acesso pessoal são armazenados com segurança no Secret Manager. Após a conexão do host, o Cloud Build também cria um segredo de webhook em seu nome. Você pode conferir e gerenciar seus segredos na página Secret Manager.

Você criou uma conexão do GitLab.

gcloud

Antes de conectar o host do GitLab ao Cloud Build, siga estas etapas para armazenar suas credenciais:

  1. Armazene seu token no Secret Manager.

  2. Crie um secret de webhook no Secret Manager executando o seguinte comando:

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. Se você armazenar os segredos em um projeto Google Cloud diferente daquele que pretende usar para criar uma conexão de host, insira o comando a seguir para conceder ao projeto acesso ao agente de serviço do Cloud Build:

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

    Em que:

    • PROJECT_ID é o ID do Google Cloud projeto.

Agora você pode conectar seu host do GitLab ao Cloud Build.

Siga estas etapas:

Para conectar o host do GitLab ao Cloud Build:

  1. Digite o seguinte comando para criar uma conexão do GitLab:

    gcloud builds connections create gitlab CONNECTION_NAME \
      --host-uri=HOST_URI \
      --project=PROJECT_ID \
      --region=REGION \
      --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \
      --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \
      --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION
    

    Em que:

    • CONNECTION_NAME é o nome da conexão.
    • HOST_URI é o URI da sua instância do GitLab. Por exemplo, https://my-gle-server.net.
    • PROJECT_ID é o ID do Google Cloud projeto.
    • REGION é a região da sua conexão.
    • API_TOKEN é o nome do token com escopo api.
    • READ_TOKEN é o nome do token com escopo read_api.
    • SECRET_VERSION é a versão do secret.
    • WEBHOOK_SECRET é o secret do webhook.

Você criou uma conexão do GitLab.

A seguir