Membangun repositori dari GitLab Enterprise Edition di jaringan pribadi

Dengan Cloud Build, Anda dapat membuat pemicu untuk mem-build 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.

Halaman ini menjelaskan cara mengaktifkan fungsi pemicu pada instance GITLab Enterprise Edition jika instance Anda dihosting di jaringan pribadi.

Sebelum memulai

  • Enable the Cloud Build, Secret Manager, Compute Engine, and Service Networking APIs.

    Enable the APIs

Membangun repositori dari GitLab Enterprise Edition di jaringan pribadi

Jika instance GitLab Enterprise Edition Anda hanya dapat diakses dalam jaringan VPC, Anda perlu menyiapkan layanan Direktori Layanan dan mem-build menggunakan kumpulan 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:

  1. Aktifkan Service Directory API.

  2. Pastikan Anda telah memberikan peran Project IAM Admin ke project Google Cloud tempat Anda ingin membuat layanan Direktori Layanan. Untuk mempelajari cara memberikan peran IAM, lihat Mengonfigurasi akses ke resource Cloud Build.

  3. Siapkan layanan Direktori Layanan dengan menyelesaikan langkah-langkah berikut:

    1. Mengonfigurasi namespace untuk project Google Cloud.

      Region yang Anda tentukan dalam namespace harus sesuai dengan region yang Anda tentukan dalam koneksi host Cloud Build Anda.

    2. Mengonfigurasi layanan di namespace Anda.

    3. Konfigurasi 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 konfigurasi akses jaringan pribadi lebih lanjut, 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.

  4. Beri Direktori Layanan akses 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_RESOURCE \
       --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
       --role="roles/servicedirectory.viewer"
    

    Dengan keterangan:

    • PROJECT_ID adalah ID project Google Cloud Anda.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE adalah project ID yang berisi resource Direktori Layanan Anda.
  5. Berikan peran Service Directory Viewer ke akun layanan Cloud Build Anda, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com.

  6. Berikan peran Layanan Resmi Private Service Connect ke akun layanan Cloud Build Anda untuk mengizinkan akses ke resource jaringan VPC Anda, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Anda harus memberikan peran dalam project yang berisi jaringan VPC Anda.

  7. Gunakan kumpulan pribadi untuk menjalankan build Anda. Jika Anda belum membuat kolam renang pribadi, lihat membuat kumpulan pribadi baru.

  8. Ikuti petunjuk untuk membuat pemicu GitLab Enterprise Edition untuk mem-build repositori yang dihosting pada instance GitLab Enterprise Edition.

    Jika menyertakan sertifikat yang ditandatangani sendiri atau pribadi saat menghubungkan host GitLab Enterprise Edition ke Cloud Build, Anda harus menetapkan URI host sebagai Nama Alternatif Subjek (SAN) sertifikat Anda.

Pemicu Edisi GitLab Enterprise Anda kini akan otomatis memanggil build di instance Edisi GitLab Enterprise berdasarkan konfigurasi Anda.

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 Edisi GitLab Enterprise:

  • ID project Google Cloud
  • Trigger name

Langkah selanjutnya