This project automates chaos test manifest generation and application via ansible
- create experiment configuration files in yaml
- Generate experiment
cd experiment-1.0
ansible-playbook generate_experiment.yaml --extra-vars "config_file=./path/to/config.yaml"
cd ./path/to/generated-experiment
ansible-playbook experiment_script.yaml
only network delay is implemented
- CPU stress
- memory stress
- memory stress can be distinguished from CPU stress as it does not apply read and write pressure
- network latency delay
- uses Istio fault injection
- file I/O stress
- spiked traffic
- DNS wrong response
- HTTP interception
- K8s pod failure
- process failure
- network latency delay, packet loss
- hardware pressure
- machine shutdown
This project uses Chaos Mesh for fault injection.
The custom resource for chaos mesh experiments are generated from templates using jinja2 templates.
The custom resource manifests are applied via ansible