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 menjadigoogle_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 menjadigoogle_compute_subnetwork
.Fungsi ini mengonversi perintah
setIamPolicy
ke resource*_iam_policy
(otoritatif) atau*_iam_member
(non-otoritatif), bergantung pada apakah resource tersebut digunakan dengangetIamPolicy
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:
- Identifikasi konfigurasi Deployment Manager yang ingin Anda konversi ke Terraform.
- Untuk memastikan resource Anda sudah yang terbaru, rekonsiliasi deployment konfigurasi yang aktif.
- Untuk mengonversi konfigurasi 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 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
atauFAILURE
) 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.