Membuat konfigurasi Terraform

Saat menyeleksi solusi Katalog Layanan untuk organisasi, Anda dapat membuat konfigurasi Terraform, atau config, yang di-deploy pengguna menggunakan Terraform. Setelah membuat konfigurasi, Anda dapat membagikannya kepada pengguna dengan menetapkannya ke katalog.

Dalam panduan ini, Anda menggunakan Cloud Build untuk menjalankan perintah Terraform di versi terbaru image Docker Terraform, dan menggunakan Cloud Storage untuk menyimpan dan mengelola resource Terraform seperti modul dan file status.

Untuk referensi dan panduan tentang cara menggunakan Terraform, lihat Menggunakan Terraform dengan Google Cloud.

Sebelum memulai

  • Anda harus memiliki peran Identity and Access Management (IAM) berikut:

    • Catalog Admin ATAU Catalog Manager untuk Google Cloud organisasi yang terkait dengan Google Cloud project yang mengaktifkan Katalog Layanan. Jika Anda tidak memiliki peran ini, hubungi Administrator Organisasi untuk meminta akses.
    • Storage Admin untuk Google Cloud project tempat Anda ingin membuat solusi. Jika konfigurasi Terraform Anda berada dalam project yang berbeda, Anda juga harus memiliki peran Storage Admin untuk project yang berisi konfigurasi Terraform Anda.
    • Cloud Build Editor untuk Google Cloud project tempat Anda ingin membuat solusi.

    Jika berencana menggunakan akun layanan Anda sendiri, Anda juga harus memiliki peran Pengguna Akun Layanan untuk project Google Cloud yang berisi akun layanan yang ingin Anda gunakan.

    Jika Anda tidak memiliki peran ini, hubungi Administrator Organisasi untuk meminta akses.

  • Jika Anda berencana menggunakan akun layanan Anda sendiri, akun layanan Anda harus memiliki peran IAM berikut:

    • Storage Admin untuk Google Cloud project tempat Anda ingin membuat solusi. Jika konfigurasi Terraform Anda berada dalam project yang berbeda, akun layanan Anda juga harus memiliki peran Storage Object Viewer untuk project yang berisi konfigurasi Terraform.
    • Logs Writer untuk projectGoogle Cloud tempat Anda ingin membuat solusi.

    Jika Anda tidak memiliki peran ini, hubungi Administrator Organisasi untuk meminta akses.

  • Siapkan Cloud Build di project tempat Anda membuat konfigurasi:

    1. Enable the Cloud Build API.

      Enable the API

      Mengaktifkan API akan otomatis membuat akun layanan Cloud Build yang Anda gunakan di langkah berikut.
    2. Buka halaman Cloud Build.
    3. Di Panel Kiri, pilih Setelan.
    4. Gunakan akun layanan yang diberikan di bagian Service account email.
    5. Jika Anda tidak menggunakan akun layanan Anda sendiri, berikan peran IAM berikut ke akun layanan. Untuk mengetahui langkah-langkah pemberian peran, lihat Mengonfigurasi akses untuk Akun Layanan Cloud Build.

Mengupload file konfigurasi ke Cloud Storage

Anda menggunakan Cloud Storage untuk mengelola file konfigurasi Terraform untuk Service Catalog.

Membuat bucket Cloud Storage

Untuk menyiapkan Cloud Storage, buat bucket di project yang sama tempat Anda mengaktifkan Service Catalog untuk organisasi Anda:

  1. In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets page

  2. Click Create bucket.
  3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
    • For Name your bucket, enter a name that meets the bucket naming requirements.
    • For Choose where to store your data, do the following:
      • Select a Location type option.
      • Select a Location option.
    • For Choose a default storage class for your data, select a storage class.
    • For Choose how to control access to objects, select an Access control option.
    • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
  4. Click Create.

Mengaktifkan Pembuatan Versi Objek

Anda harus menggunakan Pembuatan Versi Objek untuk bucket guna melindungi konfigurasi Terraform agar tidak dihapus atau ditimpa. Untuk mengaktifkan Pembuatan Versi Objek, lihat dokumentasi Cloud Storage tentang Menggunakan Pembuatan Versi Objek.

Memberikan akses ke bucket Anda

Saat pengguna di organisasi Anda men-deploy konfigurasi, akun layanan Cloud Build mereka harus memiliki akses baca ke bucket Anda. Jika bucket Anda disimpan di project Google Cloud yang sama tempat pengguna men-deploy konfigurasi, akun layanan sudah memiliki akses ini.

