Conectar-se a um host do GitLab

Esta página explica como conectar um host do GitLab (em inglês) para o Cloud Build.

Antes de começar

  • Ative as APIs Cloud Build and Secret Manager.

    Ative as 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 Enterprise Edition.

  2. Na página do GitLab Enterprise Edition 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 Personal Access Tokens será exibida.

  5. Crie um token de acesso com o escopo api para conectar e desconectar repositórios.

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

Console

Para conectar seu 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ê verá a página Repositórios.

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

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

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

  5. No painel esquerdo, selecione GitLab como seu provedor de origem.

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

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

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

  7. Na seção Detalhes do host, selecione ou digite o seguinte: informações:

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

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

    2. Read API access token: insira o token com o escopo read_api. acesso. Os gatilhos do Cloud Build usam esse token para acessar a origem códigos em repositórios.

  9. Clique em Conectar.

    Depois de clicar no botão Conectar, seus tokens de acesso pessoal serão armazenados com segurança no Secret Manager. Seguindo do host, o Cloud Build também cria um secret do webhook em seu nome. É possível consultar e gerenciar os secrets no Secret Manager.

Você criou uma conexão do GitLab.

gcloud

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

  1. Armazene seu token no Secret Manager.

  2. Crie um secret do webhook no Secret Manager ao executar 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 secrets em um projeto do Google Cloud diferente daquele que planeja usar para criar uma conexão de host, digite o seguinte comando para conceder ao seu 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 projeto no Google Cloud.

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

Siga estas etapas:

Para conectar seu 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 instância do GitLab. Por exemplo, https://my-gle-server.net.
    • PROJECT_ID é o ID do projeto no Google Cloud.
    • REGION é a região da conexão.
    • API_TOKEN é o nome do seu token com escopo api.
    • READ_TOKEN é o nome do seu 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