Skip to content

Latest commit

 

History

History
137 lines (125 loc) · 4.34 KB

File metadata and controls

137 lines (125 loc) · 4.34 KB

Pod Network Corruption Experiment

This chaos action Injects packet corruption on the specified container by starting a traffic control (tc) process with netem rules to add egress packet corruption. Corruption is injected via pumba library with command pumba netem corruption by passing the relevant network interface, packet-corruption-percentage, chaos duration and regex filter for container name. Check pod network corruption docs for more info.To know more and get started with chaos-actions visit github-chaos-actions.

Sample workflow

A Sample workflow to run pod network corruption experiment:

.github/workflows/main.yml

name: CI

on:
  push:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
    - name: Running pod network corruption 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-network-corruption
        ##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
        NETWORK_INTERFACE: eth0
        CONTAINER_RUNTIME: docker
        ##Select true if you want to uninstall litmus after chaos
        LITMUS_CLEANUP: true

Environment Variabels

The application pod for pod-network-corruption 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 network corruption experiment keep it pod-network-corruption Mandatory No default value
NETWORK_INTERFACE Name of ethernet interface considered for shaping traffic Optional Default value is eth0
TARGET_CONTAINER Name of container which is subjected to network corruption. Optional Default value is nginx
CONTAINER_RUNTIME Give the target container runtime Optional Default value is 'docker'
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