Menggunakan Konversi DM untuk bertransisi ke Terraform atau Model Resource Kubernetes (KRM)

Konversi Deployment Manager (Konversi DM) adalah alat yang dapat Anda gunakan untuk mengonversi konfigurasi dan template Deployment Manager ke format konfigurasi deklaratif lainnya yang didukung Google. Google saat ini mendukung Terraform dan Model Resource Kubernetes (KRM).

Mengapa harus mengonversi ke Terraform atau KRM?

Terraform dan KRM adalah opsi populer untuk mengelola layanan dan infrastruktur Google Cloud. Keduanya menawarkan ekosistem yang diperbarui secara aktif, dengan dukungan untuk fitur modern seperti pengelolaan Secrets dan rekonsiliasi berkelanjutan (untuk KRM).

Google bekerja sama dengan HashiCorp untuk mengembangkan penyedia Terraform untuk Google Cloud. Pada tahun 2020, Google juga meluncurkan Config Connector untuk membantu pelanggan menggunakan Kubernetes guna mengelola jenis resource Google Cloud.

Terraform

Terraform adalah alat open source untuk menyediakan infrastruktur. Anda dapat menggunakan Terraform untuk menulis konfigurasi deklaratif untuk mengelola layanan dan resource Google Cloud menggunakan penyedia Terraform untuk Google Cloud. Untuk informasi selengkapnya, lihat Terraform di Google Cloud.

Model Resource Kubernetes (KRM)

KRM adalah paradigma untuk mem-build API dan definisi resource untuk pengelolaan konfigurasi deklaratif. Config Connector merepresentasikan resource Google Cloud sebagai Custom Resource Definition (CRD) dan dapat diaktifkan menggunakan Config Controller.

Jenis dan penyedia jenis yang didukung

DM Convert mengonversi file YAML konfigurasi Deployment Manager dan file template Jinja atau Python menjadi file konfigurasi KRM atau Terraform.

Untuk memeriksa status dukungan DM Convert saat ini untuk penyedia jenis dan jenis resource, Anda dapat menggunakan tanda --list-supported-types.

Memahami cara DM Convert menerjemahkan konsep di berbagai format

Tabel berikut menunjukkan cara DM Konversi menerjemahkan konsep dari Deployment Manager ke KRM dan Terraform:

Konsep Deployment Manager Konversi KRM/Config Connector Konversi Terraform
Referensi Referensi resource, jika skema KRM menentukan kolom sebagai referensi. Jika skema KRM tidak menentukan kolom sebagai referensi, referensi Deployment Manager akan diganti dengan nilai yang di-resolve. Referensi Terraform terlihat dan berperilaku mirip dengan referensi Deployment Manager.
Dependensi eksplisit (depends_on) Tidak ada dukungan untuk pengurutan dependensi eksplisit. Resource diaktifkan dengan cara yang konsisten. depends_on
Binding Identity and Access Management (IAM) (blok accessControl resmi) IAMPolicy Jenis <resource_type>_iam_policy (misalnya, google_pubsub_topic_iam_policy)
Binding IAM (jenis iamMemberBinding non-otoritatif) IAMPolicyMember <resource_type>_iam_member (misalnya, google_project_iam_member)
Jenis komposit Jenis komposit tidak digunakan lagi. DM Konversi tidak mengonversinya. Jenis komposit tidak digunakan lagi. DM Konversi tidak mengonversinya.
Tindakan, penyedia jenis kustom, dan output Tidak didukung. Tindakan yang memiliki padanan deklaratif di Terraform akan dikonversi. Untuk mengetahui detail selengkapnya, lihat Dukungan untuk Action.

Dukungan untuk Tindakan di DM Convert (untuk Terraform)

Action adalah fitur Pratinjau untuk Deployment Manager yang memperluas kumpulan metode API yang tersedia. Actions tidak didukung, dan DM Convert tidak mengonversi Actions yang tidak memiliki padanan deklaratif di Terraform, seperti:

  • Menambahkan patch, menghapus, dan mencantumkan API

  • API yang ditentukan dalam penyedia jenis kustom

  • API kustom, seperti sqladmin-v1beta4:sql.instances.restart

