πͺ± A Delightfully Buggy Application πͺ±
π Getting Started π
Ahoy there, brave DevOps and SRE warriors! π΄ββ οΈ Introducing Kermoo, derived from the Persian mischief-maker "Ϊ©Ψ±Ω Ω". We're here to toss a wrench (or ten) into your perfectly running apps, all in the name of science... and a bit of fun. π
Want to see how your system fares against the worst? Or perhaps you've got a tad too much trust in your resilience and fault tolerance? Time to put that to the test!
-
π Simulate Process Startup Delays & Failures:
- Make your process sleep in a bit. They deserve it! Define a delay.
- Surprise! Unexpected exits. π Set an exit time and code.
-
π₯ Simulate Webserver & Backend Mayhem:
- Chaos in the form of HTTP requests:
- Oops! Request failed. π
- Snail-paced π responses.
- Lost at connection level! πβ
- Plan your mischief: percentage affected, duration...
- Or sometimes...just sometimes, send some good [static or whoami-like] response. π
- Chaos in the form of HTTP requests:
-
π₯ Simulate Heavy CPU Sunbathing:
- Turn up the heat and get that CPU sweating! π¦ Set a load percentage and duration.
-
π§ Simulate Forgetful Memory Leaks:
- Because who doesn't want to spring a leak now and then? Choose your memory size and duration.
Kermoo is ready to be installed with:
- Docker
- Docker Compose
- Docker Swarm
- Kubernetes Kustomization
- Kubernetes Helm Chart
- Downloadable Binaries
π Read Documents
Simply setup the all-optional configurations using YAML and pass it to Kermoo:
kermoo start -f - <<EOL
# Simulate the main process to delay initially for 5 seconds
# Then simulate disaster by exiting the process after somewhere
# between 4 to 10 seconds with the exit code of 20.
process:
delay: 5s
exit:
after: 4s to 10s
code: 20
webServers:
# Setup a webserver that listens on 0.0.0.0:80
# that will be ready for connect 50% of time
- fault:
percentage: 50
routes:
# Setup a /livez route that will serve a whoami content
# with the chance of 60% or fail with an error (4xx, 5xx)
- path: /livez
content:
whoami: true
fault:
percentage: 60
# Simulate CPU load which will repeatitivly utilize
# 20%, 50% and 80% of all cores every second.
cpuLoad:
percentage: 20, 50, 80
interval: 1s
# Simulate memory leak which will repeatitivly consume
# somewhere between 100Mi and 1Gi of memory - recomputed
# every 5 seconds.
memoryLeak:
size: 100Mi to 1Gi
interval: 5s
EOL
π Read Documents
Love the pandemonium? Consider contributing and let's brew more bedlam together! βπ₯