Jika pengguna Anda men-deploy konfigurasi di project Google Cloud yang berbeda, berikan akses ke bucket menggunakan salah satu metode berikut:

  • Berikan peran Storage Object Viewer (roles/storage.objectViewer) ke akun layanan Cloud Build pengguna Anda, atau ke resource Google Cloud tempat pengguna men-deploy konfigurasi Terraform, seperti project, folder, atau organisasi.

  • Gunakan Daftar Kontrol Akses (ACL) untuk mengelola akses ke bucket.

Untuk mengetahui detail tentang cara mengelola akses ke bucket, lihat Ringkasan kontrol akses Cloud Storage.

Membuat dan mengupload modul Terraform

Setelah menyiapkan bucket Cloud Storage, Anda harus membuat dan mengupload modul Terraform, yang merupakan penampung semua file konfigurasi Anda. Service Catalog menggunakan modul untuk membuat file skema JSON secara otomatis guna menentukan variabel konfigurasi Anda.

Saat Anda memanggil modul di luar direktori saat ini, gunakan jalur jarak jauh, bukan jalur relatif. Misalnya, gunakan source = "GoogleCloudPlatform/cloud-run/google", bukan source = "../../".

Untuk modul kasus penggunaan Google Cloud umum, lihat Blueprint dan modul Terraform untuk Google Cloud.

Contoh kode berikut menggambarkan file konfigurasi Terraform, main.tf:


variable "machine_type" {
  type    = string
  default = "n1-standard-1"
}

variable "zone" {
  type    = string
  default = "us-central1-a"
}

variable "deployment_identifier" {
  description = "The unique name for your instance"
  type        = string
}

resource "google_compute_instance" "default" {
  name         = "vm-${var.deployment_identifier}"
  machine_type = var.machine_type
  zone         = var.zone

  boot_disk {
    device_name = "boot"
    auto_delete = true
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral IP
    }
  }
}

Setelah membuat modul, kompresi file menjadi file zip. Pastikan modul disimpan di root file zip.

Untuk memastikan penyimpanan modul yang tepat saat Anda mengompresi file Terraform, jalankan perintah berikut: none zip solution.zip file1.tf file2.tf file3.tf

Kemudian, upload file zip ke bucket Anda. Untuk mengetahui langkah-langkah mengupload file ZIP, lihat dokumentasi Cloud Storage tentang Mengupload objek.

Membuat konfigurasi di Katalog Layanan

Setelah menyiapkan bucket Cloud Storage dengan modul Terraform, Anda akan membuat solusi Katalog Layanan yang menyertakan bucket tersebut.

Untuk membuat konfigurasi Terraform sebagai solusi Katalog Layanan:

  1. Buka halaman Admin Service Catalog Solusi di konsol Google Cloud.
    Buka halaman Solusi

  2. Untuk memilih Google Cloud project, klik Select.

  3. Klik Buat solusi. Di menu drop-down, pilih Create Terraform config.

  4. Masukkan nama, deskripsi, dan tagline untuk konfigurasi Terraform Anda. Tagline adalah deskripsi singkat solusi yang dilihat pengguna saat mereka menjelajahi Katalog Layanan.

  5. Di kolom Link to Terraform config, berikan link ke bucket Cloud Storage yang berisi file zip untuk modul Terraform, seperti gs://my-terraform-bucket/my-zip-file.zip.

  6. Secara opsional, upload ikon untuk solusi. Dimensi yang direkomendasikan untuk ikon adalah 80x80 piksel.

  7. Jika mau, masukkan link dukungan dan informasi kontak kreator.

  8. Secara opsional, tambahkan link ke dokumentasi untuk solusi.

  9. Pilih versi Terraform yang ingin Anda gunakan untuk men-deploy solusi.

  10. Secara opsional, Anda dapat memberikan akun layanan Anda sendiri dengan mengklik kotak centang di samping Pilih atau masukkan akun layanan Anda sendiri. Jika akun layanan Anda berada di project Google Cloud yang sama dengan tempat Anda membuat solusi, pilih Pilih akun layanan dari project saat ini, lalu pilih akun layanan Anda dari menu drop-down. Jika akun layanan Anda berada dalam project Google Cloud yang berbeda dari solusi Anda, pilih Masukkan email akun layanan dari project mana pun, lalu masukkan email akun layanan Anda.

  11. Klik BUAT.

Solusi dibuat dan muncul di halaman Solusi Admin Katalog Layanan.

Screenshot berikut mengilustrasikan pembuatan konfigurasi Terraform:

Membuat konfigurasi Terraform

Langkah berikutnya