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. Saat ini, Google mendukung Terraform dan Kubernetes Resource Model (KRM).

Mengapa harus mengonversi ke Terraform atau KRM?

Terraform dan KRM adalah opsi populer untuk mengelola Google Cloud layanan dan infrastruktur. Mereka menawarkan ekosistem yang diperbarui secara aktif, dengan dukungan untuk fitur modern seperti pengelolaan Secret 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 dalam mengelola Google Cloud jenis resource.

Terraform

Terraform adalah alat open source untuk menyediakan infrastruktur. Anda dapat menggunakan Terraform untuk menulis konfigurasi deklaratif guna mengelola layanan dan resource menggunakan penyedia Terraform untuk Google Cloud. 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. Resource ini merepresentasikan Google Cloud sebagai Definisi Resource Kustom (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 Konversi DM menerjemahkan konsep di 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 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 beroperasi dengan cara yang konsisten pada akhirnya. depends_on
Binding Identity and Access Management (IAM) (blok accessControl yang bersifat otoritatif) 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 Convert tidak mengonversinya. Jenis komposit tidak digunakan lagi. DM Convert 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)

Actions 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:

  • API Patch, delete, dan list

  • API yang ditentukan dalam penyedia jenis kustom

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

DM Convert mendukung konversi ke Terraform yang setara untuk Tindakan 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.

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

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

Untuk mengetahui informasi tentang memigrasikan penggunaan Tindakan ke alternatif deklaratif dalam Deployment Manager, buka Mengganti penggunaan Tindakan.

Alur kerja untuk mengonversi ke Terraform

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

  1. Identifikasi konfigurasi Deployment Manager yang ingin Anda konversi ke Terraform.
  2. Untuk memastikan resource Anda sudah yang terbaru, sesuaikan semua deployment konfigurasi yang aktif.
  3. Untuk mengonversi konfigurasi Anda 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 Anda mengikuti praktik terbaik Terraform, seperti:

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

Pengumpulan data di DM Convert

Yang kami kumpulkan, secara default

Secara default, alat DM Convert mengirimkan data penggunaan anonim ke Google untuk membantu kami memelihara dan meningkatkan kualitas alat ini. Saat alat DM Convert dijalankan, data tentang operasi yang diminta, keberhasilan operasi, dan waktu konversi akan 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 nilai parameter 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 berakhir konversi.

Cara kami menggunakan data ini

Google mengumpulkan dan memproses data penggunaan untuk:

  • Pahami cara penggunaan alat ini, termasuk fitur dan setelan 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 flag --opt_out_data_collection=true dalam perintah konversi. Untuk terus memilih tidak ikut pengumpulan data ini ke depannya, Anda harus menentukan flag setiap kali Anda menjalankan konversi.

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