Mengotomatiskan deployment resource Google Cloud

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

  1. Pastikan Infra Manager diaktifkan.
  2. Pastikan Anda memiliki izin IAM yang diperlukan untuk membuat deployment:
    • roles/config.admin
  3. Pastikan Anda memiliki akun layanan dengan izin yang diperlukan. Untuk mengetahui detailnya, lihat Mengonfigurasi akun layanan.
  4. 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.
  5. 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:

  1. Instal Aplikasi GitHub Cloud Build di akun GitHub Anda atau di organisasi yang Anda miliki.
  2. Buat token akses pribadi.

    Pastikan untuk menetapkan token Anda agar tidak memiliki tanggal habis masa berlaku dan pilih izin berikut saat diminta di GitHub: repo dan read:user. Jika aplikasi Anda diinstal di organisasi, pastikan untuk juga memilih izin read:org.

    Setelah membuat token akses pribadi, simpan token yang dihasilkan di tempat yang aman. Anda akan menggunakan token yang dibuat di langkah-langkah berikut.

  3. Salin modul im_cloudbuild_workspace ke dalam file main.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.
  4. 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.
  5. 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