Nesta página, explicamos como conectar um host do GitLab ao Cloud Build.
Antes de começar
-
Enable the Cloud Build and Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Conectar-se a um host do GitLab
Antes de criar uma conexão de host para sua instância do GitLab, é necessário criar tokens de acesso pessoal no GitLab seguindo estas etapas:
Faça login na sua instância do GitLab.
Na página do GitLab da sua instância, clique no seu avatar no canto superior direito.
Clique em Editar perfil.
Na barra lateral à esquerda, selecione Tokens de acesso.
A página Tokens de acesso pessoal vai aparecer.
Crie um token de acesso com o escopo
api
para usar na conexão e desconexão de repositórios.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 seu host do GitLab ao Cloud Build:
Abra a página Repositórios no console do Google Cloud .
A página Repositórios vai aparecer.
Na parte de cima da página, selecione a guia 2ª geração.
No seletor de projetos, na barra superior, selecione seu projeto Google Cloud .
Clique em Criar conexão de host para conectar um novo host ao Cloud Build.
No painel à esquerda, selecione GitLab como seu provedor de origem.
Na seção Configurar conexão, insira as seguintes informações:
Região: selecione uma região para sua conexão.
Nome: insira um nome para a conexão.
Na seção Detalhes do host, selecione ou insira as seguintes informações:
- Provedor do GitLab: selecione GitLab.com como seu provedor.
Na seção Tokens de acesso pessoal, insira as seguintes informações:
Token de acesso à API: insira o token com o acesso ao escopo
api
. Esse token é usado para conectar e desconectar repositórios.Ler token de acesso à API: insira o token com o acesso ao escopo
read_api
. Os gatilhos do Cloud Build usam esse token para acessar o código fonte nos repositórios.
Clique em Conectar.
Depois de clicar no botão Conectar, seus tokens de acesso pessoal serão armazenados com segurança no Secret Manager. Depois da conexão de host, o Cloud Build também cria um segredo de webhook em seu nome. Você pode acessar e gerenciar seus secrets na página Secret Manager.
Você criou uma conexão do GitLab com sucesso.
gcloud
Antes de conectar seu host do GitLab ao Cloud Build, conclua as etapas a seguir para armazenar suas credenciais:
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=-
Se você armazenar seus segredos em um projeto Google Cloud diferente daquele que planeja usar para criar uma conexão de host, insira 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 Google Cloud .
Agora você pode conectar seu host do GitLab ao Cloud Build.
Siga estas etapas:
Para conectar seu host do GitLab ao Cloud Build:
Insira 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 sua conexão de host do GitLab no Cloud Build.
- HOST_URI é o URI da sua instância do GitLab. Por exemplo,
https://my-gle-server.net
. - PROJECT_ID é o ID do projeto Google Cloud .
- REGION é a região da sua conexão.
- API_TOKEN é o nome do seu token com o
api
scope. - READ_TOKEN é o nome do seu token com o
read_api
scope. - SECRET_VERSION é a versão do seu secret.
- WEBHOOK_SECRET é o secret do webhook.
Você criou uma conexão do GitLab com sucesso.
A seguir
- Saiba como conectar um repositório do GitLab.
- Saiba como criar e implantar suas cargas de trabalho no Google Cloud usando componentes de CI/CD gerenciados pelo Google no seu pipeline do GitLab. Consulte GitLab no Google Cloud.