All Projects → richstokes → Cheekymonkey

richstokes / Cheekymonkey

Licence: bsd-3-clause
🐵 Literally a Chaos Monkey for your Kubernetes clusters

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cheekymonkey

Docker Tc
🐳 🚦 Docker Traffic Control - network rate limiting, emulating delays, losses, duplicates, corrupts and reorders of network packets using only container labels or a command-line interface.
Stars: ✭ 317 (+138.35%)
Mutual labels:  chaos-engineering
Muxy
Chaos engineering tool for simulating real-world distributed system failures
Stars: ✭ 756 (+468.42%)
Mutual labels:  chaos-engineering
Pseudo Localization
Dynamic pseudo-localization in the browser and nodejs
Stars: ✭ 109 (-18.05%)
Mutual labels:  chaos-engineering
Chaosblade
An easy to use and powerful chaos engineering experiment toolkit.(阿里巴巴开源的一款简单易用、功能强大的混沌实验注入工具)
Stars: ✭ 4,343 (+3165.41%)
Mutual labels:  chaos-engineering
Chaos Monkey Spring Boot
Chaos Monkey for Spring Boot
Stars: ✭ 646 (+385.71%)
Mutual labels:  chaos-engineering
Wheel Of Misfortune
A role-playing game for incident management training
Stars: ✭ 57 (-57.14%)
Mutual labels:  chaos-engineering
Service decorators
Simplify your microservice development
Stars: ✭ 254 (+90.98%)
Mutual labels:  chaos-engineering
Mangle
Git Repository for the Mangle tool
Stars: ✭ 125 (-6.02%)
Mutual labels:  chaos-engineering
Kubeinvaders
Gamified Chaos Engineering Tool for Kubernetes
Stars: ✭ 673 (+406.02%)
Mutual labels:  chaos-engineering
Chaoskube
chaoskube periodically kills random pods in your Kubernetes cluster.
Stars: ✭ 1,325 (+896.24%)
Mutual labels:  chaos-engineering
Awesome Chaos Engineering
A curated list of Chaos Engineering resources.
Stars: ✭ 4,740 (+3463.91%)
Mutual labels:  chaos-engineering
React Chaos
Chaos Engineering for your React apps.
Stars: ✭ 578 (+334.59%)
Mutual labels:  chaos-engineering
Chaostoolkit Aws
Chaos Toolkit Extension for AWS
Stars: ✭ 72 (-45.86%)
Mutual labels:  chaos-engineering
Chaos Mesh
A Chaos Engineering Platform for Kubernetes.
Stars: ✭ 4,265 (+3106.77%)
Mutual labels:  chaos-engineering
Sniffy
Sniffy - interactive profiler, testing and chaos engineering tool for Java
Stars: ✭ 117 (-12.03%)
Mutual labels:  chaos-engineering
Simmy
Simmy is a chaos-engineering and fault-injection tool, integrating with the Polly resilience project for .NET
Stars: ✭ 313 (+135.34%)
Mutual labels:  chaos-engineering
Comcast
Simulating shitty network connections so you can build better systems.
Stars: ✭ 7,703 (+5691.73%)
Mutual labels:  chaos-engineering
Litmus
Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
Stars: ✭ 2,377 (+1687.22%)
Mutual labels:  chaos-engineering
Powerfulseal
A powerful testing tool for Kubernetes clusters.
Stars: ✭ 1,725 (+1196.99%)
Mutual labels:  chaos-engineering
Chaostoolkit
Chaos Engineering Experiments Automation & Orchestration
Stars: ✭ 1,204 (+805.26%)
Mutual labels:  chaos-engineering

Cheeky Monkey

Inspired by Netflix's "Chaos Monkey", this game quite literally sets a monkey loose in your Kubernetes cluster.

 

 

CHAOS ENGINEERING IS: "the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production."

This game is more for fun and demonstration purposes than to be a genuine chaos engineering tool. That said, over time I may add other disruptive features beyond simply killing pods. Feel free to open an "issue" with any suggestions!

 

Kubernetes pods are represented by crates in the game. The more pods you have, the more crates are dropped!

You control the monkey with the arrow keys, and punch crates with spacebar. You can also hold 'G' to grab a crate to your right and drag it around.

Every time the monkey destroys a crate, a pod in your cluster is randomly selected and deleted.

Press 'R' to reset the game.

 

Install & run

  1. Clone the repo
  2. pip install -r requirements.txt
  3. python cheekymonkey.py

Or with pyenv (recommended):

pyenv install 3.8.7
eval "$(pyenv init -)"
pyenv local 3.8.7
pip install -r requirements.txt
python ./cheekymonkey.py

 

Unless offline mode is set (see below), the game will attempt to connect to your currentt Kubernetes context.

Note: The game will target pods across ALL namespaces, unless you specify namespaces to exclude, for example:
python cheekymonkey.py --exclude kube-system cert-manager

 

Command line Options

--offline yes Switches to offline mode, no pods will be harmed
--exclude <namespace1> <namespace2> Space-separated list of namespaces to exclude

 

Other settings

Change the following in constants.py:

  • Resolution - set SCREEN_WIDTH and SCREEN_HEIGHT as desired
  • CONTAINER_FACTOR - Multiplication factor for creating crates based on the actual number of containers in your cluster. The idea is you can use this to get a reasonable number of crates in game if you have a lot of running pods in your cluster.
  • CONTAINER_HEALTH - How many times the monkey needs to hit the crate before its corresponding pod is killed
  • OFFLINE_CRATE_COUNT - How many crates to spawn in offline mode (Multiplied by CONTAINER_FACTOR)

You can have fun with the physics by using the plus/minus keys to change the punching force.

 

Credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].