1493 lines
29 KiB
YAML
1493 lines
29 KiB
YAML
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Injects network packet duplication on pods belonging to an app deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-network-duplication
|
|
version: 0.1.3
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "patch"
|
|
- "create"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-network-duplication
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
- name: TC_IMAGE
|
|
value: 'gaiadocker/iproute2'
|
|
|
|
- name: NETWORK_INTERFACE
|
|
value: 'eth0'
|
|
|
|
- name: NETWORK_PACKET_DUPLICATION_PERCENTAGE
|
|
value: '100' # in percentage
|
|
|
|
- name: LIB
|
|
value: 'pumba'
|
|
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
labels:
|
|
name: pod-network-duplication
|
|
|
|
---
|
|
|
|
---
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Drain the node where application pod is scheduled
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: node-drain
|
|
version: 0.1.13
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "extensions"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "events"
|
|
- "pods/log"
|
|
- "daemonsets"
|
|
- "pods/eviction"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "patch"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/node-drain
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: LIVENESS_APP_LABEL
|
|
value: ''
|
|
|
|
- name: APP_NODE
|
|
value: ''
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
# Provide the LIB here
|
|
# Only litmus supported
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIVENESS_APP_NAMESPACE
|
|
value: ''
|
|
|
|
labels:
|
|
name: node-drain
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Fillup Ephemeral Storage of a Resource
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: disk-fill
|
|
version: 0.1.15
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/exec"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/disk-fill
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
- name: FILL_PERCENTAGE
|
|
value: '80'
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# Provide the LIB here
|
|
# Only litmus supported
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
# Provide the container runtime path
|
|
# Default set to docker
|
|
- name: CONTAINER_PATH
|
|
value: '/var/lib/docker/containers'
|
|
|
|
labels:
|
|
name: disk-fill
|
|
|
|
---
|
|
|
|
---
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Taint the node where application pod is scheduled
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: node-taint
|
|
version: 0.1.1
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "extensions"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "events"
|
|
- "pods/log"
|
|
- "daemonsets"
|
|
- "pods/eviction"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "patch"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/node-taint
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: APP_NODE
|
|
value: ''
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
# Provide the LIB here
|
|
# Only litmus supported
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# set taint label & effect
|
|
# key=value:effect or key:effect
|
|
- name: TAINTS
|
|
value: ''
|
|
|
|
labels:
|
|
name: node-taint
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Scale the application replicas and test the node autoscaling on cluster
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-autoscaler
|
|
version: 0.1.0
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "apps"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "deployments"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-autoscaler
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# Number of replicas to scale
|
|
- name: REPLICA_COUNT
|
|
value: '5'
|
|
|
|
# PROVIDE THE LIB HERE
|
|
# ONLY LITMUS SUPPORTED
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
labels:
|
|
name: pod-autoscaler
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Injects cpu consumption on pods belonging to an app deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-cpu-hog
|
|
version: 0.1.11
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-cpu-hog
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '30'
|
|
|
|
- name: CHAOS_INTERVAL
|
|
value: '10'
|
|
|
|
## Number of CPU cores to stress
|
|
- name: CPU_CORES
|
|
value: '1'
|
|
|
|
## Percentage of total pods to target
|
|
- name: PODS_AFFECTED_PERC
|
|
value: ''
|
|
|
|
## Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
labels:
|
|
name: pod-cpu-hog
|
|
|
|
---
|
|
|
|
---
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Injects memory consumption on pods belonging to an app deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-memory-hog
|
|
version: 0.1.3
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-memory-hog
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '30'
|
|
|
|
- name: CHAOS_INTERVAL
|
|
value: '10'
|
|
|
|
## enter the amount of memory in megabytes to be consumed by the application pod
|
|
- name: MEMORY_CONSUMPTION
|
|
value: '500'
|
|
|
|
## percentage of total pods to target
|
|
- name: PODS_AFFECTED_PERC
|
|
value: ''
|
|
|
|
## Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
## env var that describes the library used to execute the chaos
|
|
## default: litmus. Supported values: litmus, powerfulseal, chaoskube
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
labels:
|
|
name: pod-memory-hog
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Inject network packet corruption into application pod
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-network-corruption
|
|
version: 0.1.13
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "delete"
|
|
- "list"
|
|
- "patch"
|
|
- "update"
|
|
- "get"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-network-corruption
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
# provide lib image
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
- name: NETWORK_INTERFACE
|
|
value: 'eth0'
|
|
|
|
- name: TC_IMAGE
|
|
value: 'gaiadocker/iproute2'
|
|
|
|
- name: NETWORK_PACKET_CORRUPTION_PERCENTAGE
|
|
value: '100' #in PERCENTAGE
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60' # in seconds
|
|
|
|
# Time period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'pumba'
|
|
labels:
|
|
name: pod-network-corruption
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Deletes a pod belonging to a deployment/statefulset/daemonset
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-delete
|
|
version: 0.1.19
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "deployments"
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "configmaps"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-delete
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '15'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# provide the kill count
|
|
- name: KILL_COUNT
|
|
value: ''
|
|
|
|
- name: FORCE
|
|
value: 'true'
|
|
|
|
- name: CHAOS_INTERVAL
|
|
value: '5'
|
|
|
|
- name: LIB
|
|
value: 'litmus'
|
|
labels:
|
|
name: pod-delete
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Injects network packet loss on pods belonging to an app deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-network-loss
|
|
version: 0.1.18
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "patch"
|
|
- "create"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-network-loss
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
# provide lib image
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
- name: NETWORK_INTERFACE
|
|
value: 'eth0'
|
|
|
|
- name: TC_IMAGE
|
|
value: 'gaiadocker/iproute2'
|
|
|
|
- name: NETWORK_PACKET_LOSS_PERCENTAGE
|
|
value: '100' #in PERCENTAGE
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60' # in seconds
|
|
|
|
# ime period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'pumba'
|
|
labels:
|
|
name: pod-network-loss
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Deletes an aws instance belonging to a deployment/statefulset/daemonset
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: aws-ec2-terminate
|
|
version: 0.0.1
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "deployments"
|
|
- "jobs"
|
|
- "pods"
|
|
- "configmaps"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs :
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/chaostoolkit:latest"
|
|
args:
|
|
- -c
|
|
- python /app/chaos/chaostest/aws/aws_wrapper.py ; exit 0
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: CHAOSTOOLKIT_IN_POD
|
|
value: 'true'
|
|
|
|
- name: FILE
|
|
value: 'ec2-delete.json'
|
|
|
|
- name: NAME_SPACE
|
|
value: 'default'
|
|
|
|
- name: LABEL_NAME
|
|
value: 'app=nginx'
|
|
|
|
- name: APP_ENDPOINT
|
|
value: 'localhost'
|
|
|
|
# Period to wait before injection of chaos in sec
|
|
- name: PERCENTAGE
|
|
value: '50'
|
|
|
|
# Variable to set for custom report upload
|
|
- name: REPORT
|
|
value: 'false'
|
|
|
|
# Variable to set for report upload endpoint
|
|
- name: REPORT_ENDPOINT
|
|
value: 'none'
|
|
|
|
# Variable to set for AWS account
|
|
- name: AWS_ACCOUNT
|
|
value: '000000000000'
|
|
|
|
# Variable to set for AWS role, Make sure you have created this role and have give access
|
|
- name: AWS_ROLE
|
|
value: 'chaosec2access'
|
|
|
|
# Variable to set for AWS region
|
|
- name: AWS_REGION
|
|
value: 'us-west-2'
|
|
|
|
# Variable to set for AWS AZ
|
|
- name: AWS_AZ
|
|
value: 'us-west-2c'
|
|
|
|
# Variable to set for AWS RESOURCE
|
|
- name: AWS_RESOURCE
|
|
value: 'ec2-iks'
|
|
|
|
# Variable to set for AWS SSL
|
|
- name: AWS_SSL
|
|
value: 'false'
|
|
|
|
# Variable which indicates where the test results CRs will be persisted
|
|
- name: TEST_NAMESPACE
|
|
value: 'default'
|
|
|
|
labels:
|
|
name: aws-ec2-terminate
|
|
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Detaching a persistent disk from a node/instance. Supports only for AWS and GCP
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: disk-loss
|
|
version: 0.1.14
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "events"
|
|
- "pods/log"
|
|
- "secrets"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/ansible-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ansible-playbook ./experiments/generic/disk_loss/disk_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: ANSIBLE_STDOUT_CALLBACK
|
|
value: 'default'
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '15'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: APP_CHECK
|
|
value: 'true'
|
|
|
|
# GKE and AWS supported
|
|
- name: CLOUD_PLATFORM
|
|
value: 'GKE'
|
|
|
|
- name: PROJECT_ID
|
|
value: ''
|
|
|
|
- name: NODE_NAME
|
|
value: ''
|
|
|
|
- name: DISK_NAME
|
|
value: ''
|
|
|
|
# provide the LIB
|
|
# only litmus supported
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
- name: ZONE_NAME
|
|
value: ''
|
|
|
|
- name: DEVICE_NAME
|
|
value: ''
|
|
|
|
labels:
|
|
name: disk-loss
|
|
secrets:
|
|
- name: cloud-secret
|
|
mountPath: /tmp/
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Deletes a pod belonging to a deployment/statefulset/daemonset
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: k8-service-kill
|
|
version: 0.0.1
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "deployments"
|
|
- "jobs"
|
|
- "pods"
|
|
- "configmaps"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs :
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/chaostoolkit:latest"
|
|
args:
|
|
- -c
|
|
- python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: CHAOSTOOLKIT_IN_POD
|
|
value: 'true'
|
|
|
|
- name: FILE
|
|
value: 'service-app-kill-health.json'
|
|
|
|
- name: NAME_SPACE
|
|
value: ''
|
|
|
|
- name: LABEL_NAME
|
|
value: ''
|
|
|
|
- name: APP_ENDPOINT
|
|
value: ''
|
|
|
|
- name: PERCENTAGE
|
|
value: '50'
|
|
|
|
- name: REPORT
|
|
value: 'true'
|
|
|
|
- name: REPORT_ENDPOINT
|
|
value: 'none'
|
|
|
|
- name: TEST_NAMESPACE
|
|
value: 'default'
|
|
|
|
|
|
labels:
|
|
name: k8-service-kill
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Injects network latency on pods belonging to an app deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: pod-network-latency
|
|
version: 0.1.18
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/pod-network-latency
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
- name: NETWORK_INTERFACE
|
|
value: 'eth0'
|
|
|
|
# provide lib image
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
- name: TC_IMAGE
|
|
value: 'gaiadocker/iproute2'
|
|
|
|
- name: NETWORK_LATENCY
|
|
value: '60000' #in ms
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60' # in seconds
|
|
|
|
# Time period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'pumba'
|
|
labels:
|
|
name: pod-network-latency
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Give a cpu spike on a node belonging to a deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: node-cpu-hog
|
|
version: 0.1.21
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "apps"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/node-cpu-hog
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '60'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
## ENTER THE NUMBER OF CORES OF CPU FOR CPU HOGGING
|
|
## OPTIONAL VALUE IN CASE OF EMPTY VALUE IT WILL TAKE NODE CPU CAPACITY
|
|
- name: NODE_CPU_CORE
|
|
value: ''
|
|
|
|
# PROVIDE THE LIB HERE
|
|
# ONLY LITMUS SUPPORTED
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
# provide lib image
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
labels:
|
|
name: node-cpu-hog
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Kills the docker service on the application node to check the resiliency.
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: docker-service-kill
|
|
version: 0.1.1
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "apps"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/ansible-runner:ci"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ansible-playbook ./experiments/generic/docker_service_kill/docker_service_kill_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: ANSIBLE_STDOUT_CALLBACK
|
|
value: 'default'
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '90' # in seconds
|
|
|
|
# Period to wait before injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'litmus'
|
|
labels:
|
|
name: docker-service-kill
|
|
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Kills the kubelet service on the application node to check the resiliency.
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: kubelet-service-kill
|
|
version: 0.1.4
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "apps"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/kubelet-service-kill
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '90' # in seconds
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
# provide node name
|
|
- name: APP_NODE
|
|
value: ''
|
|
|
|
labels:
|
|
name: kubelet-service-kill
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Give a memory hog on a node belonging to a deployment
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: node-memory-hog
|
|
version: 0.1.12
|
|
spec:
|
|
definition:
|
|
scope: Cluster
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "batch"
|
|
- "apps"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/node-memory-hog
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '120'
|
|
|
|
## specify the size as percent of total available memory (in percentage)
|
|
## Default value "90"
|
|
- name: MEMORY_PERCENTAGE
|
|
value: '90'
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# Provide the LIB here
|
|
# Only litmus supported
|
|
- name: LIB
|
|
value: 'litmus'
|
|
|
|
# provide lib image
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
labels:
|
|
name: node-memory-hog
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: |
|
|
Deletes a pod belonging to a deployment/statefulset/daemonset
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: k8-pod-delete
|
|
version: 0.0.4
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "deployments"
|
|
- "jobs"
|
|
- "pods"
|
|
- "configmaps"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "patch"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "nodes"
|
|
verbs :
|
|
- "get"
|
|
- "list"
|
|
image: "litmuschaos/chaostoolkit:latest"
|
|
args:
|
|
- -c
|
|
- python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
- name: CHAOSTOOLKIT_IN_POD
|
|
value: 'true'
|
|
|
|
- name: FILE
|
|
value: 'pod-app-kill-count.json'
|
|
|
|
- name: NAME_SPACE
|
|
value: ''
|
|
|
|
- name: LABEL_NAME
|
|
value: ''
|
|
|
|
- name: APP_ENDPOINT
|
|
value: ''
|
|
|
|
- name: PERCENTAGE
|
|
value: '50'
|
|
|
|
- name: REPORT
|
|
value: 'true'
|
|
|
|
- name: REPORT_ENDPOINT
|
|
value: 'none'
|
|
|
|
- name: TEST_NAMESPACE
|
|
value: 'default'
|
|
|
|
|
|
labels:
|
|
name: k8-pod-delete
|
|
|
|
---
|
|
|
|
apiVersion: litmuschaos.io/v1alpha1
|
|
description:
|
|
message: "Kills a container belonging to an application pod \n"
|
|
kind: ChaosExperiment
|
|
metadata:
|
|
name: container-kill
|
|
version: 0.1.24
|
|
spec:
|
|
definition:
|
|
scope: Namespaced
|
|
permissions:
|
|
- apiGroups:
|
|
- ""
|
|
- "apps"
|
|
- "batch"
|
|
- "litmuschaos.io"
|
|
resources:
|
|
- "jobs"
|
|
- "pods"
|
|
- "pods/log"
|
|
- "events"
|
|
- "pods/exec"
|
|
- "chaosengines"
|
|
- "chaosexperiments"
|
|
- "chaosresults"
|
|
verbs:
|
|
- "create"
|
|
- "list"
|
|
- "get"
|
|
- "update"
|
|
- "patch"
|
|
- "delete"
|
|
image: "litmuschaos/go-runner:latest"
|
|
imagePullPolicy: Always
|
|
args:
|
|
- -c
|
|
- ./experiments/container-kill
|
|
command:
|
|
- /bin/bash
|
|
env:
|
|
|
|
- name: TARGET_CONTAINER
|
|
value: ''
|
|
|
|
# Period to wait before and after injection of chaos in sec
|
|
- name: RAMP_TIME
|
|
value: ''
|
|
|
|
# It supports pumba and litmus
|
|
# pumba: for docker runtime
|
|
# litmus: for containerd/crio runtime
|
|
- name: LIB
|
|
value: 'pumba'
|
|
|
|
# provide the chaos interval
|
|
- name: CHAOS_INTERVAL
|
|
value: '10'
|
|
|
|
# provide the container runtime path for containerd
|
|
# applicable only for containerd runtime
|
|
- name: CONTAINER_PATH
|
|
value: '/run/containerd/containerd.sock'
|
|
|
|
# provide the total chaos duration
|
|
- name: TOTAL_CHAOS_DURATION
|
|
value: '20'
|
|
|
|
- name: LIB_IMAGE
|
|
value: 'litmuschaos/go-runner:latest'
|
|
|
|
securityContext:
|
|
containerSecurityContext:
|
|
privileged: true
|
|
|
|
labels:
|
|
name: container-kill
|
|
|
|
---
|
|
|