0

Kubernetes Manifest Linter

Lint Kubernetes YAML manifesterer seg mot klyngeherdende beste praksis, helt offline i nettleseren din.

Buy Me a Coffee at ko-fi.com
Behandler... 0%
Parsing YAML
Gåmanifest
Sjekker herderegler
Ferdig

Resultat

Kubernetes-manifester blir vanligvis gjennomgått med øyet i en pull-forespørsel, noe som betyr at den samme håndfull herdefeil fortsetter å komme til produksjon: en utrulling uten minnegrense som til slutt blir OOM-drept og tar en node med seg, en beholder som gjerne kjører som root fordi ingen har satt runAsNonRoot, eller en Pod festet til en bilde-tag som endres som "siste ut." Denne linter fanger den klassen av problemer i det øyeblikket du limer inn et manifest, uten at du trenger en løpende klynge, kubectl-kontekst eller noen legitimasjon i det hele tatt.

Under panseret inkluderer den en liten håndrullet YAML-parser skrevet spesifikt for den realistiske undergruppen av YAML som Kubernetes-manifester faktisk bruker: `---`-separerte dokumenter, innrykk-basert nesting, `key: value` og nestede blokktilordninger, `- `sekvenselementer inkludert lister over kart, siterte og ikke-siterte blokker,>``-blokker,>`` skalarer for ting som flerlinjers ConfigMap-verdier eller merknader. Det er ikke noe eksternt YAML-bibliotek involvert - parseren og regelmotoren er begge buntet med verktøyet og kjører helt i nettleseren din.

Regeltabellen er modellert etter velkjente cluster-hardening-veiledninger – CIS Kubernetes Benchmark, kube-score og Pod Security Standards "Restricted"-profilen – og sjekker hver container for manglende ressursforespørsler/grenser, containere som kan kjøre som root eller i privilegert modus, manglende liveness og beredskaps-arbeidsbelastningsprober på langdriftsprogrammer, utrullinger, da-installasjoner. hostPath-volummonteringer som avslører vertsfilsystemet, vertsnettverksbruk og ikke-reproduserbare `:siste` eller umerkede containerbilder. Funnene er gruppert etter dokument og etter beholder, med en tydelig feil/advarselsgrad på hver enkelt slik at du kan se hva som faktisk er risikabelt fra det som bare er et dytt med beste praksis.

Det fungerer på enkeltmanifester eller hele multidokumentfiler limt inn rett fra en Helm-malgjengivelse eller en "kustomize build"-utgang, og forstår Pod-, Deployment-, StatefulSet-, DaemonSet-, Job-, ReplicaSet- og CronJob-ressurser. Fordi alt kjører lokalt, er det trygt å lime inn manifester som inneholder interne tjenestenavn, reell ressursstørrelse eller noe annet du ikke ønsker å sende til en tredjeparts API – nyttig for en rask forutsetningskontroll, en kodegjennomgang, eller bare lære hvordan "herdet" faktisk ser ut i praksis.