Validator YAML Kubernetes
Tempel satu atau beberapa manifest Kubernetes (dipisahkan ---) dan validasi terhadap skema asli sebelum kubectl apply.
Seret file .yaml/.yml ke sini, atau tempel teks manifest di atas.
Beberapa manifest yang dipisahkan "---" divalidasi sebagai dokumen terpisah.
Opsi lanjutan
Parsing dan validasi berjalan di browser Anda — hanya skema resource (bukan manifest Anda) yang diambil dari CDN publik.
Tempel manifest Kubernetes di atas (atau muat contoh) dan hasil validasi akan muncul di sini.
Menangkap kesalahan manifest Kubernetes sebelum kubectl
Penolakan pada `kubectl apply` biasanya menjadi saat pertama kesalahan di manifest Kubernetes terlihat — dan saat itu Anda sering sedang di tengah deploy, menatap pesan error yang mengutip path validasi JSON Schema (`spec.template.spec.containers[0].image: Required value`) yang tidak langsung jelas kaitannya dengan file YAML yang baru Anda edit. Menangkap jenis kesalahan yang sama lebih awal, dengan baris yang tepat disorot, mengubahnya menjadi perbaikan lima detik, bukan pergantian konteks.
Sintaksis YAML punya sisi tajam yang jarang muncul di format konfigurasi lain: indentasi bermakna dan campuran tab/spasi yang tidak konsisten bisa diam-diam menghasilkan struktur berbeda (salah) alih-alih error, pemisah dokumen `---` mudah terlewat di file multi-resource yang panjang, dan satu tingkat nesting ekstra tampak seperti YAML valid padahal artinya sama sekali berbeda bagi Kubernetes. Alat ini melakukan parsing dengan pendekatan pustaka yang menjaga informasi posisi sumber secara penuh, sehingga masalah sintaksis dilaporkan pada baris yang sebenarnya, bukan sekadar "di suatu tempat dalam file 200 baris ini."
apiVersion yang usang adalah jebakan bergerak lambat: Deployment `extensions/v1beta1`, StatefulSet dan DaemonSet `apps/v1beta1`/`apps/v1beta2`, serta Ingress `networking.k8s.io/v1beta1` semuanya masih di-parse sebagai YAML valid dan bahkan berfungsi di cluster lama — sampai cluster di-upgrade melewati versi tempat Kubernetes akhirnya menghapus API group lama itu sepenuhnya, dan saat itu setiap manifest yang memakainya gagal diterapkan tanpa peringatan sebelumnya. Menangkapnya saat mengedit (dengan saran apiVersion pengganti yang tepat) mencegah Anda baru mengetahuinya ketika upgrade cluster.
Validasi skema terhadap spesifikasi OpenAPI Kubernetes yang asli menangkap sisanya: field `replicas` yang ternyata berupa string berkutip, bukan angka; `containerPort` di luar rentang valid; field wajib seperti `spec.selector` pada Deployment yang terhapus saat salin-tempel antar manifest. Tidak satu pun dari ini adalah kesalahan sintaksis YAML — file-nya ter-parse dengan baik — dan itulah sebabnya pemeriksaan skema khusus menangkap hal yang biasanya terlewat saat membaca file sekilas.
Pertanyaan yang sering diajukan
Apakah ini menggantikan `kubectl apply --dry-run` atau `kubeconform`?
Tidak. `kubectl apply --dry-run=server` adalah satu-satunya pemeriksaan yang berjalan terhadap API server cluster Anda yang sebenarnya (termasuk CRD dan admission webhook yang terpasang), dan `kubeconform`/`kubeval` adalah alat CLI matang untuk pipeline CI. Alat ini memvalidasi jenis hal yang sama — sintaksis YAML, bentuk skema, apiVersion usang — dari tab browser, sebelum `kubectl` Anda terhubung ke cluster mana pun, atau saat meninjau manifest kiriman orang lain.
Dari mana skema berasal?
Dari `yannh/kubernetes-json-schema`, mirror yang dikelola komunitas dan diperbarui otomatis dari JSON Schema turunan OpenAPI Kubernetes sendiri, diambil sesuai kebutuhan dari CDN publik untuk versi Kubernetes yang Anda pilih. Tidak ada bagian manifest Anda yang dikirim ke mana pun — hanya file skema (berversi, publik) yang diunduh, file yang sama untuk setiap pengguna yang memvalidasi kind/versi tersebut.
Mengapa hanya 10 jenis resource?
Deployment, Service, Ingress, ConfigMap, Secret, StatefulSet, DaemonSet, Job, CronJob, dan PersistentVolumeClaim mencakup sebagian besar manifest yang ditulis manual. Jenis lain tetap mendapat pemeriksaan sintaksis YAML penuh dan deteksi apiVersion usang — hanya saja belum mendapat validasi bentuk skema.
Apakah YAML saya pernah meninggalkan browser?
Tidak. Parsing dan validasi skema sama-sama berjalan dengan JavaScript biasa di tab ini — satu-satunya permintaan jaringan yang dilakukan alat ini adalah mengambil file JSON Schema publik untuk jenis resource dan versi Kubernetes yang Anda pilih, bukan isi manifest Anda.