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

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

Mengapa harus melakukan konversi ke Terraform atau KRM?

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

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

Terraform

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

Model Resource Kubernetes (KRM)

KRM adalah paradigma untuk membuat API dan definisi resource untuk pengelolaan konfigurasi deklaratif. Ini mewakili resource Google Cloud sebagai Definisi Resource Kustom (CRD) dan dapat dijalankan menggunakan Pengontrol Konfigurasi.

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 flag --list-supported-types.

Memahami cara DM Convert menerjemahkan konsep dalam berbagai format

Tabel berikut menunjukkan cara DM Convert 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 menetapkan kolom sebagai referensi, referensi Deployment Manager akan diganti dengan nilai yang diselesaikan. Referensi Terraform terlihat dan berperilaku mirip dengan referensi Deployment Manager.
Dependensi eksplisit (depends_on) Tidak ada dukungan untuk pengurutan dependensi eksplisit. Resource digerakkan secara konsisten dan pada akhirnya. depends_on
Identity and Access Management (IAM) Binding (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 gabungan tidak digunakan lagi. DM Convert tidak mengonversinya. Jenis gabungan tidak digunakan lagi. DM Convert tidak mengonversinya.
Tindakan, penyedia jenis kustom, dan output Tidak didukung. Tindakan yang memiliki padanan deklaratif di Terraform dikonversi. Untuk detail selengkapnya, lihat Dukungan untuk Action.

Dukungan untuk Tindakan dalam Konversi DM (untuk Terraform)

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

  • Mem-patch, menghapus, dan membuat daftar API

  • API yang ditentukan dalam penyedia jenis kustom

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

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

  • Fungsi 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.

  • Library 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.

  • Library ini mengonversi perintah setIamPolicy menjadi 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 melakukan konversi ke Terraform

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

  1. Identifikasi konfigurasi Deployment Manager yang ingin Anda konversi ke Terraform.
  2. Untuk memastikan resource Anda merupakan yang terbaru, rekonsiliasi deployment aktif konfigurasi.
  3. Untuk mengonversi konfigurasi Anda ke Terraform, jalankan alat Konversi DM secara lokal.
  4. Pastikan konfigurasi Terraform yang dihasilkan mencerminkan status resource Anda saat ini.
  5. Menghapus 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 akan mengirimkan data penggunaan anonim ke Google untuk membantu kami mengelola dan meningkatkan kualitas alat tersebut. Saat alat Konversi DM dieksekusi, data tentang operasi yang diminta, keberhasilan operasi, dan waktu konversi dikumpulkan. Data ini bersifat anonim dan tidak menyertakan informasi identitas pribadi, data sensitif, atau konten pelanggan.

Data penggunaan dapat berisi:

  • Parameter input perintah konversi: Kami mencatat parameter value perintah konversi Anda saat menjalankan alat, termasuk format output (KRM atau Terraform) dan representasi boolean 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.

  • Waktu konversi: 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 yang paling populer.

  • Diagnosis penggunaan alat yang gagal, dan berikan panduan kepada pengguna yang mencari bantuan teknis.

  • Meningkatkan kualitas alat ini 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.

Guna 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 tersebut setiap kali menjalankan konversi.

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