Mengonfigurasi image VM untuk deployment Terraform

Artikel ini menjelaskan cara menyelesaikan konfigurasi dan pengiriman image VM Anda untuk deployment menggunakan Terraform.

Menentukan cara membuat paket deployment Anda

Sebaiknya gunakan opsi konfigurasi yang dipandu Producer Portal untuk membuat paket deployment langsung di Konsol Google Cloud.

Opsi konfigurasi terpandu mendukung produk VM sederhana, seperti deployment VM tunggal dengan aturan firewall dasar, tetapi tidak mendukung beberapa fitur kompleks, seperti deployment dengan beberapa VM dan resource non-komputasi. Jika memerlukan fitur yang tidak didukung oleh konfigurasi terpandu, Anda dapat menggunakan opsi konfigurasi manual untuk membuat paket deployment atau menyesuaikan paket yang ada dengan menambahkan kemampuan tambahan.

Beralih antara konfigurasi terpandu dan konfigurasi manual

Jika Anda menggunakan opsi konfigurasi yang dipandu Producer Portal, dan kemudian ingin beralih ke konfigurasi paket deployment secara manual, klik Go to manual configuration.

Menyelesaikan konfigurasi yang dipandu

Untuk menyelesaikan konfigurasi dan pengiriman paket deployment sederhana menggunakan Konsol Google Cloud, selesaikan langkah-langkah berikut:

  1. Di Producer Portal, buka bagian Deployment package.

  2. Di bagian Terraform configuration, di samping kolom input berlabel Cloud Storage Bucket, klik Browse.

    Jika Anda sudah membuat bucket Cloud Storage, pilih di sini.

    Jika Anda tidak memiliki bucket Cloud Storage, klik ikon berlabel Create new bucket. Saat membuat bucket baru, Anda:

    • Pilih nama untuk bucket.

    • Tentukan region tempat bucket menyimpan data.

    • Tentukan kelas penyimpanan untuk data Anda.

    • Tentukan tingkat perincian yang akan diterapkan pada izin Pengelolaan Akses dan Identitas (IAM) untuk data bucket.

    • Konfigurasi setelan lanjutan opsional, seperti kebijakan enkripsi atau retensi data.

  3. Pastikan Anda mengaktifkan Pembuatan Versi Objek untuk bucket Cloud Storage.

  4. Untuk menyimpan setelan bucket dan melanjutkan konfigurasi paket deployment Anda, klik Configure.

  5. Di bagian Choose the machine type, Anda harus menentukan Default zone, Minimum machine type, dan Default machine type untuk produk VM Anda, beserta ukuran dan jenis boot disk-nya.

  6. Di bagian Tentukan sistem operasi, Anda harus menentukan nama dan versi OS yang digunakan oleh image VM Anda, serta nomor versi image VM-nya.

  7. Secara opsional, di bagian Siapkan akses VM, Anda dapat menentukan URL situs dan administrator, beserta nama pengguna dan sandi, yang dapat digunakan pengguna untuk mengakses VM setelah deployment.

  8. Secara opsional, di bagian Configure networking, Anda dapat menentukan setelan untuk IP forwarding dan mengonfigurasi aturan Firewall.

  9. Secara opsional, di bagian Tentukan langkah berikutnya, Anda dapat memberikan petunjuk kepada pengguna produk untuk memandu mereka mulai menggunakan produk Anda. Petunjuk ini akan terlihat oleh mereka setelah mereka men-deploy produk Anda.

  10. Setelah menyelesaikan langkah-langkah sebelumnya, klik Generate untuk membuat paket deployment.

    Jika nanti Anda perlu membuat perubahan tambahan pada paket deployment, Anda dapat mengklik Edit untuk melakukan perubahan, lalu mengklik Generate untuk membuat ulang paket deployment dengan perubahan tersebut.

  11. Kirim paket deployment untuk ditinjau di Producer Portal. Setelah paket dikirimkan, Google mungkin memerlukan waktu hingga dua minggu untuk meninjau dan menyetujui paket.

Selesaikan konfigurasi manual Anda

Bagian ini menjelaskan cara menggunakan opsi konfigurasi manual untuk membuat paket deployment dan mengirimkan paket untuk ditinjau.

Menentukan apakah akan menggunakan modul Terraform default atau kustom

Anda dapat memilih apakah Anda ingin pelanggan menggunakan modul Terraform default atau kustom saat mereka men-deploy produk Anda.

Jika Anda memilih untuk menggunakan modul Terraform default, Google Cloud akan memberi pelanggan Anda kode Terraform yang dibuat secara otomatis yang dapat mereka gunakan untuk men-deploy produk Anda.

Jika ingin menggunakan modul Terraform kustom, Anda harus menyediakan template Terraform Anda sendiri kepada pelanggan. Anda dapat memilih untuk menyediakan template ini dalam bentuk yang dapat di-deploy oleh pelanggan menggunakan antarmuka command line (CLI), atau dengan metadata tambahan yang memungkinkan pelanggan men-deploy modul langsung dari Cloud Marketplace.

