This experiment causes Memory resource consumption on specified application containers by using dd command which will used to consume memory of the application container for certain duration of time. It can test the application's resilience to potential slowness/unavailability of some replicas due to high Memory load. Check node memory hog docs for more info. To know more and get started with chaos-actions visit github-chaos-actions.
A Sample workflow to run pod-memory-hog experiment:
.github/workflows/main.yml
name: CI
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Running pod-memory-hog chaos experiment
uses: litmuschaos/github-chaos-actions@v0.4.0
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
##If litmus is not installed
INSTALL_LITMUS: true
##Give application info under chaos
APP_NS: default
APP_LABEL: run=nginx
APP_KIND: deployment
EXPERIMENT_NAME: pod-cpu-hog
##Custom images can also be used
EXPERIMENT_IMAGE: litmuschaos/go-runner
EXPERIMENT_IMAGE_TAG: latest
IMAGE_PULL_POLICY: Always
TARGET_CONTAINER: nginx
TOTAL_CHAOS_DURATION: 60
MEMORY_CONSUMPTION: 500
##Select true if you want to uninstall litmus after chaos
LITMUS_CLEANUP: true
The application pod for pod-cpu-hog will be identified with the app info variables.
Supported Chaos Action Tunables
Variables | Description | Specify In Chaos Action | Default Value |
---|---|---|---|
EXPERIMENT_NAME | For Running pod memory hog experiment keep it pod-memory-hog | Mandatory | No default value |
MEMORY_CONSUMPTION | The amount of memory used of hogging a Kubernetes pod | Optional | Default value is 500M |
TARGET_CONTAINER | Name of the container subjected to CPU stress. | Optional | Default value is nginx |
TOTAL_CHAOS_DURATION | The time duration for chaos injection (seconds) | Optional | Default value is 120s |
APP_NS | Provide namespace of application under chaos | Optional | Default value is default |
APP_LABEL | Provide application label of application under chaos. | Optional | Default value is run=nginx |
APP_KIND | Provide the kind of application | Optional | Default value is deployment |
INSTALL_LITMUS | Keep it true to install litmus if litmus is not already installed. | Optional | Default value is not set to true |
LITMUS_CLEANUP | Keep it true to uninstall litmus after chaos | Optional | Default value is not set to true |
EXPERIMENT_IMAGE | We can provide custom image for running chaos experiment | Optional | Default value is litmuschaos/go-runner |
EXPERIMENT_IMAGE_TAG | We can set the image tag while using custom image for the chaos experiment | Optional | Default value is latest |
IMAGE_PULL_POLICY | We can set the image pull policy while using custom image for running chaos experiment | Optional | Default value is Always |