This dir contains seven Kubernetes manifest files with a different misconfiguration in each one:
wrong: apiVersion: apps/v1beta2
correct: apiVersion: apps/v1
reason: apps/v1beta2
was deprecated for resource type "Deployment" in Kuberenetes version 1.18.0
wrong: kind: pod
correct: kind: Pod
reason: resource type must start with a capita letter - Pod
wrong: owner: ---
correct: owner: frodo-baggins
reason: labels values must start and end with an alphanumeric letter
wrong: protocol: 22
correct: protocol: TCP
reason: protocol type must be a string
wrong: Spec:
correct: spec:
reason: spec
must start with a small s'
wrong:
containers:
- name: web
correct:
containers:
- name: web
image: nginx
reason: each container must include an image name
wrong:
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
correct:
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
reason: Kuberenetes\YAML indentation requires one tab space when listing containers
This dir contains 100 valid Kubernetes manifest files.
All files are containing the same Kubernetes configurations.
kubeval: kubeval --strict misconfigs/*.yaml -v "1.18.0"
kubeconform: kubeconform -strict misconfigs/*.yaml
kubectl dry-run in client mode: kubectl apply -f misconfigs/ --dry-run=client
kubectl dry-run in server mode: kubectl apply -f misconfigs/ --dry-run=server
🔧 prerequisite - hyperfine installed
kubeval: hyperfine --warmup 5 'kubeval --strict benchmark/*.yaml -v "1.18.0"'
kubeconform: hyperfine --warmup 5 'kubeconform -strict benchmark/*.yaml'
kubectl dry-run in client mode: hyperfine --warmup 5 'kubectl apply -f benchmark/ --dry-run=client'
kubectl dry-run in server mode: hyperfine --warmup 5 'kubectl apply -f benchmark/ --dry-run=server'