Untuk menentukan apakah pelanggan Anda harus menggunakan modul Terraform default atau kustom, dan, untuk modul Terraform kustom, Anda juga ingin agar pelanggan men-deploy modul sesuai cara yang Anda inginkan, selesaikan langkah-langkah berikut:

  1. Di Producer Portal, buka bagian Deployment package.

  2. Di bagian Terraform configuration, di bagian Type, pilih Default, Custom (CLI deployment), atau Custom (UI deployment).

Persyaratan untuk modul Terraform kustom

Jika memilih untuk menggunakan modul Terraform kustom, modul kustom Anda harus memenuhi persyaratan berikut:

  • Modul kustom Anda harus memiliki modul yang dapat digunakan Cloud Marketplace untuk memverifikasi bahwa modul tersebut memenuhi persyaratan. Untuk mengetahui informasi selengkapnya, lihat Menguji apakah modul Anda lulus verifikasi.

  • Modul Anda harus memiliki variabel bernama project_id, yang menyimpan project ID yang digunakan pelanggan untuk men-deploy modul.

  • Anda harus menentukan referensi ke nama gambar sebagai variabel Terraform, dengan format projects/PROJECT_NAME/global/images/IMAGE_NAME. Nilai default harus ditetapkan ke nama image VM Anda, sehingga salinan image yang dimiliki Cloud Marketplace dapat diganti ke modul saat produk VM Anda dipublikasikan.

  • Modul Anda tidak boleh bergantung pada modul luar yang tidak dikemas dengannya.

  • Modul Anda hanya boleh menggunakan penyedia yang disetujui berikut:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Untuk melihat contoh modul kustom yang memenuhi persyaratan ini, buka contoh modul Terraform kustom.

Persyaratan tambahan untuk modul Terraform kustom untuk deployment UI

Jika modul kustom Anda mendukung deployment UI, modul tersebut harus memenuhi persyaratan tambahan berikut:

  • Modul Anda harus berisi variabel bernama goog_cm_deployment_name. Cloud Marketplace menggunakan variabel ini untuk memberi nama deployment pelanggan Anda di halaman deployment mereka. Anda harus menggunakan variabel ini untuk menghindari konflik penamaan resource antara beberapa deployment dalam satu project. Sebagai contoh, lihat goog_cm_deployment_name di contoh modul Terraform kustom.

  • Dalam file metadata.display.yaml, Anda harus menentukan ET_GCE_DISK_IMAGE sebagai jenis xGoogleProperty untuk semua variabel gambar. Sebagai contoh, lihat metadata.display.yaml di contoh modul Terraform kustom.

  • Jika produk Anda berisi image atau image multi-VM yang mendukung beberapa arsitektur CPU, Anda harus menambahkan enumValueLabels agar pelanggan dapat memilih image VM yang ingin mereka gunakan. Sebagai contoh, baca contoh modul Terraform kustom.

  • Modul Anda tidak boleh bergantung pada dukungan untuk penyedia Terraform.

Langkah tambahan untuk modul Terraform kustom

Jika memilih untuk menggunakan modul Terraform kustom, Anda harus menyelesaikan langkah-langkah tambahan berikut guna mengonfigurasi image VM untuk deployment:

  1. Di Producer Portal, buka bagian Deployment package.

  2. Di bagian Konfigurasi Terraform, di bagian Variabel Image, klik Tambahkan variabel.

    Untuk mengaktifkan deployment Terraform pada produk, Anda harus telah mengaktifkan penggunaan image yang dimiliki Marketplace. Cloud Marketplace menggunakan variabel yang Anda tambahkan di sini untuk ditukar di versi Marketplace image VM Anda saat pelanggan men-deploy produk Anda.

  3. Di kolom teks Variabel Gambar, masukkan nama untuk variabel Anda, seperti "gambar".

  4. Di modul Terraform kustom Anda, tetapkan nilai default variabel yang Anda buat di langkah sebelumnya ke nama image VM untuk produk Anda, dalam format projects/YOUR_PROJECT/global/images/YOUR_IMAGE.

  5. Di bagian Specify your GCS object location, klik Browse.

    Jika Anda sudah membuat bucket Cloud Storage, pilih di sini.

    Jika Anda tidak memiliki bucket Cloud Storage, klik ikon berlabel Create new bucket. Saat membuat bucket baru, Anda:

    • Pilih nama untuk bucket.

    • Tentukan region tempat bucket menyimpan data.

    • Tentukan kelas penyimpanan untuk data Anda.

    • Tentukan tingkat perincian yang akan diterapkan pada izin Pengelolaan Akses dan Identitas (IAM) untuk data bucket.

    • Mengonfigurasi setelan lanjutan opsional, seperti kebijakan enkripsi atau retensi data.

  6. Pastikan Pembuatan Versi Objek diaktifkan untuk bucket Cloud Storage Anda.

  7. Untuk menyimpan setelan bucket dan melanjutkan konfigurasi paket deployment Anda, klik Configure.

  8. Di bagian Peran yang diperlukan, tentukan peran IAM yang harus dimiliki pelanggan untuk men-deploy produk Anda.

