Bahasa Melayu

Alat pembangun · Penukar sintaks

Mengubah output kubectl JSON menjadi manifes yang sebenarnya anda boleh baca

· Mengapa ia penting

json yaml aliran kerja pembangun

Sumber JSON padat membuka ke dalam pokok YAML yang diinden untuk diperiksa
Ilustrasi vektor ToolAcre asal

Alat Kubernetes mengeluarkan JSON yang tepat tetapi sukar untuk diimbas, manakala manifes ditulis dalam YAML. Siaran ini menunjukkan sebab menukar antara mereka mempercepatkan membaca, membandingkan dan menggunakan semula definisi sumber.

Dua ratus baris pendakap gigi pada 2 a.m. — Deployment diambil sebagai JSON dan medan yang anda perlukan kuburkan dalam blok status

Semasa kejadian, objek sumber yang besar boleh menguburkan pemilih atau keadaan yang berkaitan antara metadata dan status. Menukar JSON yang ditangkap kepada YAML yang diinden akan mengalih keluar tanda baca tanpa mengubah objek biasa, tatasusunan, Boolean, nombor, rentetan dan nilai nol. Keuntungan adalah pengimbasan visual, bukan sumber kebenaran baru.

Redaksi token, alamat dan pengecam sebelum menggunakan mana-mana halaman pelayar. ToolAcre menghuraikan JSON dengan ketat dan membuang YAML secara tempatan. Ia tidak menghubungi kluster atau mengetahui sama ada objek itu datang daripada kubectl, pelanggan lain atau lekapan yang disimpan.

Sebab API bercakap JSON dan manusia menulis YAML — format pelayan API, tradisi manifes dan sebab kedua-duanya menerangkan objek yang sama

Pokok sumber berbentuk JSON yang sama boleh diwakili sebagai YAML pemetaan dan jujukan. Repositori ini tidak menentukan sebab komponen Kubernetes tertentu memilih satu perwakilan wayar atau cara setiap titik akhir API merundingkan jenis media, jadi artikel itu mengelak daripada menjadikan amalan biasa sebagai tuntutan pelaksanaan tentang dalaman Kubernetes.

Perkara yang boleh dibuktikan adalah lebih sempit: Input JSON dihuraikan menjadi nilai JavaScript dan js-yaml mensirikan nilai tersebut dalam gaya blok. Tatasusunan kekal teratur, kunci objek kekal dikaitkan dengan nilai yang sama, dan rentetan samar-samar menerima petikan perlindungan.

JSON dan YAML boleh membawa pokok sumber yang sama; API tuntutan pengangkutan adalah di luar bukti penukar ini

Lekukan dan sengkang memudahkan sarang untuk diimbas, manakala skalar blok boleh menjadikan rentetan berbilang baris boleh dibaca. Itu adalah pilihan serializer. Mereka tidak mengalih keluar status, mengesahkan versi API atau menjadikan objek langsung sesuai untuk aplikasi semula. Rentetan seperti tarikh yang dipetik kekal sebagai teks walaupun apabila YAML kelihatan kurang jelas daripada JSON.

Gunakan penukaran untuk mencari medan, membandingkan bentuk dan menyediakan salinan ulasan. Simpan JSON asal untuk bukti yang tepat. Jika pilihan kekunci diisih didayakan, pembentangan objek berubah lagi manakala susunan tatasusunan kekal tidak disentuh.

YAML menukar persembahan, bukan objek Kubernetes atau kesahihannya

Objek langsung selalunya mengandungi medan yang diselenggara oleh pelayan atau pengawalnya. Mengalih keluar `status`, `managedFields`, `uid` atau `resourceVersion` mungkin sesuai untuk manifes yang boleh diguna semula, tetapi ToolAcre tidak mengetahui dasar itu dan tidak pernah menanggalkannya. Setiap pemadaman mestilah pengeditan yang disedari oleh Kubernetes yang disengajakan selepas penukaran.

Medan lain mungkin dijana namun masih diperlukan untuk mengekalkan niat. Bandingkan dengan versi dalam git dan rujuk dokumentasi semasa sistem yang memiliki daripada menggunakan senarai pembersihan yang dihafal. Penukar sengaja buta terhadap semantik domain.