DM Konversi mendukung konversi ke Terraform yang setara untuk Action dalam kasus berikut:

  • Tindakan ini menggantikan panggilan Action ke API yang menyisipkan resource dengan resource Terraform yang setara. Misalnya, action: gcp-types/storage-v1:storage.buckets.insert dikonversi menjadi google_storage_bucket.

  • Fungsi ini mengonversi panggilan Action ke API yang mendapatkan resource ke jenis data Terraform jika memungkinkan. Misalnya, actions: gcp-types/compute-v1:compute.subnetworks.get dikonversi menjadi google_compute_subnetwork.

  • Fungsi ini mengonversi perintah setIamPolicy ke resource *_iam_policy (otoritatif) atau *_iam_member (non-otoritatif), bergantung pada apakah resource tersebut digunakan dengan getIamPolicy atau tidak.

Untuk informasi tentang cara memigrasikan penggunaan Action ke alternatif deklaratif dalam Deployment Manager, buka Mengganti penggunaan Action.

Alur kerja untuk mengonversi ke Terraform

Untuk menggunakan DM Convert guna mengonversi konfigurasi Deployment Manager ke Terraform:

  1. Identifikasi konfigurasi Deployment Manager yang ingin Anda konversi ke Terraform.
  2. Untuk memastikan resource Anda sudah yang terbaru, rekonsiliasi deployment konfigurasi yang aktif.
  3. Untuk mengonversi konfigurasi ke Terraform, jalankan alat DM Convert secara lokal.
  4. Pastikan konfigurasi Terraform yang dihasilkan mencerminkan status resource Anda saat ini.
  5. Hapus deployment Deployment Manager. Untuk mempertahankan resource saat Anda menghapus deployment, tetapkan delete-policy ke abandon.

Sebaiknya ikuti praktik terbaik Terraform, seperti:

Untuk panduan mendetail tentang alur kerja ini, lihat Mengonversi konfigurasi Deployment Manager dengan Konversi DM.

Pengumpulan data di DM Convert

Data yang kami kumpulkan secara default

Secara default, alat DM Convert mengirimkan data penggunaan anonim ke Google untuk membantu kami memelihara dan meningkatkan alat tersebut. Saat alat DM Convert dijalankan, data tentang operasi yang diminta, keberhasilan operasi, dan waktu konversi akan dikumpulkan. Data ini bersifat anonim, dan mengecualikan informasi identitas pribadi, data sensitif, atau konten pelanggan.

Data penggunaan mungkin berisi:

  • Parameter input perintah konversi: Kami mencatat nilai parameter perintah konversi Anda saat menjalankan alat, termasuk format output (KRM atau Terraform) dan representasi boolean tentang apakah flag lain ditentukan (kami tidak mengumpulkan nilai spesifik dari flag tersebut).

  • Hasil konversi: Kami mencatat hasil konversi, termasuk status konversi (SUCCESS atau FAILURE) serta kode error dan pesan error, jika terjadi masalah.

  • Conversion time: Kami mencatat waktu mulai dan waktu berakhir konversi.

Cara kami menggunakan data ini

Google mengumpulkan dan memproses data penggunaan untuk:

  • Pahami cara alat ini digunakan, termasuk fitur dan setelan mana yang paling populer.

  • Mendiagnosis penggunaan alat yang tidak berhasil, dan memberikan panduan kepada pengguna yang mencari bantuan teknis.

  • Tingkatkan kualitas alat dengan menyelesaikan masalah dan berpotensi meningkatkan cakupan fitur.

Memilih tidak ikut pengumpulan data

Google mengumpulkan data penggunaan secara default saat Anda menjalankan konversi, tetapi pengumpulan data ini dapat dinonaktifkan.

Untuk menonaktifkan pengumpulan data untuk konversi tertentu, Anda dapat menentukan tanda --opt_out_data_collection=true dalam perintah konversi. Untuk terus memilih tidak ikut pengumpulan data ini ke depannya, Anda harus menentukan tanda setiap kali menjalankan konversi.

Untuk mengaktifkan pengumpulan data untuk konversi tertentu, Anda dapat menentukan tanda --opt_out_data_collection=false dalam perintah konversi, atau menghapus tanda dari perintah.