Membangun repositori dari GitLab Enterprise Edition di jaringan pribadi

Cloud Build memungkinkan Anda 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 Anda.

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

Sebelum memulai

  • Aktifkan API Cloud Build, Secret Manager, Compute Engine, and Service Networking.

    Mengaktifkan API

Membangun repositori dari GitLab Enterprise Edition di jaringan pribadi

Jika instance GitLab Enterprise Edition hanya dapat diakses dalam jaringan VPC, Anda harus menyiapkan layanan Service Directory dan mem-build menggunakan kumpulan pribadi. Project yang berisi jaringan VPC Anda dapat berada di project yang berbeda dengan project yang berisi layanan Service Directory Anda. Gunakan petunjuk berikut untuk memastikan instance Anda dapat dijangkau sebelum membuat pemicu:

  1. Aktifkan Service Directory API.

  2. Pastikan Anda memiliki peran Project IAM Admin yang diberikan ke project Google Cloud tempat Anda ingin membuat layanan Service Directory. Untuk mempelajari cara memberikan peran IAM, lihat Mengonfigurasi akses ke resource Cloud Build.

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

    1. Konfigurasi namespace untuk project Google Cloud Anda.

      Region yang Anda tentukan di namespace harus cocok dengan region yang Anda tentukan di koneksi host Cloud Build.

    2. Konfigurasi layanan di namespace Anda.

    3. 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.

  4. 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."
    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 project Google Cloud Anda yang berisi Direktori Layanan.
  5. 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."
    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 project Google Cloud Anda yang berisi resource jaringan.
  6. Gunakan kumpulan pribadi untuk menjalankan build Anda. Jika Anda belum membuat kumpulan pribadi, lihat membuat kumpulan pribadi baru.

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

    Jika menyertakan sertifikat pribadi atau yang ditandatangani sendiri saat menghubungkan host GitLab Enterprise Edition ke Cloud Build, Anda harus menetapkan URI host sebagai Nama Alternatif Subjek (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

Service Directory 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. Selain itu, jaringan pribadi Anda perlu dikonfigurasi untuk merutekan rentang ini melalui koneksi Cloud VPN atau Cloud Interconnect.

Jika koneksi menggunakan Cloud Router, Anda dapat mengonfigurasi koneksi untuk berkomunikasi dengan 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-hal berikut:

  • Hanya grup endpoint jaringan (NEG) konektivitas campuran 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 tepi jaringan untuk deployment hibrida.

Untuk mempelajari lebih lanjut cara membuat load balancer HTTPS, lihat Menyiapkan Load Balancer Aplikasi internal dengan konektivitas campuran. Untuk mempelajari lebih lanjut cara membuat load balancer TCP, lihat Menyiapkan Load Balancer Jaringan proxy internal regional dengan konektivitas campuran.

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.

Data berikut dibagikan antara Cloud Build dan GitLab Enterprise Edition:

  • ID project Google Cloud
  • Trigger name

Langkah selanjutnya