Halaman ini menjelaskan cara menghubungkan host GitLab ke Cloud Build.
Sebelum memulai
-
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.enablepermission. Learn how to grant roles.
Menghubungkan ke host GitLab
Sebelum membuat koneksi host untuk instance GitLab, Anda harus membuat token akses pribadi di GitLab dengan menyelesaikan langkah-langkah berikut:
Login ke instance GitLab Anda.
Di halaman GitLab untuk instance Anda, klik avatar Anda di pojok kanan atas.
Klik Edit profil.
Di sidebar kiri, pilih Token akses.
Anda akan melihat halaman Personal Access Tokens.
Buat token akses dengan cakupan
apiuntuk digunakan dalam menghubungkan dan memutuskan hubungan repositori.Buat token akses dengan cakupan
read_apiuntuk memastikan repositori Cloud Build dapat mengakses kode sumber di repositori.
Konsol
Untuk menghubungkan host GitLab Anda ke Cloud Build:
Buka halaman Repositori di Google Cloud konsol.
Anda akan melihat halaman Repositories.
Di bagian atas halaman, pilih tab Generasi ke-2.
Di pemilih project di panel atas, pilih Google Cloud project Anda.
Klik Buat koneksi host untuk menghubungkan host baru ke Cloud Build.
Di panel kiri, pilih GitLab sebagai penyedia sumber Anda.
Di bagian Configure Connection, masukkan informasi berikut:
Region: Pilih region untuk koneksi Anda.
Name: Masukkan nama untuk koneksi Anda.
Di bagian Host details, pilih atau masukkan informasi berikut:
- Penyedia GitLab: Pilih GitLab.com sebagai penyedia Anda.
Di bagian Personal access tokens, masukkan informasi berikut:
Token akses API: Masukkan token dengan akses cakupan
api. Token ini digunakan untuk menghubungkan dan memutuskan hubungan repositori.Token akses API baca: Masukkan token dengan cakupan
read_apiakses. Pemicu Cloud Build menggunakan token ini untuk mengakses kode sumber di repositori.
Klik Hubungkan.
Setelah mengklik tombol Connect, token akses pribadi Anda akan disimpan dengan aman di Secret Manager. Setelah koneksi host, Cloud Build juga membuat secret webhook untuk Anda. Anda dapat melihat dan mengelola secret di halaman Secret Manager.
Anda kini telah berhasil membuat koneksi GitLab.
gcloud
Sebelum menghubungkan host GitLab ke Cloud Build, selesaikan langkah-langkah berikut untuk menyimpan kredensial Anda:
Buat secret webhook di Secret Manager dengan menjalankan perintah berikut:
cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-Jika Anda menyimpan rahasia di project Google Cloud lain daripada project yang akan Anda gunakan untuk membuat koneksi host, masukkan perintah berikut untuk memberikan akses project Anda ke agen layanan 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"Dengan:
- PROJECT_ID adalah Google Cloud project ID Anda.
Sekarang Anda dapat melanjutkan untuk menghubungkan host GitLab ke Cloud Build.
Selesaikan langkah-langkah berikut:
Untuk menghubungkan host GitLab Anda ke Cloud Build:
Masukkan perintah berikut untuk membuat koneksi 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_VERSIONDengan:
- CONNECTION_NAME adalah nama untuk koneksi host GitLab Anda di Cloud Build.
- HOST_URI adalah URI instance GitLab Anda. Contoh,
https://my-gle-server.net. - PROJECT_ID adalah Google Cloud project ID Anda.
- REGION adalah region untuk koneksi Anda.
- API_TOKEN adalah nama token Anda dengan cakupan
api. - READ_TOKEN adalah nama token Anda dengan cakupan
read_api. - SECRET_VERSION adalah versi secret Anda.
- WEBHOOK_SECRET adalah rahasia webhook Anda.
Anda kini telah berhasil membuat koneksi GitLab.
Mengganti token akses GitLab yang lama atau telah habis masa berlakunya
Jika token akses GitLab Anda berakhir masa berlakunya, koneksi host Cloud Build Anda akan terputus dari repositori GitLab-nya. Akibatnya, Anda akan melihat error dalam situasi berikut:
Saat Anda mencoba menautkan koneksi Cloud Build repositori GitLab, pesan
Failed to fetch repositories to link. Check that Cloud Build is still authorized to access data from the selected connectionakan muncul.Di halaman Pemicu, saat Anda mengklik Jalankan, halaman Jalankan pemicu akan terbuka dan menampilkan pesan
Failed to list branches. You can still enter one manually
Untuk mengganti token lama atau yang sudah habis masa berlakunya untuk koneksi Anda, lakukan hal berikut:
Temukan rahasia yang terkait dengan koneksi host Anda:
Jalankan perintah berikut:
gcloud builds connections describe CONNECTION_PATH --region=REGIONDengan:
- CONNECTION_PATH adalah jalur koneksi host GitLab
Anda di Cloud Build, dalam format
projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME. - REGION adalah region untuk koneksi Anda.
- CONNECTION_PATH adalah jalur koneksi host GitLab
Anda di Cloud Build, dalam format
Di output perintah, cari nilai kolom token pengguna Anda.
readAuthorizerCredential.userTokenSecretVersionmenampilkan nama Secret Manager untuk tokenread_api, danauthorizerCredential.userTokenSecretVersionmenampilkan nama Secret Manager untuk tokenapi. Nama ini disimpan sebagai secret di Secret Manager.
Ganti setiap token akses di GitLab:
Buka repositori GitLab yang terhubung ke koneksi host Cloud Build Anda.
Ikuti petunjuk dalam dokumentasi GitLab untuk merotasi token akses. Saat Anda mengganti token, GitLab akan membuat token baru dengan kredensial baru dan membatalkan validasi token versi sebelumnya. Token yang dirotasi memiliki izin dan cakupan yang sama dengan token asli.
Salin ID token yang dirotasi.
Buat versi rahasia baru untuk setiap token:
Buka halaman Secret Manager di konsol Google Cloud :
Untuk setiap token yang Anda ganti, temukan nama rahasia yang Anda identifikasi di Langkah 1, lalu klik Actions, kemudian klik Add new version.
Di jendela Add new version, masukkan ID token yang dirotasi, lalu klik Add new version.
Langkah berikutnya
- Pelajari cara menghubungkan repositori GitLab.
- Pelajari cara membangun dan men-deploy workload Anda ke Google Cloud menggunakan komponen CI/CD yang dikelola Google di pipeline GitLab Anda. Lihat GitLab di Google Cloud.