Kubernetes Manifest Linter
Lintajte Kubernetes YAML manifeste prema najboljim praksama zaštite klastera, potpuno izvanmrežno u svom pregledniku.
🔒 U potpunosti se obrađuje u vašem pregledniku — ništa što ovdje unesete nikada se ne učitava.
Rezultat
Kubernetes manifesti obično se pregledavaju na oko u pull requestu, što znači da iste šačica sigurnosnih grešaka stalno dolazi do produkcije: Deployment bez ograničenja memorije koji na kraju bude OOM-killan i povuče čvor sa sobom, kontejner koji sretno radi kao root jer nitko nije postavio runAsNonRoot ili Pod vezan uz oznaku slike poput `:latest` koja se nečujno mijenja ispod rollouta. Ovaj linter hvata tu vrstu problema u trenutku kad zalijepite manifest, bez potrebe za pokrenutim klasterom, kubectl kontekstom ili bilo kakvim vjerodajnicama.
Ispod haube nalazi se mali, ručno napisan YAML parser pisan upravo za realistični podskup YAML-a koji Kubernetes manifesti stvarno koriste: dokumenti odvojeni s `---`, ugniježđivanje temeljeno na uvlačenju, `key: value` i ugniježđena blok-mapiranja, `- ` stavke sekvenci uključujući liste mapa, citirani i necitirani skalari, komentari te `|`/`>` blok-skalari za stvari poput višerednih ConfigMap vrijednosti ili anotacija. Nema vanjske YAML biblioteke – i parser i engine pravila dolaze zajedno s alatom i u potpunosti se izvršavaju u vašem pregledniku.
Tablica pravila oblikovana je prema poznatim smjernicama za zaštitu klastera – CIS Kubernetes Benchmark, kube-score i profilu Pod Security Standards "Restricted" – i provjerava svaki kontejner na nedostajuće zahtjeve/ograničenja resursa, kontejnere koji se mogu izvoditi kao root ili u privilegiranom načinu rada, nedostajuće liveness i readiness probe na dugotrajnim radnim opterećenjima (Deployments, StatefulSets, DaemonSets), hostPath montiranja volumena koja izlažu datotečni sustav hosta, korištenje hostNetworka i nereproducibilne `:latest` ili neoznačene slike kontejnera. Nalazi su grupirani po dokumentu i po kontejneru, s jasnom težinom greška/upozorenje na svakom tako da možete razlikovati ono što je stvarno rizično od onoga što je tek poticaj za najbolju praksu.
Radi s pojedinačnim manifestima ili cijelim datotekama s više dokumenata zalijepljenima izravno iz ispisa Helm templatea ili `kustomize build` ispisa, razumijevajući resurse Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet i CronJob. Budući da se sve izvodi lokalno, sigurno je zalijepiti manifeste koji sadrže interna imena servisa, stvarne veličine resursa ili bilo što drugo što ne biste htjeli poslati API-ju treće strane – korisno za brzu provjeru prije commita, pomoć pri pregledu koda ili jednostavno učenje kako "zaštićeno" zapravo izgleda u praksi.