(Khusus deployment UI) Membuat metadata untuk modul Terraform kustom

Agar modul kustom mendukung deployment UI, Anda harus membuat dan menambahkan metadata yang digunakan Cloud Marketplace untuk mengurai modul dengan benar dan merendernya di UI untuk pelanggan.

Untuk membuat dan menambahkan metadata ini, Anda dapat menggunakan alat CLI CFT open source. Agar dapat menggunakan CFT untuk membuat dan menambahkan metadata ke modul kustom Anda, selesaikan langkah-langkah berikut:

  1. Instal alat CFT CLI. Untuk mengetahui informasi selengkapnya, buka dokumentasi CLI CFT. Sebaiknya Anda menentukan nilai VERSION menjadi latest, dan menetapkan PLATFORM ke salah satu nilai berikut:

    • linux

    • windows

    • darwin

  2. Jalankan perintah berikut:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    Dalam perintah sebelumnya, flag -p menyediakan jalur untuk paket Terraform, flag -q menghasilkan metadata tanpa memerlukan informasi untuk repositori jarak jauh, flag -d menghasilkan file metadata.display.yaml, dan flag --nested=false menghasilkan metadata untuk modul root, sehingga melewati semua modul dalam folder modules/.

Setelah Anda menyelesaikan langkah-langkah sebelumnya, alat CFT CLI akan menghasilkan dua file baru: metadata.yaml dan metadata.display.yaml.

Menyesuaikan metadata modul Terraform kustom

Cloud Marketplace menggunakan file metadata.display.yaml untuk menyesuaikan formulir yang digunakan pelanggan untuk men-deploy produk Anda melalui UI. Jika ingin menyesuaikan formulir ini, setelah membuat metadata, Anda dapat mengubah nilai kolom di metadata.display.yaml. Untuk mengetahui detail tentang opsi penyesuaian yang tersedia, buka dokumentasi BlueprintUI open source, atau lihat skema BlueprintUI.

Sebaiknya gunakan ekstensi GooglePropertyExtensions untuk mengubah metadata Anda. GooglePropertyExtensions memungkinkan Anda menggunakan validasi khusus Google Cloud, seperti memberlakukan bahwa pelanggan hanya dapat memilih jaringan Virtual Private Cloud (VPC) yang sudah ada di project mereka. Sebagai contoh, baca contoh modul Terraform kustom.

Memvalidasi metadata modul kustom Anda

Untuk memvalidasi metadata modul kustom Anda, jalankan perintah berikut:

cft blueprint metadata -p TF_PACKAGE_PATH -v

Pada perintah sebelumnya, flag -p menyediakan jalur untuk paket Terraform, dan flag -v memvalidasi semua file metadata pada jalur yang disediakan berdasarkan skema BlueprintMetadata.

Menguji apakah modul Anda lulus verifikasi atau tidak

Modul kustom Anda akan lulus verifikasi jika perintah berikut berhasil dijalankan:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

Dalam perintah sebelumnya, marketplace_test.tfvars adalah file variabel Terraform yang hanya digunakan oleh Cloud Marketplace, yang hanya digunakan untuk verifikasi modul ini. Jika template Anda mendeklarasikan variabel apa pun yang tidak memiliki nilai default, dan Anda tidak menetapkan nilai untuk variabel tersebut, perintah tidak akan berhasil dijalankan. Untuk memastikan perintah berhasil dijalankan, Anda dapat membuat file marketplace_test.tfvars untuk menetapkan nilai bagi variabel yang dideklarasikan oleh template Anda. Untuk mengetahui contoh file marketplace_test.tfvars, baca contoh modul Terraform kustom.

(Opsional) (khusus deployment CLI) Sertakan modul pengujian

Secara opsional, jika modul kustom Anda mendukung deployment CLI, Anda dapat memilih untuk menyertakan folder bernama examples/marketplace_test. Anda mungkin perlu melakukannya jika produk Anda perlu menyertakan modul pengujian terpisah untuk memverifikasi kemampuannya. Jika Anda menyertakan folder ini, agar modul lulus verifikasi, perintah berikut harus berhasil dijalankan:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Kirim paket deployment Anda untuk ditinjau

Setelah membuat dan mengonfigurasi paket deployment, Anda harus mengirimkan paket ke Producer Portal agar tim Cloud Marketplace dapat meninjau dan menyetujui paket.

  1. Di Producer Portal, buka bagian Deployment package.

  2. Klik Validasi. Proses validasi dapat memerlukan waktu hingga dua jam, dan Anda dapat keluar dari layar saat proses selesai.

  3. Setelah validasi berhasil diselesaikan, untuk mengirimkan paket deployment agar ditinjau, klik Submit. Setelah Anda mengirimkan paket, Google mungkin memerlukan waktu hingga dua minggu untuk meninjau dan menyetujui paket.