Cloud Build memungkinkan Anda membuat pemicu untuk membangun dari repositori yang dihosting di GitLab Enterprise Edition, sehingga Anda dapat menjalankan build sebagai respons terhadap peristiwa seperti push commit atau permintaan penggabungan yang terkait dengan repositori GitLab Enterprise Edition Anda.
Halaman ini menjelaskan cara mengaktifkan fungsi pemicu pada instance GitLab Enterprise Edition jika instance Anda dihosting di jaringan pribadi.
Sebelum memulai
Aktifkan Cloud Build, Secret Manager, Compute Engine, dan Service Networking API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
- Ikuti petunjuk untuk menghubungkan host GitLab Enterprise Edition.
- Ikuti petunjuk untuk menghubungkan repositori GitLab Enterprise Edition.
Membangun repositori dari GitLab Enterprise Edition di jaringan pribadi
Jika instance GitLab Enterprise Edition Anda hanya dapat diakses dalam jaringan VPC, Anda harus menyiapkan layanan Direktori Layanan dan membangun menggunakan pool pribadi. Project yang berisi jaringan VPC Anda dapat berada di project yang berbeda dengan project yang berisi layanan Direktori Layanan Anda. Gunakan petunjuk berikut untuk memastikan instance Anda dapat dijangkau sebelum membuat pemicu:
Aktifkan Service Directory API.
Pastikan Anda memiliki peran Project IAM Admin yang diberikan ke projectGoogle Cloud tempat Anda ingin membuat layanan Direktori Layanan. Untuk mempelajari cara memberikan peran IAM, lihat Mengonfigurasi akses ke resource Cloud Build.
Siapkan layanan Direktori Layanan dengan menyelesaikan langkah-langkah berikut:
Konfigurasikan namespace untuk project Google Cloud Anda.
Region yang Anda tentukan di namespace harus cocok dengan region yang Anda tentukan di koneksi host Cloud Build.
Konfigurasi layanan di namespace Anda.
Konfigurasikan endpoint untuk layanan terdaftar Anda.
Saat mengonfigurasi endpoint, Anda harus menggunakan alamat IP internal dan menentukan nomor port HTTPS agar Cloud Build dapat menjangkau layanan Anda.
Untuk mempelajari lebih lanjut konfigurasi akses jaringan pribadi, lihat Mengonfigurasi akses jaringan pribadi. Direktori Layanan juga menyediakan integrasi dengan layanan seperti load balancer dan Google Kubernetes Engine (GKE). Untuk mempelajari lebih lanjut, lihat Ringkasan Direktori Layanan dan load balancing atau Ringkasan Direktori Layanan untuk GKE.
Berikan akses Direktori Layanan ke agen layanan Cloud Build:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.viewer"Ganti kode berikut:
- PROJECT_ID adalah project ID Cloud Build Anda.
- PROJECT_ID_CONTAINING_SERVICE_DIRECTORY adalah ID projectGoogle Cloud Anda yang berisi Direktori Layanan.
Berikan akses resource jaringan VPC ke agen layanan Cloud Build:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.pscAuthorizedService"Ganti kode berikut:
- PROJECT_ID adalah project ID Cloud Build Anda.
- PROJECT_ID_CONTAINING_NETWORK_RESOURCE adalah ID projectGoogle Cloud Anda yang berisi resource jaringan.
Gunakan pool pribadi untuk menjalankan build Anda. Jika Anda belum membuat pool pribadi, lihat membuat pool pribadi baru.
Ikuti petunjuk untuk membuat pemicu GitLab Enterprise Edition guna membangun repositori yang dihosting di instance GitLab Enterprise Edition.
Jika Anda menyertakan sertifikat yang ditandatangani sendiri atau pribadi saat menghubungkan host GitLab Enterprise Edition ke Cloud Build, Anda harus menetapkan URI host sebagai Subject Alternative Name (SAN) sertifikat Anda.
Pemicu GitLab Enterprise Edition Anda kini akan otomatis memanggil build di instance GitLab Enterprise Edition berdasarkan konfigurasi Anda.
Menggunakan Direktori Layanan untuk menjangkau host di luar Google Cloud
Direktori Layanan menggunakan rentang alamat IP 35.199.192.0/19 untuk menghubungkan host Anda di luar Google Cloud. Anda harus menambahkan rentang ini ke
daftar yang diizinkan di firewall Anda. Selain itu, jaringan pribadi Anda harus dikonfigurasi untuk merutekan rentang ini melalui koneksi Cloud VPN atau Cloud Interconnect.
Jika koneksi Anda menggunakan Cloud Router, Anda dapat mengonfigurasi koneksi untuk mengomunikasikan rentang ke jaringan pribadi Anda.
Untuk mempelajari lebih lanjut, lihat Mengonfigurasi akses jaringan pribadi.
Menggunakan Cloud Load Balancing untuk menjangkau host di luar Google Cloud
Jika konfigurasi jaringan Anda tidak memungkinkan Anda merutekan
rentang alamat IP Direktori Layanan 35.199.192.0/19 ke
Cloud VPN atau Cloud Interconnect, Anda dapat
membuat load balancer menggunakan
Cloud Load Balancing yang mengarahkan traffic ke host Anda.
Saat membuat endpoint Direktori Layanan, pastikan untuk menggunakan alamat IP aturan penerusan load balancer, bukan alamat IP host Anda. Anda dapat menggunakan load balancer HTTPS internal atau load balancer transmission control protocol (TCP) internal saat membuat endpoint.
Saat membuat load balancer TCP, pertimbangkan hal berikut:
- Hanya grup endpoint jaringan (NEG) konektivitas hybrid yang diperlukan untuk menjangkau host Anda.
- Load balancer TCP tidak memerlukan kunci pribadi yang tidak dienkripsi untuk sertifikat SSL Anda.
- Penyiapan Cloud VPN Anda harus menggunakan Cloud Router dengan perutean dinamis global. Jika Cloud VPN Anda menggunakan perutean statis, Anda dapat menggunakan proxy yang menggunakan Cloud Service Mesh. Untuk mempelajari lebih lanjut, lihat Menyiapkan layanan edge jaringan untuk deployment hybrid.
Untuk mempelajari lebih lanjut cara membuat load balancer HTTPS, lihat Menyiapkan Load Balancer Aplikasi internal dengan konektivitas hybrid. Untuk mempelajari lebih lanjut cara membuat load balancer TCP, lihat Menyiapkan Load Balancer Jaringan proxy internal regional dengan konektivitas hybrid.
Berbagi data
Data yang dikirim ke GitLab Enterprise Edition dari Cloud Build membantu Anda mengidentifikasi pemicu berdasarkan nama dan melihat hasil build di repositori GitLab Enterprise Edition Anda.
Data berikut dibagikan antara Cloud Build dan GitLab Enterprise Edition:
- Google Cloud project ID
- Nama pemicu
Langkah berikutnya
- Pelajari cara mengelola pemicu build.
- Pelajari cara melakukan deployment blue/green di Compute Engine.