Menyediakan resource Cloud Build dengan Terraform

HashiCorp Terraform adalah alat infrastruktur sebagai kode (Infrastructure-as-Code atau IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin yang disebut penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API lainnya. Anda dapat menggunakan penyedia Terraform untuk Google Cloud guna menyediakan dan mengelola resource Google Cloud, termasuk Cloud Build.

Cara kerja Terraform

Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi, yang dapat Anda gunakan untuk menjelaskan infrastruktur yang ingin Anda sediakan dalam project Google Cloud Anda. Setelah menulis konfigurasi ini di satu atau beberapa file konfigurasi Terraform, Anda dapat menggunakan Terraform CLI untuk menerapkan konfigurasi ini ke resource Cloud Build Anda.

Langkah-langkah berikut menjelaskan cara kerja Terraform:

  1. Anda menjelaskan infrastruktur yang ingin disediakan dalam file konfigurasi Terraform. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan infrastruktur. Terraform menyediakan infrastruktur untuk Anda.
  2. Anda menjalankan perintah terraform plan, yang mengevaluasi konfigurasi Anda dan menghasilkan rencana eksekusi. Anda dapat meninjau rencana dan membuat perubahan sesuai kebutuhan.
  3. Jalankan perintah terraform apply, yang akan melakukan tindakan berikut:
    1. Library ini akan menyediakan infrastruktur Anda berdasarkan rencana eksekusi dengan memanggil Cloud Build API yang sesuai di latar belakang.
    2. Fitur ini membuat file status Terraform, yang merupakan file JSON yang memetakan resource dalam file konfigurasi Anda ke resource di infrastruktur dunia nyata. Terraform menggunakan file ini untuk menyimpan catatan kondisi terbaru infrastruktur Anda, dan menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
    3. Saat Anda menjalankan terraform apply, Terraform akan menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan pembaruan yang diperlukan:
      • Jika objek resource ditentukan dalam file konfigurasi, tetapi tidak ada di file status, Terraform akan membuatnya.
      • Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dengan file konfigurasi Anda, Terraform akan memperbarui resource agar sesuai dengan file konfigurasi Anda.
      • Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak mengubah resource tersebut.

    Panduan berbasis Terraform untuk Cloud Build

    Tabel berikut berisi semua panduan dan tutorial berbasis Terraform untuk Cloud Build:

    Panduan Detail
    Menghubungkan ke repositori GitHub Panduan ini menjelaskan cara menghubungkan repositori GitHub ke Cloud Build menggunakan Terraform.
    Men-deploy ke Compute Engine Panduan ini menjelaskan cara menjalankan blue-green deployment tanpa periode nonaktif pada Grup Instance yang Dikelola Compute Engine (MIG) menggunakan Cloud Build dan Terraform.

    Modul Terraform dan blueprint untuk Cloud Build

    Modul dan blueprint membantu Anda mengotomatiskan penyediaan dan pengelolaan resource Google Cloud dalam skala besar. Modul adalah kumpulan file konfigurasi Terraform yang dapat digunakan kembali dan membuat abstraksi logis resource Terraform. Blueprint adalah paket modul yang dapat di-deploy dan digunakan kembali, serta kebijakan yang menerapkan dan mendokumentasikan solusi tertentu.

    Tabel berikut mencantumkan semua modul dan blueprint yang terkait dengan Cloud Build:

    Modul atau blueprint Detail
    Pipeline CI/CD yang aman Dengan modul ini, pelanggan Google Cloud dapat dengan cepat men-deploy pipeline CI/CD yang aman, dengan mengimplementasikan banyak fungsi yang diuraikan dalam Beralih ke keamanan dengan cepat.
    terraform-google-bootstrap Modul ini membantu mem-bootstrap organisasi Google Cloud, yang membuat semua resource dan izin yang diperlukan untuk mulai menggunakan Cloud Foundation Toolkit (CFT). Bagi pengguna yang ingin menggunakan Cloud Build dan Cloud Source Repositories untuk kode fondasi, modul ini berisi submodul yang mem-bootstrap semua resource yang diperlukan.

    Resource Terraform untuk Cloud Build

    Resource adalah elemen dasar dalam bahasa Terraform. Setiap blok resource menjelaskan satu atau beberapa objek infrastruktur, seperti jaringan virtual atau instance komputasi.

    Tabel berikut mencantumkan resource Terraform yang tersedia untuk Cloud Build:

    Layanan Cloud Build Resource Terraform Sumber data
    Cloud Build v1 google_cloudbuild_trigger
    Cloud Build v2 google_cloudbuildv2_connection_iam_policy

    Langkah selanjutnya