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 menjadigoogle_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 menjadigoogle_compute_subnetwork
.API ini mengonversi perintah
setIamPolicy
menjadi resource*_iam_policy
(otoritatif) atau*_iam_member
(non-otoritatif), bergantung pada apakah perintah tersebut digunakan dengangetIamPolicy
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:
- Identifikasi konfigurasi Deployment Manager yang ingin Anda konversi ke Terraform.
- Untuk memastikan resource Anda sudah yang terbaru, sesuaikan semua deployment konfigurasi yang aktif.
- Untuk mengonversi konfigurasi Anda ke Terraform, jalankan alat DM Convert secara lokal.
- Pastikan konfigurasi Terraform yang dihasilkan mencerminkan status resource Anda saat ini.
- Hapus deployment Deployment Manager. Untuk mempertahankan resource saat Anda menghapus deployment, tetapkan
delete-policy
keabandon
.
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
atauFAILURE
) 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.