Contoh yang berfungsi: Perkhidmatan yang diambil sebagai JSON — menukar kepada YAML, mengalih keluar medan yang diisi pelayan dan membandingkan dengan versi dalam git

Ambil objek berbentuk Perkhidmatan yang disunting dengan metadata, port spesifikasi dan blok status. Tukarkannya kepada YAML, kenal pasti medan yang diisi pelayan menggunakan prosedur operasi anda dan alih keluar sahaja yang diluluskan untuk artifak boleh guna semula. Bandingkan label, pemilih, port dan jenis dengan kawalan versi sebelum sebarang langkah penggunaan.

Penulis YAML boleh memetik rentetan seperti `NO`, `yes`, `1.0` atau teks yang kelihatan tarikh untuk melindungi jenisnya. Petikan tersebut bukanlah kekusutan untuk dipadamkan begitu sahaja. Tukar semula YAML yang diedit kepada JSON dan bandingkan pepohon data, sambil mengingati bahawa ulasan yang ditambahkan semasa pengeditan tidak dapat bertahan dengan laluan terbalik itu.

Arah terbalik — menukarkan manifes YAML kepada JSON untuk melihat dengan tepat perkara yang akan diterima oleh API, termasuk cara nilai petikan ditaip

Arah terbalik tersedia. YAML dibaca di bawah sama ada skema JSON atau skema Teras yang ketat, kemudian JSON ditulis dengan lekukan yang dipilih. Mod ketat mengekalkan `~`, nilai kosong dan `0o755` sebagai teks; Teras menyelesaikannya secara berbeza. Kedua-duanya tidak menganggap `NO` sebagai palsu.

Ini memberikan gambaran yang jelas tentang perkara yang akan dihantar oleh penghurai ToolAcre sebagai data berbentuk JSON. Ia tidak membuktikan apa yang YAML perpustakaan atau kemasukan skema kluster akan lakukan, terutamanya untuk teg tersuai atau medan khusus aplikasi.

Perkara ini tidak meliputi — mengesahkan manifes terhadap skema Kubernetes, yang memerlukan kubectl's dry-run atau alat skema

Tiada skema Kubernetes, definisi CRD atau peraturan kemasukan dimuatkan. Medan yang tidak diketahui, versi yang ditamatkan dan gabungan yang tidak sah mungkin bertukar dengan sempurna. Gunakan pengesah larian kering atau pengesah skema platform sasaran untuk soalan tersebut.

ToolAcre juga tidak boleh mengesahkan, mengambil sumber langsung atau membandingkan keadaan yang diingini dan diperhatikan. Tugasnya berakhir pada pemetaan sintaks. Memastikan sempadan itu jelas menghalang fail yang boleh dibaca daripada disalah anggap sebagai manifes yang diterima.

Bawa pulang: baca dalam YAML, sahkan dalam JSON — dan cara panel penukar Sintaks bertukar antara kedua-duanya tanpa meninggalkan tab

Baca sumber dalam tatatanda yang membantu tugasan, tetapi sahkan data dan peraturan domainnya secara berasingan. JSON menyediakan tanda baca eksplisit; YAML menyediakan paparan blok padat. Untuk nilai berbentuk JSON biasa, kedua-duanya boleh mengekalkan pokok itu walaupun ulasan dan gaya tidak boleh pergi balik.

Penukar sintaks bertukar antara paparan tersebut dalam pelayar dan mendedahkan pilihan skema dan amaran. Gunakannya sebagai peringkat pemeriksaan, bukan sebagai kuasa untuk mengalih keluar medan atau menggunakan sumber.

Untuk nota insiden, rekod output arahan asal, salinan pemeriksaan yang ditukar dan setiap pemadaman manual sebagai artifak berasingan. Jejak itu membolehkan jurutera lain membezakan kumpulan yang dikembalikan daripada yang telah dialih keluar untuk kebolehbacaan atau penggunaan semula. Ia juga menghalang petikan YAML yang bersih daripada disalah anggap sebagai sumber langsung yang lengkap. Penukar menyumbang sahaja perubahan notasi; asal dan kawalan perubahan kekal sebagai sebahagian daripada aliran kerja operasi.