diff --git a/charts/generic/experiments.yaml b/charts/generic/experiments.yaml index abde784..af8a08b 100644 --- a/charts/generic/experiments.yaml +++ b/charts/generic/experiments.yaml @@ -1,102 +1,3 @@ ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - IO stress on a app pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-io-stress - labels: - name: pod-io-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - - apiGroups: - - "" - - "batch" - - "litmuschaos.io" - resources: - - "jobs" - - "pods" - - "pods/log" - - "pods/exec" - - "events" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "list" - - "get" - - "patch" - - "update" - - "delete" - - "deletecollection" - image: "litmuschaos/go-runner:latest" - args: - - -c - - ./experiments -name pod-io-stress - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '120' - - ## specify the size as percentage of free space on the file system - ## default value 90 (in percentage) - - name: FILESYSTEM_UTILIZATION_PERCENTAGE - value: '10' - - ## we can specify the size in Gigabyte (Gb) also in place of percentage of free space - ## NOTE: for selecting this option FILESYSTEM_UTILIZATION_PERCENTAGE should be empty - - name: FILESYSTEM_UTILIZATION_BYTES - value: '' - - ## Total number of workers default value is 4 - - name: NUMBER_OF_WORKERS - value: '4' - - ## Percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - # provide volume mount path - - name: VOLUME_MOUNT_PATH - value: '' - - ## specify the comma separated target pods - - name: TARGET_PODS - value: '' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # Provide the LIB here - # Only pumba supported - - name: LIB - value: 'pumba' - - # provide lib image - - name: LIB_IMAGE - value: 'gaiaadm/pumba' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-io-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- apiVersion: litmuschaos.io/v1alpha1 description: message: | @@ -186,33 +87,33 @@ spec: - name: id-rsa mountPath: /mnt/ +--- --- apiVersion: litmuschaos.io/v1alpha1 description: message: | - Fillup Ephemeral Storage of a Resource + Injects memory consumption on pods belonging to an app deployment kind: ChaosExperiment metadata: - name: disk-fill + name: pod-memory-hog labels: - name: disk-fill + name: pod-memory-hog app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest spec: definition: - scope: Cluster - permissions: + scope: Namespaced + permissions: - apiGroups: - "" - - "apps" - "batch" - "litmuschaos.io" resources: - "jobs" - "pods" - - "pods/exec" - "pods/log" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -226,54 +127,52 @@ spec: - "delete" - "deletecollection" image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always args: - -c - - ./experiments -name disk-fill + - ./experiments -name pod-memory-hog command: - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: '60' - - name: TARGET_CONTAINER - value: '' - - - name: FILL_PERCENTAGE - value: '80' + - name: CHAOS_INTERVAL + value: '10' - - name: TOTAL_CHAOS_DURATION - value: '60' + ## enter the amount of memory in megabytes to be consumed by the application pod + - name: MEMORY_CONSUMPTION + value: '500' - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' - # 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: TARGET_PODS - value: '' + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, pumba + - name: LIB + value: 'litmus' - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'gaiaadm/pumba' + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' - # Provide the container runtime path - # Default set to docker - - name: CONTAINER_PATH - value: '/var/lib/docker/containers' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' + - name: TARGET_PODS + value: '' labels: - name: disk-fill + name: pod-memory-hog app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -281,13 +180,12 @@ spec: --- apiVersion: litmuschaos.io/v1alpha1 description: - message: | - Deletes a pod belonging to a deployment/statefulset/daemonset + message: "Kills a container belonging to an application pod \n" kind: ChaosExperiment metadata: - name: k8-service-kill + name: container-kill labels: - name: k8-service-kill + name: container-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -300,92 +198,12 @@ spec: - "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" - labels: - name: k8-service-kill - app.kubernetes.io/part-of: litmus - 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' - - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Injects network latency on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-network-latency - labels: - name: pod-network-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - - apiGroups: - - "" - - "batch" - - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" - "events" + - "pods/exec" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -393,80 +211,69 @@ spec: - "create" - "list" - "get" - - "patch" - "update" + - "patch" - "delete" - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c - - ./experiments -name pod-network-latency + - ./experiments -name container-kill 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 + # Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - name: LIB value: 'litmus' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - + - name: TARGET_PODS value: '' + # provide the chaos interval + - name: CHAOS_INTERVAL + value: '10' + + # provide the socket file path + # applicable only for containerd and crio runtime + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + # provide the name of container runtime # it supports docker, containerd, crio # default to docker - name: CONTAINER_RUNTIME value: 'docker' - # provide the target ips - # chaos injection will be triggered for these destination ips - - name: TARGET_IPS + # provide the total chaos duration + - name: TOTAL_CHAOS_DURATION + value: '20' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC value: '' - # provide the target hosts - # chaos injection will be triggered for these destination hosts - - name: TARGET_HOSTS - value: '' - - # provide the socket file path - # applicable only for containerd and crio runtime - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' + securityContext: + containerSecurityContext: + privileged: true + labels: - name: pod-network-latency + name: container-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -475,12 +282,12 @@ spec: apiVersion: litmuschaos.io/v1alpha1 description: message: | - Kills the kubelet service on the application node to check the resiliency. + Give a cpu spike on a node belonging to a deployment kind: ChaosExperiment metadata: - name: kubelet-service-kill + name: node-cpu-hog labels: - name: kubelet-service-kill + name: node-cpu-hog app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -519,31 +326,47 @@ spec: imagePullPolicy: Always args: - -c - - ./experiments -name kubelet-service-kill + - ./experiments -name node-cpu-hog command: - /bin/bash env: - + - name: TOTAL_CHAOS_DURATION - value: '90' # in seconds + 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: '' + + # ENTER THE COMMA SEPARATED TARGET NODES NAME + - name: TARGET_NODES + value: '' + + # PROVIDE THE LIB HERE + # ONLY LITMUS SUPPORTED - name: LIB value: 'litmus' # provide lib image - name: LIB_IMAGE - value: 'ubuntu:16.04' - - # provide the target node name - - name: TARGET_NODE + value: 'litmuschaos/go-runner:latest' + + ## percentage of total nodes to target + - name: NODES_AFFECTED_PERC value: '' + ## it defines the sequence of chaos execution for multiple target nodes + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + labels: - name: kubelet-service-kill + name: node-cpu-hog app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -552,12 +375,12 @@ spec: apiVersion: litmuschaos.io/v1alpha1 description: message: | - Injects cpu consumption on pods belonging to an app deployment + Deletes a pod belonging to a deployment/statefulset/daemonset kind: ChaosExperiment metadata: - name: pod-cpu-hog + name: k8-pod-delete labels: - name: pod-cpu-hog + name: k8-pod-delete app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -567,14 +390,14 @@ spec: permissions: - apiGroups: - "" + - "apps" - "batch" - "litmuschaos.io" resources: + - "deployments" - "jobs" - "pods" - - "pods/log" - - "events" - - "pods/exec" + - "configmaps" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -585,58 +408,50 @@ spec: - "patch" - "update" - "delete" - - "deletecollection" - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always + - apiGroups: + - "" + resources: + - "nodes" + verbs : + - "get" + - "list" + image: "litmuschaos/chaostoolkit:latest" args: - -c - - ./experiments -name pod-cpu-hog + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0 command: - /bin/bash env: - - name: TOTAL_CHAOS_DURATION - value: '60' + - 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: CHAOS_INTERVAL - value: '10' + - name: TEST_NAMESPACE + value: 'default' - ## 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: '' - - ## env var that describes the library used to execute the chaos - ## default: litmus. Supported values: litmus, pumba - - name: LIB - value: 'litmus' - - ## It is used in pumba lib only - - name: LIB_IMAGE - value: 'gaiaadm/pumba' - - - name: TARGET_PODS - value: '' - - - name: CHAOS_INJECT_COMMAND - value: 'md5sum /dev/zero' - - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: - name: pod-cpu-hog + name: k8-pod-delete app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -836,12 +651,205 @@ spec: apiVersion: litmuschaos.io/v1alpha1 description: message: | - Kills the docker service on the application node to check the resiliency. + Deletes a pod belonging to a deployment/statefulset/daemonset kind: ChaosExperiment metadata: - name: docker-service-kill + name: k8-service-kill labels: - name: docker-service-kill + name: k8-service-kill + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +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" + labels: + name: k8-service-kill + app.kubernetes.io/part-of: litmus + 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' + + +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Injects network packet loss on pods belonging to an app deployment +kind: ChaosExperiment +metadata: + name: pod-network-loss + labels: + name: pod-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +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" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name 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: 'litmus' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + - name: TARGET_PODS + value: '' + + # provide the name of container runtime + # it supports docker, containerd, crio + # default to docker + - name: CONTAINER_RUNTIME + value: 'docker' + + # provide the target ips + # chaos injection will be triggered for these destination ips + - name: TARGET_IPS + value: '' + + # provide the target hosts + # chaos injection will be triggered for these destination hosts + - name: TARGET_HOSTS + value: '' + + # provide the socket file path + # applicable only for containerd and crio runtime + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + labels: + name: pod-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +--- +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 + labels: + name: kubelet-service-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -871,16 +879,178 @@ spec: - "delete" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" - "list" - image: "litmuschaos/ansible-runner:ci" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c - - ansible-playbook ./experiments/generic/docker_service_kill/docker_service_kill_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + - ./experiments -name 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 lib image + - name: LIB_IMAGE + value: 'ubuntu:16.04' + + # provide the target node name + - name: TARGET_NODE + value: '' + + labels: + name: kubelet-service-kill + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Fillup Ephemeral Storage of a Resource +kind: ChaosExperiment +metadata: + name: disk-fill + labels: + name: disk-fill + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +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" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name 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: TARGET_PODS + value: '' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + - 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' + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + labels: + name: disk-fill + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +--- +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 + labels: + name: disk-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +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: @@ -888,20 +1058,47 @@ spec: value: 'default' - name: TOTAL_CHAOS_DURATION - value: '90' # in seconds + value: '15' - # Period to wait before injection of chaos in sec + # 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' + value: 'litmus' + + - name: ZONE_NAME + value: '' + + - name: DEVICE_NAME + value: '' + labels: - name: docker-service-kill + name: disk-loss app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest - + secrets: + - name: cloud-secret + mountPath: /tmp/ --- apiVersion: litmuschaos.io/v1alpha1 @@ -1086,32 +1283,29 @@ spec: apiVersion: litmuschaos.io/v1alpha1 description: message: | - Drain the node where application pod is scheduled + IO stress on a app pods belonging to an app deployment kind: ChaosExperiment metadata: - name: node-drain + name: pod-io-stress labels: - name: node-drain + name: pod-io-stress app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest spec: definition: - scope: Cluster + scope: Namespaced permissions: - apiGroups: - "" - "batch" - - "extensions" - "litmuschaos.io" - - "apps" resources: - "jobs" - "pods" - - "events" - "pods/log" - - "daemonsets" - - "pods/eviction" + - "pods/exec" + - "events" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -1122,40 +1316,63 @@ spec: - "patch" - "update" - "delete" - - apiGroups: - - "" - resources: - - "nodes" - verbs: - - "get" - - "list" - - "patch" + - "deletecollection" image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always args: - -c - - ./experiments -name node-drain + - ./experiments -name pod-io-stress command: - /bin/bash env: - - - name: TARGET_NODE - value: '' + - name: TOTAL_CHAOS_DURATION + value: '120' - - name: TOTAL_CHAOS_DURATION - value: '60' + ## specify the size as percentage of free space on the file system + ## default value 90 (in percentage) + - name: FILESYSTEM_UTILIZATION_PERCENTAGE + value: '10' - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + ## we can specify the size in Gigabyte (Gb) also in place of percentage of free space + ## NOTE: for selecting this option FILESYSTEM_UTILIZATION_PERCENTAGE should be empty + - name: FILESYSTEM_UTILIZATION_BYTES + value: '' + + ## Total number of workers default value is 4 + - name: NUMBER_OF_WORKERS + value: '4' + + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + # provide volume mount path + - name: VOLUME_MOUNT_PATH + value: '' + + ## specify the comma separated target pods + - name: TARGET_PODS + value: '' + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + # Provide the LIB here + # Only pumba supported + - name: LIB + value: 'pumba' + + # provide lib image + - name: LIB_IMAGE + value: 'gaiaadm/pumba' + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - labels: - name: node-drain + name: pod-io-stress app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -1164,12 +1381,12 @@ spec: apiVersion: litmuschaos.io/v1alpha1 description: message: | - Give a cpu spike on a node belonging to a deployment + Kills the docker service on the application node to check the resiliency. kind: ChaosExperiment metadata: - name: node-cpu-hog + name: docker-service-kill labels: - name: node-cpu-hog + name: docker-service-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -1199,102 +1416,16 @@ spec: - "delete" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" - "list" - image: "litmuschaos/go-runner:latest" + image: "litmuschaos/ansible-runner:ci" imagePullPolicy: Always args: - -c - - ./experiments -name 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: '' - - # ENTER THE COMMA SEPARATED TARGET NODES NAME - - name: TARGET_NODES - value: '' - - # PROVIDE THE LIB HERE - # ONLY LITMUS SUPPORTED - - name: LIB - value: 'litmus' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - ## percentage of total nodes to target - - name: NODES_AFFECTED_PERC - value: '' - - ## it defines the sequence of chaos execution for multiple target nodes - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: node-cpu-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -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 - labels: - name: disk-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -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 + - ansible-playbook ./experiments/generic/docker_service_kill/docker_service_kill_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 command: - /bin/bash env: @@ -1302,160 +1433,31 @@ spec: value: 'default' - name: TOTAL_CHAOS_DURATION - value: '15' + value: '90' # in seconds - # 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 - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - secrets: - - name: cloud-secret - mountPath: /tmp/ - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: "Kills a container belonging to an application pod \n" -kind: ChaosExperiment -metadata: - name: container-kill - labels: - name: container-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -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" - - "deletecollection" - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name container-kill - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # Period to wait before and after injection of chaos in sec + # Period to wait before injection of chaos in sec - name: RAMP_TIME value: '' - name: LIB value: 'litmus' - - - name: TARGET_PODS - value: '' - - # provide the chaos interval - - name: CHAOS_INTERVAL - value: '10' - - # provide the socket file path - # applicable only for containerd and crio runtime - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # provide the name of container runtime - # it supports docker, containerd, crio - # default to docker - - name: CONTAINER_RUNTIME - value: 'docker' - - # provide the total chaos duration - - name: TOTAL_CHAOS_DURATION - value: '20' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - securityContext: - containerSecurityContext: - privileged: true - labels: - name: container-kill + name: docker-service-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest ---- + --- apiVersion: litmuschaos.io/v1alpha1 description: message: | - Injects memory consumption on pods belonging to an app deployment + Injects network latency on pods belonging to an app deployment kind: ChaosExperiment metadata: - name: pod-memory-hog + name: pod-network-latency labels: - name: pod-memory-hog + name: pod-network-latency app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -1471,7 +1473,6 @@ spec: - "jobs" - "pods" - "pods/log" - - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -1485,98 +1486,10 @@ spec: - "delete" - "deletecollection" image: "litmuschaos/go-runner:latest" - args: - - -c - - ./experiments -name pod-memory-hog - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '60' - - - 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, pumba - - name: LIB - value: 'litmus' - - ## It is used in pumba lib only - - name: LIB_IMAGE - value: 'gaiaadm/pumba' - - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - - name: TARGET_PODS - value: '' - - labels: - name: pod-memory-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Injects network packet loss on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-network-loss - labels: - name: pod-network-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -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" - - "deletecollection" - image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c - - ./experiments -name pod-network-loss + - ./experiments -name pod-network-latency command: - /bin/bash env: @@ -1584,23 +1497,23 @@ spec: - name: TARGET_CONTAINER value: '' + - name: NETWORK_INTERFACE + value: 'eth0' + # 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: NETWORK_LATENCY + value: '60000' #in ms - name: TOTAL_CHAOS_DURATION value: '60' # in seconds - # ime period to wait before and after injection of chaos in sec + # Time period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' @@ -1639,9 +1552,9 @@ spec: ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' - + labels: - name: pod-network-loss + name: pod-network-latency app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest @@ -1739,91 +1652,6 @@ spec: app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Deletes a pod belonging to a deployment/statefulset/daemonset -kind: ChaosExperiment -metadata: - name: k8-pod-delete - labels: - name: k8-pod-delete - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -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 - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -1907,6 +1735,178 @@ spec: app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Injects cpu consumption on pods belonging to an app deployment +kind: ChaosExperiment +metadata: + name: pod-cpu-hog + labels: + name: pod-cpu-hog + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "pods/exec" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-cpu-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '60' + + - 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: '' + + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, pumba + - name: LIB + value: 'litmus' + + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'gaiaadm/pumba' + + - name: TARGET_PODS + value: '' + + - name: CHAOS_INJECT_COMMAND + value: 'md5sum /dev/zero' + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + labels: + name: pod-cpu-hog + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +--- +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Drain the node where application pod is scheduled +kind: ChaosExperiment +metadata: + name: node-drain + labels: + name: node-drain + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "batch" + - "extensions" + - "litmuschaos.io" + - "apps" + 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 -name node-drain + command: + - /bin/bash + env: + + - name: TARGET_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: '' + + labels: + name: node-drain + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + --- apiVersion: litmuschaos.io/v1alpha1 description: diff --git a/charts/kafka/experiments.yaml b/charts/kafka/experiments.yaml index f3e6732..0356db1 100644 --- a/charts/kafka/experiments.yaml +++ b/charts/kafka/experiments.yaml @@ -1,124 +1,4 @@ apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Detaching a persistent disk from a node/instance for kafka. -kind: ChaosExperiment -metadata: - name: kafka-broker-disk-failure - labels: - name: kafka-broker-disk-failure - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - - apiGroups: - - "" - - "apps" - - "batch" - - "litmuschaos.io" - resources: - - "statefulsets" - - "secrets" - - "jobs" - - "pods/log" - - "events" - - "pods" - - "pods/exec" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "delete" - - "get" - - "list" - - "patch" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/kafka/kafka-broker-disk-failure/kafka-broker-disk-failure-ansible-logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: KAFKA_KIND - value: 'statefulset' - - - name: KAFKA_LIVENESS_STREAM - value: 'enabled' - - - name: KAFKA_LIVENESS_IMAGE - value: 'litmuschaos/kafka-client:ci' - - - name: KAFKA_CONSUMER_TIMEOUT - value: '30000' - - - name: TOTAL_CHAOS_DURATION - value: '15' - - - name: PROJECT_ID - value: '' - - - name: DISK_NAME - value: '' - - - name: ZONE_NAME - value: '' - - # GKE and AWS supported - - name: CLOUD_PLATFORM - value: 'GKE' - - - name: KAFKA_NAMESPACE - value: '' - - - name: KAFKA_LABEL - value: '' - - - name: KAFKA_BROKER - value: '' - - - name: KAFKA_INSTANCE_NAME - value: '' - - - name: KAFKA_REPLICATION_FACTOR - value: '' - - - name: KAFKA_SERVICE - value: '' - - - name: KAFKA_PORT - value: '' - - - name: ZOOKEEPER_NAMESPACE - value: '' - - - name: ZOOKEEPER_LABEL - value: '' - - - name: ZOOKEEPER_SERVICE - value: '' - - - name: ZOOKEEPER_PORT - value: '' - labels: - name: kafka-broker-disk-failure - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - secrets: - - name: kafka-broker-disk-failure - mountPath: /tmp/ - - ---- -apiVersion: litmuschaos.io/v1alpha1 description: message: | Deleting a kafka broker pod @@ -249,3 +129,123 @@ spec: app.kubernetes.io/version: latest --- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Detaching a persistent disk from a node/instance for kafka. +kind: ChaosExperiment +metadata: + name: kafka-broker-disk-failure + labels: + name: kafka-broker-disk-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "statefulsets" + - "secrets" + - "jobs" + - "pods/log" + - "events" + - "pods" + - "pods/exec" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "delete" + - "get" + - "list" + - "patch" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/kafka/kafka-broker-disk-failure/kafka-broker-disk-failure-ansible-logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: KAFKA_KIND + value: 'statefulset' + + - name: KAFKA_LIVENESS_STREAM + value: 'enabled' + + - name: KAFKA_LIVENESS_IMAGE + value: 'litmuschaos/kafka-client:ci' + + - name: KAFKA_CONSUMER_TIMEOUT + value: '30000' + + - name: TOTAL_CHAOS_DURATION + value: '15' + + - name: PROJECT_ID + value: '' + + - name: DISK_NAME + value: '' + + - name: ZONE_NAME + value: '' + + # GKE and AWS supported + - name: CLOUD_PLATFORM + value: 'GKE' + + - name: KAFKA_NAMESPACE + value: '' + + - name: KAFKA_LABEL + value: '' + + - name: KAFKA_BROKER + value: '' + + - name: KAFKA_INSTANCE_NAME + value: '' + + - name: KAFKA_REPLICATION_FACTOR + value: '' + + - name: KAFKA_SERVICE + value: '' + + - name: KAFKA_PORT + value: '' + + - name: ZOOKEEPER_NAMESPACE + value: '' + + - name: ZOOKEEPER_LABEL + value: '' + + - name: ZOOKEEPER_SERVICE + value: '' + + - name: ZOOKEEPER_PORT + value: '' + labels: + name: kafka-broker-disk-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + secrets: + - name: kafka-broker-disk-failure + mountPath: /tmp/ + + +--- diff --git a/charts/kube-aws/experiments.yaml b/charts/kube-aws/experiments.yaml index 4f1d11d..dfeaeed 100644 --- a/charts/kube-aws/experiments.yaml +++ b/charts/kube-aws/experiments.yaml @@ -1,4 +1,75 @@ apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Detaching an ebs volume from ec2 instance. +kind: ChaosExperiment +metadata: + name: ec2-terminate + labels: + name: ec2-terminate + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +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/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name ec2-terminate + 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: '' + + - name: EC2_INSTANCE_ID + value: '' + + - name: REGION + value: '' + + # provide the LIB + # only litmus supported + - name: LIB + value: 'litmus' + + labels: + name: ec2-terminate + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + secrets: + - name: cloud-secret + mountPath: /tmp/ +--- +apiVersion: litmuschaos.io/v1alpha1 description: message: | Deletes an aws instance belonging to a deployment/statefulset/daemonset @@ -190,74 +261,3 @@ spec: mountPath: /tmp/ --- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Detaching an ebs volume from ec2 instance. -kind: ChaosExperiment -metadata: - name: ec2-terminate - labels: - name: ec2-terminate - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -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/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name ec2-terminate - 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: '' - - - name: EC2_INSTANCE_ID - value: '' - - - name: REGION - value: '' - - # provide the LIB - # only litmus supported - - name: LIB - value: 'litmus' - - labels: - name: ec2-terminate - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - secrets: - - name: cloud-secret - mountPath: /tmp/ ---- diff --git a/charts/openebs/experiments.yaml b/charts/openebs/experiments.yaml index 5533ac5..7d3b2cd 100644 --- a/charts/openebs/experiments.yaml +++ b/charts/openebs/experiments.yaml @@ -2,156 +2,55 @@ apiVersion: litmuschaos.io/v1alpha1 description: message: | - Kill the pool container and check if gets scheduled again + Kill all openebs control plane pod and check if gets scheduled again kind: ChaosExperiment metadata: labels: litmuschaos.io/name: openebs - name: openebs-pool-container-failure + name: openebs-control-plane-chaos app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest - name: openebs-pool-container-failure + name: openebs-control-plane-chaos spec: definition: - scope: Cluster + scope: Namespaced permissions: - apiGroups: - "" - - "extensions" - - "apps" - - "batch" - "litmuschaos.io" - - "openebs.io" - - "storage.k8s.io" + - "batch" + - "apps" resources: - - "replicasets" - - "events" - - "jobs" - "pods" - "pods/log" - - "pods/exec" + - "deployments" + - "events" + - "jobs" - "configmaps" - - "secrets" - - "persistentvolumeclaims" - - "cstorvolumereplicas" - "chaosengines" - "chaosexperiments" - "chaosresults" verbs: - "create" - - "get" - - "delete" - "list" + - "get" - "patch" - "update" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-pool-container-failure/openebs_pool_container_failure_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: OPENEBS_NS - value: 'openebs' - - - name: APP_PVC - value: '' - - - name: LIVENESS_APP_LABEL - value: '' - - # only pumba supported - # For pumba image use : gaiaadm/pumba:0.6.5 - - name: LIB_IMAGE - value: 'gaiaadm/pumba:0.6.5' - - - name: LIVENESS_APP_NAMESPACE - value: '' - - # provide the chaos interval - - name: CHAOS_INTERVAL - value: '10' - - # provide the total chaos duration - - name: TOTAL_CHAOS_DURATION - value: '20' - - - name: DATA_PERSISTENCE - value: '' - - - name: CHAOS_ITERATIONS - value: '2' - - labels: - name: openebs-pool-container-failure - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - #configmaps: - #- name: openebs-pool-container-failure - # mountPath: /mnt - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Network delay to pool pod belonging to a OpenEBS PVC - This experiment is using pumba lib for network chaos -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-pool-network-delay - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-pool-network-delay -spec: - definition: - scope: Cluster - permissions: + - "delete" - apiGroups: - "" - - "apps" - - "litmuschaos.io" - - "batch" - - "extensions" - - "storage.k8s.io" - - "openebs.io" resources: - - "pods" - - "pods/exec" - - "jobs" - - "pods/log" - - "events" - - "configmaps" - - "services" - - "persistentvolumeclaims" - - "storageclasses" - - "persistentvolumes" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - - "cstorpools" - - "cstorvolumereplicas" - - "replicasets" + - "nodes" verbs: - - "create" - "get" - "list" - - "patch" - - "update" - - "delete" + image: "litmuschaos/ansible-runner:latest" imagePullPolicy: Always args: - -c - - ansible-playbook ./experiments/openebs/openebs-pool-network-delay/openebs_pool_network_delay_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + - ansible-playbook ./experiments/openebs/openebs-control-plane-chaos/openebs_control_plane_chaos_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 command: - /bin/bash env: @@ -161,226 +60,24 @@ spec: - name: OPENEBS_NAMESPACE value: 'openebs' - # only pumba supported - # For pumba image use : gaiaadm/pumba:0.6.5 - - name: LIB_IMAGE - value: 'gaiaadm/pumba:0.6.5' - - # in milliseconds - - name: NETWORK_DELAY - value: '60000' - - - name: TC_IMAGE - value: 'gaiadocker/iproute2' - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - - name: LIVENESS_APP_LABEL + ## Period to wait before injection of chaos + - name: RAMP_TIME + value: '' + + - name: FORCE value: '' - - name: LIVENESS_APP_NAMESPACE - value: '' - - - name: DATA_PERSISTENCE + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal + - name: LIB value: '' labels: - name: openebs-pool-network-delay - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Network loss to pool pod belonging to a OpenEBS PVC -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-pool-network-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-pool-network-loss -spec: - definition: - scope: Cluster - permissions: - - apiGroups: - - "" - - "apps" - - "litmuschaos.io" - - "batch" - - "extensions" - - "storage.k8s.io" - - "openebs.io" - resources: - - "pods" - - "pods/log" - - "pods/exec" - - "events" - - "jobs" - - "configmaps" - - "services" - - "persistentvolumeclaims" - - "storageclasses" - - "persistentvolumeclaims" - - "persistentvolumes" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - - "cstorpools" - - "cstorvolumereplicas" - - "replicasets" - verbs: - - "create" - - "get" - - "delete" - - "list" - - "patch" - - "update" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-pool-network-loss/openebs_pool_network_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: OPENEBS_NAMESPACE - value: 'openebs' - - # only pumba supported - # For pumba image use : gaiaadm/pumba:0.6.5 - - name: LIB_IMAGE - value: 'gaiaadm/pumba:0.6.5' - - - name: TC_IMAGE - value: 'gaiadocker/iproute2' - - - name: NETWORK_PACKET_LOSS_PERCENTAGE - value: '100' # in percentage - - - name: TOTAL_CHAOS_DURATION - value: '120' # in seconds - - - name: LIVENESS_APP_LABEL - value: '' - - - name: LIVENESS_APP_NAMESPACE - value: '' - - - name: DATA_PERSISTENCE - value: '' - - labels: - name: openebs-pool-network-loss + name: openebs-control-plane-chaos app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Network delay to target pod belonging to a deployment/statefulset/daemonset -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-target-network-delay - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-target-network-delay -spec: - definition: - scope: Cluster - permissions: - - apiGroups: - - "" - - "extensions" - - "apps" - - "batch" - - "litmuschaos.io" - - "storage.k8s.io" - resources: - - "jobs" - - "pods" - - "services" - - "events" - - "pods/exec" - - "pods/log" - - "configmaps" - - "secrets" - - "persistentvolumeclaims" - - "storageclasses" - - "persistentvolumes" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "get" - - "delete" - - "list" - - "patch" - - "update" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-target-network-delay/openebs_target_network_delay_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: OPENEBS_NAMESPACE - value: 'openebs' - - - name: APP_PVC - value: '' - - - name: TC_IMAGE - value: 'gaiadocker/iproute2' - - # only pumba supported - # For pumba image use : gaiaadm/pumba:0.6.5 - - name: LIB_IMAGE - value: 'gaiaadm/pumba:0.6.5' - - - name: NETWORK_DELAY - value: '60000' # in milliseconds - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - - name: LIVENESS_APP_LABEL - value: '' - - - name: LIVENESS_APP_NAMESPACE - value: '' - - - name: DATA_PERSISTENCE - value: '' - - labels: - name: openebs-target-network-delay - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - #configmaps: - #- name: openebs-target-network-delay - # mountPath: /mnt - --- --- apiVersion: litmuschaos.io/v1alpha1 @@ -488,102 +185,6 @@ spec: #- name: openebs-target-pod-failure # mountPath: /mnt ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Network loss to target pod belonging to a OpenEBS PVC -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-target-network-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-target-network-loss -spec: - definition: - scope: Cluster - permissions: - - apiGroups: - - "" - - "extensions" - - "apps" - - "batch" - - "litmuschaos.io" - - "storage.k8s.io" - resources: - - "jobs" - - "pods" - - "events" - - "services" - - "pods/log" - - "pods/exec" - - "configmaps" - - "secrets" - - "persistentvolumeclaims" - - "storageclasses" - - "persistentvolumes" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "get" - - "delete" - - "list" - - "patch" - - "update" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-target-network-loss/openebs_target_network_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: OPENEBS_NAMESPACE - value: 'openebs' - - - name: APP_PVC - value: '' - - - name: TC_IMAGE - value: 'gaiadocker/iproute2' - - # only pumba supported - # For pumba image use : gaiaadm/pumba:0.6.5 - - name: LIB_IMAGE - value: 'gaiaadm/pumba:0.6.5' - - - name: NETWORK_PACKET_LOSS_PERCENTAGE - value: '100' # in percentage - - - name: TOTAL_CHAOS_DURATION - value: '120' # in seconds - - - name: LIVENESS_APP_LABEL - value: '' - - - name: LIVENESS_APP_NAMESPACE - value: '' - - - name: DATA_PERSISTENCE - value: '' - - labels: - name: openebs-target-network-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - #configmaps: - #- name: openebs-target-network-loss - # mountPath: /mnt - --- --- apiVersion: litmuschaos.io/v1alpha1 @@ -799,186 +400,6 @@ spec: - name: openebs-nfs-provisioner-kill mountPath: /mnt/ ---- ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Kill the pool pod and check if gets scheduled again -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-pool-pod-failure - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-pool-pod-failure -spec: - definition: - scope: Cluster - permissions: - - apiGroups: - - "" - - "extensions" - - "apps" - - "batch" - - "litmuschaos.io" - - "openebs.io" - - "storage.k8s.io" - resources: - - "deployments" - - "replicasets" - - "jobs" - - "pods/log" - - "events" - - "pods" - - "configmaps" - - "secrets" - - "storageclasses" - - "persistentvolumeclaims" - - "cstorvolumereplicas" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "get" - - "delete" - - "list" - - "patch" - - "update" - - apiGroups: - - "" - resources: - - "nodes" - verbs: - - "get" - - "list" - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-pool-pod-failure/openebs_pool_pod_failure_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: default - - - name: OPENEBS_NS - value: 'openebs' - - - name: APP_PVC - value: '' - - - name: LIVENESS_APP_LABEL - value: '' - - - name: LIVENESS_APP_NAMESPACE - value: '' - - - name: CHAOS_ITERATIONS - value: '2' - - # provide the kill count - - name: KILL_COUNT - value: '' - - - name: DATA_PERSISTENCE - value: '' - - labels: - name: openebs-pool-pod-failure - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - #configmaps: - #- name: openebs-pool-pod-failure - # mountPath: /mnt - - ---- ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Kill all openebs control plane pod and check if gets scheduled again -kind: ChaosExperiment -metadata: - labels: - litmuschaos.io/name: openebs - name: openebs-control-plane-chaos - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest - name: openebs-control-plane-chaos -spec: - definition: - scope: Namespaced - permissions: - - apiGroups: - - "" - - "litmuschaos.io" - - "batch" - - "apps" - resources: - - "pods" - - "pods/log" - - "deployments" - - "events" - - "jobs" - - "configmaps" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "list" - - "get" - - "patch" - - "update" - - "delete" - - apiGroups: - - "" - resources: - - "nodes" - verbs: - - "get" - - "list" - - image: "litmuschaos/ansible-runner:latest" - imagePullPolicy: Always - args: - - -c - - ansible-playbook ./experiments/openebs/openebs-control-plane-chaos/openebs_control_plane_chaos_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 - command: - - /bin/bash - env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - - - name: OPENEBS_NAMESPACE - value: 'openebs' - - ## Period to wait before injection of chaos - - name: RAMP_TIME - value: '' - - - name: FORCE - value: '' - - ## env var that describes the library used to execute the chaos - ## default: litmus. Supported values: litmus, powerfulseal - - name: LIB - value: '' - - labels: - name: openebs-control-plane-chaos - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - --- --- apiVersion: litmuschaos.io/v1alpha1 @@ -1095,3 +516,582 @@ spec: # mountPath: /mnt --- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Network loss to target pod belonging to a OpenEBS PVC +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-target-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-target-network-loss +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "extensions" + - "apps" + - "batch" + - "litmuschaos.io" + - "storage.k8s.io" + resources: + - "jobs" + - "pods" + - "events" + - "services" + - "pods/log" + - "pods/exec" + - "configmaps" + - "secrets" + - "persistentvolumeclaims" + - "storageclasses" + - "persistentvolumes" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "get" + - "delete" + - "list" + - "patch" + - "update" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-target-network-loss/openebs_target_network_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: OPENEBS_NAMESPACE + value: 'openebs' + + - name: APP_PVC + value: '' + + - name: TC_IMAGE + value: 'gaiadocker/iproute2' + + # only pumba supported + # For pumba image use : gaiaadm/pumba:0.6.5 + - name: LIB_IMAGE + value: 'gaiaadm/pumba:0.6.5' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' # in percentage + + - name: TOTAL_CHAOS_DURATION + value: '120' # in seconds + + - name: LIVENESS_APP_LABEL + value: '' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + - name: DATA_PERSISTENCE + value: '' + + labels: + name: openebs-target-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + #configmaps: + #- name: openebs-target-network-loss + # mountPath: /mnt + +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Network delay to pool pod belonging to a OpenEBS PVC + This experiment is using pumba lib for network chaos +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-pool-network-delay + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-pool-network-delay +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "apps" + - "litmuschaos.io" + - "batch" + - "extensions" + - "storage.k8s.io" + - "openebs.io" + resources: + - "pods" + - "pods/exec" + - "jobs" + - "pods/log" + - "events" + - "configmaps" + - "services" + - "persistentvolumeclaims" + - "storageclasses" + - "persistentvolumes" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + - "cstorpools" + - "cstorvolumereplicas" + - "replicasets" + verbs: + - "create" + - "get" + - "list" + - "patch" + - "update" + - "delete" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-pool-network-delay/openebs_pool_network_delay_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: OPENEBS_NAMESPACE + value: 'openebs' + + # only pumba supported + # For pumba image use : gaiaadm/pumba:0.6.5 + - name: LIB_IMAGE + value: 'gaiaadm/pumba:0.6.5' + + # in milliseconds + - name: NETWORK_DELAY + value: '60000' + + - name: TC_IMAGE + value: 'gaiadocker/iproute2' + + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + + - name: LIVENESS_APP_LABEL + value: '' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + - name: DATA_PERSISTENCE + value: '' + + labels: + name: openebs-pool-network-delay + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Network delay to target pod belonging to a deployment/statefulset/daemonset +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-target-network-delay + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-target-network-delay +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "extensions" + - "apps" + - "batch" + - "litmuschaos.io" + - "storage.k8s.io" + resources: + - "jobs" + - "pods" + - "services" + - "events" + - "pods/exec" + - "pods/log" + - "configmaps" + - "secrets" + - "persistentvolumeclaims" + - "storageclasses" + - "persistentvolumes" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "get" + - "delete" + - "list" + - "patch" + - "update" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-target-network-delay/openebs_target_network_delay_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: OPENEBS_NAMESPACE + value: 'openebs' + + - name: APP_PVC + value: '' + + - name: TC_IMAGE + value: 'gaiadocker/iproute2' + + # only pumba supported + # For pumba image use : gaiaadm/pumba:0.6.5 + - name: LIB_IMAGE + value: 'gaiaadm/pumba:0.6.5' + + - name: NETWORK_DELAY + value: '60000' # in milliseconds + + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + + - name: LIVENESS_APP_LABEL + value: '' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + - name: DATA_PERSISTENCE + value: '' + + labels: + name: openebs-target-network-delay + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + #configmaps: + #- name: openebs-target-network-delay + # mountPath: /mnt + +--- +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Kill the pool container and check if gets scheduled again +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-pool-container-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-pool-container-failure +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "extensions" + - "apps" + - "batch" + - "litmuschaos.io" + - "openebs.io" + - "storage.k8s.io" + resources: + - "replicasets" + - "events" + - "jobs" + - "pods" + - "pods/log" + - "pods/exec" + - "configmaps" + - "secrets" + - "persistentvolumeclaims" + - "cstorvolumereplicas" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "get" + - "delete" + - "list" + - "patch" + - "update" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-pool-container-failure/openebs_pool_container_failure_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: OPENEBS_NS + value: 'openebs' + + - name: APP_PVC + value: '' + + - name: LIVENESS_APP_LABEL + value: '' + + # only pumba supported + # For pumba image use : gaiaadm/pumba:0.6.5 + - name: LIB_IMAGE + value: 'gaiaadm/pumba:0.6.5' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + # provide the chaos interval + - name: CHAOS_INTERVAL + value: '10' + + # provide the total chaos duration + - name: TOTAL_CHAOS_DURATION + value: '20' + + - name: DATA_PERSISTENCE + value: '' + + - name: CHAOS_ITERATIONS + value: '2' + + labels: + name: openebs-pool-container-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + #configmaps: + #- name: openebs-pool-container-failure + # mountPath: /mnt + +--- +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Kill the pool pod and check if gets scheduled again +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-pool-pod-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-pool-pod-failure +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "extensions" + - "apps" + - "batch" + - "litmuschaos.io" + - "openebs.io" + - "storage.k8s.io" + resources: + - "deployments" + - "replicasets" + - "jobs" + - "pods/log" + - "events" + - "pods" + - "configmaps" + - "secrets" + - "storageclasses" + - "persistentvolumeclaims" + - "cstorvolumereplicas" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "get" + - "delete" + - "list" + - "patch" + - "update" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-pool-pod-failure/openebs_pool_pod_failure_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: default + + - name: OPENEBS_NS + value: 'openebs' + + - name: APP_PVC + value: '' + + - name: LIVENESS_APP_LABEL + value: '' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + - name: CHAOS_ITERATIONS + value: '2' + + # provide the kill count + - name: KILL_COUNT + value: '' + + - name: DATA_PERSISTENCE + value: '' + + labels: + name: openebs-pool-pod-failure + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + #configmaps: + #- name: openebs-pool-pod-failure + # mountPath: /mnt + + +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Network loss to pool pod belonging to a OpenEBS PVC +kind: ChaosExperiment +metadata: + labels: + litmuschaos.io/name: openebs + name: openebs-pool-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest + name: openebs-pool-network-loss +spec: + definition: + scope: Cluster + permissions: + - apiGroups: + - "" + - "apps" + - "litmuschaos.io" + - "batch" + - "extensions" + - "storage.k8s.io" + - "openebs.io" + resources: + - "pods" + - "pods/log" + - "pods/exec" + - "events" + - "jobs" + - "configmaps" + - "services" + - "persistentvolumeclaims" + - "storageclasses" + - "persistentvolumeclaims" + - "persistentvolumes" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + - "cstorpools" + - "cstorvolumereplicas" + - "replicasets" + verbs: + - "create" + - "get" + - "delete" + - "list" + - "patch" + - "update" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/openebs/openebs-pool-network-loss/openebs_pool_network_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + - name: OPENEBS_NAMESPACE + value: 'openebs' + + # only pumba supported + # For pumba image use : gaiaadm/pumba:0.6.5 + - name: LIB_IMAGE + value: 'gaiaadm/pumba:0.6.5' + + - name: TC_IMAGE + value: 'gaiadocker/iproute2' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' # in percentage + + - name: TOTAL_CHAOS_DURATION + value: '120' # in seconds + + - name: LIVENESS_APP_LABEL + value: '' + + - name: LIVENESS_APP_NAMESPACE + value: '' + + - name: DATA_PERSISTENCE + value: '' + + labels: + name: openebs-pool-network-loss + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + +---