Membangun repositori dari GitHub Enterprise di jaringan pribadi

Cloud Build memungkinkan Anda membuat pemicu pada instance GitHub Enterprise. Halaman ini menjelaskan cara menggunakan pemicu GitHub Enterprise untuk memanggil build sebagai respons terhadap commit atau permintaan pull dari instance GitHub Enterprise dan menjelaskan cara mem-build repositori dari GitHub Enterprise jika instance Anda dihosting di jaringan pribadi.

Sebelum memulai

  • Enable the Cloud Build and Service Directory APIs.

    Enable the APIs

  • Jika Anda belum membuat kumpulan pribadi, ikuti petunjuk di Membuat dan mengelola kumpulan pribadi untuk membuat kumpulan pribadi. Anda memerlukan kumpulan pribadi untuk membangun jaringan pribadi.

Membangun repositori dari GitHub Enterprise di jaringan pribadi

Selesaikan langkah-langkah berikut untuk menghubungkan instance GitHub Enterprise ke Cloud Build dari jaringan pribadi:

  1. Berikan akses ke Agen Layanan Cloud Build untuk menggunakan Direktori Layanan:

    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 ID project Google Cloud Anda.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY adalah ID project Google Cloud yang berisi Direktori Layanan Anda.
  2. Berikan akses ke resource jaringan VPC Anda, dengan PROJECT_ID_CONTAINING_NETWORK_RESOURCE sebagai ID project Google Cloud yang berisi resource jaringan Anda.

    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
      --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
      --role="roles/servicedirectory.pscAuthorizedService"
    
  3. Siapkan layanan Direktori Layanan dengan menyelesaikan langkah-langkah di bawah:

    1. Konfigurasikan namespace untuk layanan Anda:

       gcloud service-directory namespaces create NAMESPACE --location=REGION --project=PROJECT_ID_CONTAINING_SERVICE_DIRECTORY
      

      Ganti kode berikut:

      • NAMESPACE adalah nama namespace Direktori Layanan Anda.
      • LOCATION adalah region tempat Anda membuat koneksi dan menautkan repositori.
      • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY adalah ID project Google Cloud yang berisi Direktori Layanan Anda.
    2. Konfigurasikan layanan untuk namespace Anda:

       gcloud service-directory services create SERVICE --namespace=NAMESPACE --location=LOCATION
      

      Ganti kode berikut:

      • SERVICE adalah nama resource Direktori Layanan Anda.
      • NAMESPACE adalah nama namespace Direktori Layanan Anda.
      • LOCATION adalah region tempat Anda membuat koneksi dan menautkan repositori.
    3. Konfigurasikan endpoint untuk layanan Anda:

       gcloud service-directory endpoints create ENDPOINT_NAME \
         --namespace=NAMESPACE \
         --service=SERVICE \
         --location=LOCATION \
         --address=INSTANCE_IP_ADDRESS \
         --port=PORT \
         --network=projects/PROJECT_ID_CONTAINING_NETWORK/locations/us-central1/ networks/NETWORK
      

      Ganti kode berikut:

      • ENDPOINT_NAME adalah nama endpoint Anda.
      • NAMESPACE adalah nama namespace Direktori Layanan Anda.
      • SERVICE adalah nama resource Direktori Layanan Anda.
      • LOCATION adalah region tempat Anda membuat koneksi dan menautkan repositori.
      • INSTANCE_IP_ADDRESS adalah alamat IP instance GitHub Enterprise di jaringan Anda. Contoh, 123.45.67.89. Untuk mempelajari lebih lanjut, lihat Menggunakan Direktori Layanan untuk menjangkau host di luar Google Cloud.
      • PORT adalah nama port untuk HTTPS.
      • PROJECT_ID_CONTAINING_NETWORK adalah ID project Google Cloud yang berisi jaringan VPC Anda.
      • NETWORK adalah nama jaringan VPC Anda.

    Anda kini dapat menggunakan resource layanan (projects/{PROJECT_ID}/locations/{LOCATION}/namespaces/{NAMESPACE}/services/{SERVICE}) untuk membuat koneksi dalam langkah berikut.

  4. Hubungkan host GitHub Enterprise.

  5. Hubungkan repositori GitHub Enterprise.

  6. Buat pemicu GitHub Enterprise untuk mem-build repositori yang dihosting di instance GitHub Enterprise 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 GitHub Enterprise Anda. Anda harus mengizinkan rentang ini di firewall. Selain itu, jaringan pribadi Anda perlu dikonfigurasi untuk merutekan rentang ini melalui koneksi Cloud VPN atau Cloud Interconnect.

Jika koneksi Anda menggunakan Cloud Router, Anda dapat mengonfigurasi koneksi untuk mengiklankan jangkauan 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 tidak mengizinkan 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 Anda menggunakan alamat IP aturan penerusan load balancer, bukan alamat IP host Anda. Anda dapat menggunakan load balancer HTTPS internal atau load balancer protokol kontrol transmisi internal (TCP) saat membuat endpoint.

Saat membuat load balancer TCP, pertimbangkan hal-hal berikut:

  • Hanya grup endpoint jaringan konektivitas hybrid (NEG) yang diperlukan untuk menjangkau host Anda.
  • Load balancer TCP tidak memerlukan kunci pribadi yang tidak dienkripsi untuk sertifikat SSL Anda.
  • Penyiapan Cloud VPN Anda perlu menggunakan Cloud Router dengan perutean dinamis global. Jika Cloud VPN menggunakan perutean statis, Anda dapat menggunakan proxy yang menggunakan Traffic Director. 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, baca artikel Menyiapkan Load Balancer Jaringan proxy internal regional dengan konektivitas hybrid.

Langkah berikutnya