Esta página explica como associar um anfitrião do GitLab ao Cloud Build.
Antes de começar
-
Enable the Cloud Build and Secret Manager APIs.
Crie uma associação a um anfitrião do GitLab
Antes de criar uma associação de anfitrião para a sua instância do GitLab, tem de criar tokens de acesso pessoal no GitLab seguindo estes passos:
Inicie sessão 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.
É apresentada a página Tokens de acesso pessoal.
Crie um token de acesso com o âmbito
api
para usar na associação e desassociação de repositórios.Crie um token de acesso com o âmbito
read_api
para garantir que os repositórios do Cloud Build podem aceder ao código-fonte nos repositórios.
Consola
Para associar o seu anfitrião do GitLab ao Cloud Build:
Abra a página Repositórios na Google Cloud consola.
É apresentada a página Repositórios.
Na parte superior da página, selecione o separador 2.ª geração.
No seletor de projetos na barra superior, selecione o seu Google Cloud projeto.
Clique em Criar associação de anfitrião para associar um novo anfitrião ao Cloud Build.
No painel do lado esquerdo, selecione GitLab como fornecedor de origem.
Na secção Configurar associação, introduza as seguintes informações:
Região: selecione uma região para a sua associação.
Nome: introduza um nome para a ligação.
Na secção Detalhes do anfitrião, selecione ou introduza as seguintes informações:
- Fornecedor do GitLab: selecione GitLab.com como fornecedor.
Na secção Tokens de acesso pessoal, introduza as seguintes informações:
Token de acesso à API: introduza o token com o acesso ao âmbito
api
. Este token é usado para associar e desassociar repositórios.Ler chave de acesso à API: introduza a chave com o âmbito
read_api
de acesso. Os acionadores do Cloud Build usam este token para aceder ao código-fonte nos repositórios.
Clique em Ligar.
Depois de clicar no botão Associar, os seus tokens de acesso pessoal são armazenados em segurança no Secret Manager. Após a ligação do anfitrião, o Cloud Build também cria um segredo de webhook em seu nome. Pode ver e gerir os seus segredos na página Secret Manager.
Agora, criou com êxito uma associação do GitLab.
gcloud
Antes de associar o seu anfitrião do GitLab ao Cloud Build, conclua os passos seguintes para armazenar as suas credenciais:
Crie um segredo 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 armazenar os seus segredos num Google Cloud projeto diferente do que planeia usar para criar uma ligação de anfitrião, introduza o seguinte comando para conceder ao seu projeto acesso ao agente do serviço 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"
Onde:
- PROJECT_ID é o ID do seu Google Cloud projeto.
Já pode continuar a associar o seu anfitrião do GitLab ao Cloud Build.
Conclua os seguintes passos:
Para associar o seu anfitrião do GitLab ao Cloud Build:
Introduza o seguinte comando para criar uma associaçã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
Onde:
- CONNECTION_NAME é um nome para a ligação do anfitrião 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 seu Google Cloud projeto.
- REGION é a região da sua ligação.
- API_TOKEN é o nome do seu token com o âmbito
api
. - READ_TOKEN é o nome do seu token com o âmbito
read_api
. - SECRET_VERSION é a versão do seu segredo.
- WEBHOOK_SECRET é o seu código secreto do webhook.
Agora, criou com êxito uma associação do GitLab.
O que se segue?
- Saiba como associar um repositório do GitLab.
- Saiba como criar e implementar as suas cargas de trabalho para Google Cloud usando componentes de CI/CD geridos pela Google no seu pipeline do GitLab. Consulte GitLab em Google Cloud.