Cloud Build memungkinkan Anda membuat pemicu di 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.
- Jika Anda belum membuat kumpulan pribadi, ikuti petunjuk di bagian Membuat dan mengelola kumpulan pribadi untuk membuat kumpulan pribadi. Anda memerlukan kumpulan pribadi untuk membuat build di jaringan pribadi.
Membangun repositori dari GitHub Enterprise di jaringan pribadi
Selesaikan langkah-langkah berikut untuk menghubungkan instance GitHub Enterprise Anda ke Cloud Build dari jaringan pribadi:
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 project Google 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 project Google Cloud Anda yang berisi resource jaringan.
Siapkan layanan Direktori Layanan dengan menyelesaikan langkah-langkah berikut:
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 Anda yang berisi Direktori Layanan.
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.
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 Service Directory untuk menjangkau host di luar Google Cloud. - PORT adalah nama port Anda untuk HTTPS.
- PROJECT_ID_CONTAINING_NETWORK adalah project ID Google Cloud Anda yang berisi jaringan VPC.
- NETWORK adalah nama jaringan VPC Anda.
Anda sekarang dapat menggunakan resource layanan (
projects/{PROJECT_ID}/locations/{LOCATION}/namespaces/{NAMESPACE}/services/{SERVICE}
) untuk membuat koneksi dalam langkah-langkah berikut.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
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.
Langkah berikutnya
- Pelajari cara membuat dan mengelola pemicu build.
- Pelajari cara melakukan deployment blue/green di Compute Engine.