Halaman ini menjelaskan proses untuk menyiapkan pemicu Cloud Build guna mengotomatiskan deployment resource Google Cloud menggunakan repositori dan Infrastructure Manager yang ada.
Setelah Infra Manager terhubung ke repositori Git Anda, permintaan pull akan memanggil pratinjau deployment, dan commit akan memanggil pembuatan pratinjau deployment atau pembaruan deployment.
Sebelum memulai
- Pastikan Infra Manager diaktifkan.
- Pastikan Anda memiliki izin IAM yang diperlukan untuk membuat deployment:
roles/config.admin
- Pastikan Anda memiliki akun layanan dengan izin yang diperlukan. Untuk mengetahui detailnya, lihat Mengonfigurasi akun layanan.
- Identifikasi repositori Git yang ada yang memiliki konfigurasi Terraform. Saat Anda menyiapkan otomatisasi yang dijelaskan di halaman ini, ini adalah konfigurasi Terraform yang digunakan Infra Manager untuk mengupdate resource.
- Direkomendasikan: Siapkan perlindungan cabang untuk repositori Git Anda.
Mengotomatiskan deployment resource Google Cloud
Langkah-langkah berikut menjelaskan penyiapan yang diperlukan untuk mengotomatiskan pratinjau dan deployment konfigurasi Terraform yang disimpan di repositori Git. Deployment konfigurasi Terraform dapat berupa revisi pada deployment yang ada. Revisi dapat menghapus atau mengganti resource Google Cloud yang disediakan.
Setelah penyiapan selesai, permintaan pull di repositori Git akan menyebabkan Infra Manager membuat pratinjau deployment. Saat permintaan pull digabungkan, Infra Manager akan otomatis men-deploy konfigurasi Terraform.
Modul im_cloudbuild_workspace
membuat beberapa resource, termasuk:
- Koneksi repositori Cloud Build.
- Pemicu Cloud Build yang dipanggil saat permintaan pull dibuat. Pemicu ini menyebabkan Infra Manager membuat deployment pratinjau menggunakan konfigurasi Terraform di repositori.
- Pemicu Cloud Build yang dipanggil saat permintaan pull digabungkan dengan repositori GitHub. Pemicu ini menyebabkan Infra Manager membuat atau mengupdate deployment menggunakan konfigurasi Terraform di repositori.
Untuk mengotomatiskan deployment konfigurasi Terraform saat repositori diupdate:
- Instal Aplikasi GitHub Cloud Build di akun GitHub Anda atau di organisasi yang Anda miliki.
-
Pastikan untuk menetapkan token Anda agar tidak memiliki tanggal habis masa berlaku dan pilih izin berikut saat diminta di GitHub:
repo
danread:user
. Jika aplikasi Anda diinstal di organisasi, pastikan untuk juga memilih izinread:org
.Setelah membuat token akses pribadi, simpan token yang dihasilkan di tempat yang aman. Anda akan menggunakan token yang dibuat di langkah-langkah berikut.
Salin modul
im_cloudbuild_workspace
ke dalam filemain.tf
dalam repositori Git Anda:module "im-workspace" { source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace" version = "~> 7.0" project_id = PROJECT_ID deployment_id = DEPLOYMENT_ID im_deployment_repo_uri = GIT_REPO im_deployment_ref = REF github_app_installation_id = GIT_APP_ID github_personal_access_token = TOKEN }
Ganti:
- PROJECT_ID: project ID tempat Infrastructure Manager berjalan.
- DEPLOYMENT_ID: ID deployment yang Anda tentukan. Lihat Nama deployment untuk mengetahui detail tentang batasan pada ID deployment.
- GIT_REPO: URI repositori Git.
- REF: referensi Git konfigurasi. Referensi bersifat opsional. Jika Anda tidak menentukan referensi, cabang yang dikonfigurasi default repositori Git akan digunakan.
- GIT_APP_ID: ID penginstalan aplikasi GitHub Cloud Build yang digunakan untuk pemicu permintaan pull dan push.
- TOKEN: Token akses pribadi untuk repositori GitHub. Jika disediakan, akan membuat secret dalam Secret Manager.
Buat deployment (atau perbarui deployment yang ada) dengan modul
im_cloudbuild_workspace
:gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo=GIT_REPO \ --git-source-directory=DIRECTORY \ --git-source-ref=REF
Ganti:
- PROJECT_ID: project ID tempat Infrastructure Manager berjalan.
- LOCATION: lokasi tempat Infra Manager berjalan. Lihat Lokasi Infrastructure Manager untuk mengetahui daftar lokasi.
- DEPLOYMENT_ID: ID deployment yang Anda tentukan. Lihat Nama deployment untuk mengetahui detail tentang batasan pada ID deployment.
- SERVICE_ACCOUNT: nama akun layanan yang Anda gunakan untuk memanggil Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID adalah project ID akun layanan. Biasanya, project ini adalah project yang sama dengan tempat Infrastructure Manager berjalan.
- GIT_REPO: repositori Git publik.
- DIRECTORY: direktori yang memiliki konfigurasi Terraform.
- REF: referensi Git konfigurasi. Referensi bersifat opsional. Jika Anda tidak menentukan referensi, cabang yang dikonfigurasi default repositori Git akan digunakan.
Untuk mengonfirmasi bahwa repositori Git Anda terhubung dengan benar dengan Infra Manager, buat permintaan pull di repositori Anda.
Untuk melihat hasil validasi konfigurasi Terraform yang di-fork, lihat permintaan pull di GitHub.
Setelah otomatisasi ini disiapkan, pemicu Cloud Build akan menyebabkan hal berikut:
- Saat permintaan pull dibuat ke repositori, Infra Manager akan membuat deployment pratinjau menggunakan konfigurasi Terraform yang di-fork dan disimpan di repositori Git.
- Saat permintaan pull digabungkan ke repositori, Pengelola Infra akan mengupdate deployment menggunakan konfigurasi Terraform yang di-fork dan disimpan di repositori Git.
Langkah selanjutnya
- Gunakan Cloud Build untuk melihat hasil build untuk pemicu build Anda.
- Lihat resource yang di-deploy dengan Infra Manager.
- Pantau resource Google Cloud Anda dengan logging audit Infrastructure Manager.