From a7f7d0fa191f37325b358791b2342cdc84d1dc25 Mon Sep 17 00:00:00 2001 From: neelanjan00 Date: Wed, 21 Jun 2023 18:11:23 +0530 Subject: [PATCH] removes charts and workflows dir Signed-off-by: neelanjan00 --- charts/gcp/experiments.yaml | 366 --- charts/generic/experiments.yaml | 3398 --------------------- charts/kube-aws/experiments.yaml | 442 --- charts/spring-boot/experiments.yaml | 605 ---- workflows/podtato-head/workflow.yaml | 114 - workflows/podtato-head/workflow_cron.yaml | 118 - 6 files changed, 5043 deletions(-) delete mode 100644 charts/gcp/experiments.yaml delete mode 100644 charts/generic/experiments.yaml delete mode 100644 charts/kube-aws/experiments.yaml delete mode 100644 charts/spring-boot/experiments.yaml delete mode 100644 workflows/podtato-head/workflow.yaml delete mode 100644 workflows/podtato-head/workflow_cron.yaml diff --git a/charts/gcp/experiments.yaml b/charts/gcp/experiments.yaml deleted file mode 100644 index 3cdda68..0000000 --- a/charts/gcp/experiments.yaml +++ /dev/null @@ -1,366 +0,0 @@ -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Stops GCP VM instances and GKE nodes filtered by a label for a specified duration and later restarts them -kind: ChaosExperiment -metadata: - name: gcp-vm-instance-stop-by-label - labels: - name: gcp-vm-instance-stop-by-label - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name gcp-vm-instance-stop-by-label - command: - - /bin/bash - env: - - # set chaos duration (in sec) as desired - - name: TOTAL_CHAOS_DURATION - value: '30' - - # set chaos interval (in sec) as desired - - name: CHAOS_INTERVAL - value: '30' - - - name: SEQUENCE - value: 'parallel' - - # GCP project ID to which the vm instances belong - - name: GCP_PROJECT_ID - value: '' - - # Label of the target vm instance(s) - - name: INSTANCE_LABEL - value: '' - - # Zone in which the target vm instance(s) filtered by the label exist - # all the instances should lie in a single zone - - name: ZONES - value: '' - - # enable it if the target instance is a part of a managed instance group - - name: MANAGED_INSTANCE_GROUP - value: 'disable' - - # set the percentage value of the instances with the given label - # which should be targeted as part of the chaos injection - - name: INSTANCE_AFFECTED_PERC - value: '' - - labels: - name: gcp-vm-instance-stop-by-label - 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: | - Stops GCP VM instances and GKE nodes for a specified duration and later restarts them -kind: ChaosExperiment -metadata: - name: gcp-vm-instance-stop - labels: - name: gcp-vm-instance-stop - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name gcp-vm-instance-stop - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - # parallel or serial; determines how the VM instances are terminated, all at once or one at a time - - name: SEQUENCE - value: 'parallel' - - # period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # enable or disable; shall be set to enable if the target instances are a part of a managed instance group - - name: MANAGED_INSTANCE_GROUP - value: 'disable' - - # Instance name of the target vm instance(s) - # Multiple instance names can be provided as comma separated values ex: instance1,instance2 - - name: VM_INSTANCE_NAMES - value: '' - - # GCP project ID to which the vm instances belong - - name: GCP_PROJECT_ID - value: '' - - # Instance zone(s) of the target vm instance(s) - # If more than one instance is targetted, provide zone for each in the order of their - # respective instance name in VM_INSTANCE_NAME as comma separated values ex: zone1,zone2 - - name: ZONES - value: '' - - labels: - name: gcp-vm-instance-stop - 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: | - Causes loss of a non-boot storage persistent disk from a GCP VM instance filtered by a label for a specified duration before attaching them back -kind: ChaosExperiment -metadata: - name: gcp-vm-disk-loss-by-label - labels: - name: gcp-vm-disk-loss-by-label - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name gcp-vm-disk-loss-by-label - command: - - /bin/bash - env: - - # set chaos duration (in sec) as desired - - name: TOTAL_CHAOS_DURATION - value: '30' - - # set chaos interval (in sec) as desired - - name: CHAOS_INTERVAL - value: '30' - - # set the GCP project id - - name: GCP_PROJECT_ID - value: '' - - # set the zone in which all the disks are created - # all the disks must exist in the same zone - - name: ZONES - value: '' - - # set the label of the target disk volumes - - name: DISK_VOLUME_LABEL - value: '' - - # set the percentage value of the disks with the given label - # which should be targeted as part of the chaos injection - - name: DISK_AFFECTED_PERC - value: '' - - labels: - name: gcp-vm-disk-loss-by-label - 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: | - Causes loss of a non-boot storage persistent disk from a GCP VM instance for a specified duration before attaching them back -kind: ChaosExperiment -metadata: - name: gcp-vm-disk-loss - labels: - name: gcp-vm-disk-loss - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name gcp-vm-disk-loss - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # parallel or serial; determines how chaos is injected - - name: SEQUENCE - value: 'parallel' - - # set the GCP project id - - name: GCP_PROJECT_ID - value: '' - - # set the disk volume name(s) as comma seperated values - # eg. volume1,volume2,... - - name: DISK_VOLUME_NAMES - value: '' - - # set the disk zone(s) as comma seperated values in the corresponding - # order of DISK_VOLUME_NAME - # eg. zone1,zone2,... - - name: ZONES - value: '' - - labels: - name: gcp-vm-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/ - ---- diff --git a/charts/generic/experiments.yaml b/charts/generic/experiments.yaml deleted file mode 100644 index 842cfa3..0000000 --- a/charts/generic/experiments.yaml +++ /dev/null @@ -1,3398 +0,0 @@ -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Give IO disk stress on a node belonging to a deployment -kind: ChaosExperiment -metadata: - name: node-io-stress - labels: - name: node-io-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name node-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: '' - - ## Number of core of CPU - - name: CPU - value: '1' - - ## Total number of workers default value is 4 - - name: NUMBER_OF_WORKERS - value: '4' - - ## Total number of vm workers - - name: VM_WORKERS - value: '1' - - ## enter the comma separated target nodes name - - name: TARGET_NODES - value: '' - - - name: NODE_LABEL - value: '' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # 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-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: | - 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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name 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: '2000' #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: JITTER - value: '0' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' - - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-network-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - poweroff node -kind: ChaosExperiment -metadata: - name: node-poweroff - labels: - name: node-poweroff - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps","secrets"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name node-restart - command: - - /bin/bash - env: - - name: SSH_USER - value: 'root' - - - name: TOTAL_CHAOS_DURATION - value: '60' - - - name: REBOOT_COMMAND - value: '-o ServerAliveInterval=1 -o ServerAliveCountMax=1 "sudo systemctl poweroff --force --force" ; true' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" - - # ENTER THE TARGET NODE NAME - - name: TARGET_NODE - value: '' - - - name: NODE_LABEL - value: '' - - # ENTER THE TARGET NODE IP - - name: TARGET_NODE_IP - value: '' - - labels: - name: node-poweroff - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - secrets: - - name: id-rsa - mountPath: /mnt/ - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - it injects chaos into the pod which stops outgoing http requests by resetting the TCP connection and then reverts back to the original state after a specified duration -kind: ChaosExperiment -metadata: - name: pod-http-reset-peer - labels: - name: pod-http-reset-peer - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-http-reset-peer - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # reset timeout specifies after how much duration to reset the connection - - name: RESET_TIMEOUT - value: '0' #in ms - - # port of the target service - - name: TARGET_SERVICE_PORT - value: "80" - - # port on which the proxy will listen - - name: PROXY_PORT - value: "20000" - - # network interface on which the proxy will listen - - name: NETWORK_INTERFACE - value: "eth0" - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Time 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: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-http-reset-peer - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It injects chaos inside the pod which modifies the status code of the response from the provided application server to desired status code provided by the user and reverts after a specified duration -kind: ChaosExperiment -metadata: - name: pod-http-status-code - labels: - name: pod-http-status-code - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-http-status-code - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # modified status code for the http response - # if no value is provided, a random status code from the supported code list will selected - # if an invalid status code is provided, the experiment will fail - # supported status code list: [200, 201, 202, 204, 300, 301, 302, 304, 307, 400, 401, 403, 404, 500, 501, 502, 503, 504] - - name: STATUS_CODE - value: '' - - # whether to modify the body as per the status code provided - - name: "MODIFY_RESPONSE_BODY" - value: "true" - - # port of the target service - - name: TARGET_SERVICE_PORT - value: "80" - - # port on which the proxy will listen - - name: PROXY_PORT - value: "20000" - - # network interface on which the proxy will listen - - name: NETWORK_INTERFACE - value: "eth0" - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Time 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: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-http-status-code - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Give a cpu spike on a node belonging to a deployment -kind: ChaosExperiment -metadata: - name: node-cpu-hog - labels: - name: node-cpu-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - 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: '' - - ## LOAD CPU WITH GIVEN PERCENT LOADING FOR THE CPU STRESS WORKERS. - ## 0 IS EFFECTIVELY A SLEEP (NO LOAD) AND 100 IS FULL LOADING - - name: CPU_LOAD - value: '100' - - # ENTER THE COMMA SEPARATED TARGET NODES NAME - - name: TARGET_NODES - value: '' - - - name: NODE_LABEL - value: '' - - # 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: | - Injects cpu consumption on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-cpu-hog-exec - labels: - name: pod-cpu-hog-exec - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-cpu-hog-exec - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '60' - - ## 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: '' - - # The command to kill the chaos process - - name: CHAOS_KILL_COMMAND - value: "kill $(find /proc -name exe -lname '*/md5sum' 2>&1 | grep -v 'Permission denied' | awk -F/ '{print $(NF-1)}')" - - - name: TARGET_PODS - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-cpu-hog-exec - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It injects the chaos inside the pod which modifies the header of the request/response from the provided application server to the headers provided by the user and reverts after a specified duration -kind: ChaosExperiment -metadata: - name: pod-http-modify-header - labels: - name: pod-http-modify-header - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-http-modify-header - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # map of headers to modify/add; Eg: {"X-Litmus-Test-Header": "X-Litmus-Test-Value"} - # to remove a header, just set the value to ""; Eg: {"X-Litmus-Test-Header": ""} - - name: HEADERS_MAP - value: '{}' - - # whether to modify response headers or request headers. Accepted values: request, response - - name: HEADER_MODE - value: 'response' - - # port of the target service - - name: TARGET_SERVICE_PORT - value: "80" - - # port on which the proxy will listen - - name: PROXY_PORT - value: "20000" - - # network interface on which the proxy will listen - - name: NETWORK_INTERFACE - value: "eth0" - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Time 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: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-http-modify-header - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Injects http request latency on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-http-latency - labels: - name: pod-http-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-http-latency - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # set latency value for the chaos - - name: LATENCY - value: '2000' #in ms - - # port of the target service - - name: TARGET_SERVICE_PORT - value: "80" - - # port on which the proxy will listen - - name: PROXY_PORT - value: "20000" - - # network interface on which the proxy will listen - - name: NETWORK_INTERFACE - value: "eth0" - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Time 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: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-http-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Taint the node where application pod is scheduled -kind: ChaosExperiment -metadata: - name: node-taint - labels: - name: node-taint - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec","pods/eviction"] - verbs: ["get","list","create"] - # ignore daemonsets while draining the node - - apiGroups: ["apps"] - resources: ["daemonsets"] - verbs: ["list","get","delete"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list","patch","update"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name node-taint - command: - - /bin/bash - env: - - - name: TARGET_NODE - value: '' - - - name: NODE_LABEL - value: '' - - - name: TOTAL_CHAOS_DURATION - value: '60' - - # 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 - 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 duplication on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-network-duplication - labels: - name: pod-network-duplication - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name 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: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' - - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' - - # provide the socket file path - - 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-duplication - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Pod DNS Error injects dns failure/error in target pod containers -kind: ChaosExperiment -metadata: - name: pod-dns-error - labels: - name: pod-dns-error - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - args: - - -c - - ./experiments -name pod-dns-error - command: - - /bin/bash - env: - - name: TARGET_CONTAINER - value: "" - - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" - - - name: TOTAL_CHAOS_DURATION - value: "60" # in seconds - - # Time 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: "" - - - name: TARGET_PODS - value: "" - - # provide the name of container runtime, it supports docker, containerd, crio - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - 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" - - # list of the target hostnames or kewywords eg. '["litmuschaos","chaosnative.io"]' . If empty all hostnames are targets - - name: TARGET_HOSTNAMES - value: "" - - # can be either exact or substring, determines whether the dns query has to match exactly with one of the targets or can have any of the targets as substring - - name: MATCH_SCHEME - value: "exact" - - labels: - experiment: pod-dns-error - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Pod DNS Spoof can spoof particular dns requests in target pod container to desired target hostnames -kind: ChaosExperiment -metadata: - name: pod-dns-spoof - labels: - name: pod-dns-spoof - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - args: - - -c - - ./experiments -name pod-dns-spoof - command: - - /bin/bash - env: - - name: TARGET_CONTAINER - value: "" - - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" - - - name: TOTAL_CHAOS_DURATION - value: "60" # in seconds - - # Time 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: "" - - - name: TARGET_PODS - value: "" - - # provide the name of container runtime, it supports docker, containerd, crio - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - 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" - - # map of the target hostnames eg. '{"abc.com":"spoofabc.com"}' . If empty no queries will be spoofed - - name: SPOOF_MAP - value: "" - - labels: - experiment: pod-dns-spoof - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - 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 - - name: RAMP_TIME - value: '' - - - name: TARGET_PODS - value: '' - - # provide the chaos interval - - name: CHAOS_INTERVAL - value: '10' - - - name: SIGNAL - value: 'SIGKILL' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the total chaos duration - - name: TOTAL_CHAOS_DURATION - value: '20' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - 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' - - labels: - name: container-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Inject network packet corruption into application pod -kind: ChaosExperiment -metadata: - name: pod-network-corruption - labels: - name: pod-network-corruption - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name 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: '' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' - - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' - - # provide the socket file path - - 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-corruption - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - 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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - 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: '' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' - - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' - - # provide the socket file path - - 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/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Injects 100% network packet loss on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-network-partition - labels: - name: pod-network-partition - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # performs CRUD operations on the network policies - - apiGroups: ["networking.k8s.io"] - resources: ["networkpolicies"] - verbs: ["create","delete","list","get"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-network-partition - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # ime period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' - - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' - - # provide network policy type - # support ingress, egress, all values - - name: POLICY_TYPES - value: 'all' - - # provide labels of the destination pods - - name: POD_SELECTOR - value: '' - - # provide labels the destination namespaces - - name: NAMESPACE_SELECTOR - value: '' - - # provide comma separated ports - - name: PORTS - value: '' - - labels: - name: pod-network-partition - 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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec","pods/eviction"] - verbs: ["get","list","create"] - # ignore daemonsets while draining the node - - apiGroups: ["apps"] - resources: ["daemonsets"] - verbs: ["list","get","delete"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - 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: NODE_LABEL - value: '' - - - name: TOTAL_CHAOS_DURATION - value: '60' - - # 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: - message: | - Kills the docker service on the application node to check the resiliency. -kind: ChaosExperiment -metadata: - name: docker-service-kill - labels: - name: docker-service-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name docker-service-kill - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '90' # in seconds - - # Period to wait before injection of chaos in sec - - name: RAMP_TIME - value: '' - - - name: NODE_LABEL - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'ubuntu:16.04' - - # provide the target node name - - name: TARGET_NODE - value: '' - - labels: - name: docker-service-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/service-kill: "true" - app.kubernetes.io/version: latest - - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Deletes a pod belonging to a deployment/statefulset/daemonset -kind: ChaosExperiment -metadata: - name: pod-delete - labels: - name: pod-delete - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name 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: '' - - - name: FORCE - value: 'true' - - - name: CHAOS_INTERVAL - value: '5' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-delete - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Restart node -kind: ChaosExperiment -metadata: - name: node-restart - labels: - name: node-restart - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps","secrets"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name node-restart - command: - - /bin/bash - env: - - name: SSH_USER - value: 'root' - - - name: TOTAL_CHAOS_DURATION - value: '60' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" - - # ENTER THE TARGET NODE NAME - - name: TARGET_NODE - value: '' - - - name: NODE_LABEL - value: '' - - # ENTER THE TARGET NODE IP - - name: TARGET_NODE_IP - value: '' - - labels: - name: node-restart - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - secrets: - - name: id-rsa - mountPath: /mnt/ - ---- ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Injects memory consumption on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-memory-hog - labels: - name: pod-memory-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-memory-hog - command: - - /bin/bash - env: - - 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' - - ## Number of workers to perform stress - - name: NUMBER_OF_WORKERS - 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: '' - - ## It is used in pumba lib only - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - ## It is used in pumba lib only - - name: STRESS_IMAGE - value: 'alexeiled/stress-ng:latest-ubuntu' - - ## provide the cluster runtime - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - 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' - - - name: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - labels: - name: pod-memory-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- ---- -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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - 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: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - ## provide the cluster runtime - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - 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-io-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Give a memory hog on a node belonging to a deployment -kind: ChaosExperiment -metadata: - name: node-memory-hog - labels: - name: node-memory-hog - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name node-memory-hog - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '120' - - ## Specify the size as percent of total node capacity Ex: '30' - ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_MEBIBYTES empty - - name: MEMORY_CONSUMPTION_PERCENTAGE - value: '' - - ## Specify the amount of memory to be consumed in mebibytes - ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_PERCENTAGE empty - - name: MEMORY_CONSUMPTION_MEBIBYTES - value: '' - - - name: NUMBER_OF_WORKERS - value: '1' - - # ENTER THE COMMA SEPARATED TARGET NODES NAME - - name: TARGET_NODES - value: '' - - - name: NODE_LABEL - value: '' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # 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-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 memory consumption on pods belonging to an app deployment -kind: ChaosExperiment -metadata: - name: pod-memory-hog-exec - labels: - name: pod-memory-hog-exec - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-memory-hog-exec - command: - - /bin/bash - env: - - 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' - - ## 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: '' - - # The command to kill the chaos process - - name: CHAOS_KILL_COMMAND - value: "kill $(find /proc -name exe -lname '*/dd' 2>&1 | grep -v 'Permission denied' | awk -F/ '{print $(NF-1)}' | head -n 1)" - - ## 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-exec - 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 -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name kubelet-service-kill - command: - - /bin/bash - env: - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - - name: NODE_LABEL - value: '' - - # 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/service-kill: "true" - 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: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-cpu-hog - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '60' - - ## Number of CPU cores to stress - - name: CPU_CORES - value: '1' - - ## LOAD CPU WITH GIVEN PERCENT LOADING FOR THE CPU STRESS WORKERS. - ## 0 IS EFFECTIVELY A SLEEP (NO LOAD) AND 100 IS FULL LOADING - - name: CPU_LOAD - value: '100' - - ## 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: '' - - ## It is used in pumba lib only - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - ## It is used in pumba lib only - - name: STRESS_IMAGE - value: 'alexeiled/stress-ng:latest-ubuntu' - - ## provide the cluster runtime - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - - name: TARGET_PODS - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## 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/runtime-api-usage: "true" - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Scale the application replicas and test the node autoscaling on cluster -kind: ChaosExperiment -metadata: - name: pod-autoscaler - labels: - name: pod-autoscaler - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # performs CRUD operations on the deployments and statefulsets - - apiGroups: ["apps"] - resources: ["deployments","statefulsets"] - verbs: ["list","get","patch","update"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name 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' - - labels: - name: pod-autoscaler - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It injects the chaos inside the pod which modifies the body of the response from the provided application server to the body string provided by the user and reverts after a specified duration -kind: ChaosExperiment -metadata: - name: pod-http-modify-body - labels: - name: pod-http-modify-body - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-http-modify-body - command: - - /bin/bash - env: - - - name: TARGET_CONTAINER - value: '' - - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # provide the body string to overwrite the response body - # if no value is provided, response will be an empty body. - - name: RESPONSE_BODY - value: '' - - # port of the target service - - name: TARGET_SERVICE_PORT - value: "80" - - # port on which the proxy will listen - - name: PROXY_PORT - value: "20000" - - # network interface on which the proxy will listen - - name: NETWORK_INTERFACE - value: "eth0" - - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - # Time 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: '' - - - name: TARGET_PODS - value: '' - - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-http-modify-body - 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: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) - - apiGroups: ["apps"] - resources: ["deployments","statefulsets","replicasets", "daemonsets"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: ["apps.openshift.io"] - resources: ["deploymentconfigs"] - verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) - - apiGroups: [""] - resources: ["replicationcontrollers"] - verbs: ["get","list"] - # deriving the parent/owner details of the pod(if parent is argo-rollouts) - - apiGroups: ["argoproj.io"] - resources: ["rollouts"] - verbs: ["list","get"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - 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 data block size - # supported unit is KB - - name: DATA_BLOCK_SIZE - value: '256' - - - name: TARGET_PODS - value: '' - - - name: EPHEMERAL_STORAGE_MEBIBYTES - value: '' - - # To select pods on specific node(s) - - name: NODE_LABEL - value: '' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - # provide the name of container runtime, it supports docker, containerd, crio - - name: CONTAINER_RUNTIME - value: 'containerd' - - # provide the socket file path - - 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: disk-fill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/host-path-usage: "true" - app.kubernetes.io/version: latest - ---- diff --git a/charts/kube-aws/experiments.yaml b/charts/kube-aws/experiments.yaml deleted file mode 100644 index d28a523..0000000 --- a/charts/kube-aws/experiments.yaml +++ /dev/null @@ -1,442 +0,0 @@ -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - Stopping an EC2 instance identified by tag. -kind: ChaosExperiment -metadata: - name: ec2-terminate-by-tag - labels: - name: ec2-terminate-by-tag - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name ec2-terminate-by-tag - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - - name: INSTANCE_TAG - value: '' - - # enable it if the target instance is a part of self-managed nodegroup. - - name: MANAGED_NODEGROUP - value: 'disable' - - - name: REGION - value: '' - - # Target the percentage of instance filtered from tag - - name: INSTANCE_AFFECTED_PERC - value: '' - - - name: SEQUENCE - value: 'parallel' - - # Provide the path of aws credentials mounted from secret - - name: AWS_SHARED_CREDENTIALS_FILE - value: '/tmp/cloud_config.yml' - - labels: - name: ec2-terminate-by-tag - 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: | - Stopping an EC2 instance identified by ID. -kind: ChaosExperiment -metadata: - name: ec2-terminate-by-id - labels: - name: ec2-terminate-by-id - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - # for experiment to perform node status checks - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get","list"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name ec2-terminate-by-id - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # enable it if the target instance is a part of self-managed nodegroup. - - name: MANAGED_NODEGROUP - value: 'disable' - - # Instance ID of the target ec2 instance - # Multiple IDs can also be provided as comma separated values ex: id1,id2 - - name: EC2_INSTANCE_ID - value: '' - - - name: REGION - value: '' - - - name: SEQUENCE - value: 'parallel' - - # Provide the path of aws credentials mounted from secret - - name: AWS_SHARED_CREDENTIALS_FILE - value: '/tmp/cloud_config.yml' - - labels: - name: ec2-terminate-by-id - 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: | - Execute aws-az chaos to detach the target zones from the load balancer -kind: ChaosExperiment -metadata: - name: aws-az-chaos - labels: - name: aws-az-chaos - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/py-runner:latest" - imagePullPolicy: Always - args: - - -c - - python3 -u experiment -name aws-az-chaos - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - - name: CHAOS_INTERVAL - value: '30' - - name: LIB - value: 'litmus' - - name: LOAD_BALANCER_NAME - value: '' - - name: LOAD_BALANCER_ZONES - value: '' - - name: LOAD_BALANCERNAME_ARN - value: 'na' - - name: AWS_SHARED_CREDENTIALS_FILE - value: "/tmp/cloud_config.yml" - - name: RAMP_TIME - value: '' - labels: - name: aws-az-chaos - 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: | - Detaching an ebs volume from ec2 instance. -kind: ChaosExperiment -metadata: - name: ebs-loss-by-tag - labels: - name: ebs-loss-by-tag - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name ebs-loss-by-tag - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - - name: RAMP_TIME - value: '' - - - name: EBS_VOLUME_TAG - value: '' - - - name: REGION - value: '' - - - name: SEQUENCE - value: 'parallel' - - - name: VOLUME_AFFECTED_PERC - value: '' - - # Provide the path of aws credentials mounted from secret - - name: AWS_SHARED_CREDENTIALS_FILE - value: '/tmp/cloud_config.yml' - - labels: - name: ebs-loss-by-tag - 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: | - Detaching an ebs volume from ec2 instance. -kind: ChaosExperiment -metadata: - name: ebs-loss-by-id - labels: - name: ebs-loss-by-id - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Cluster - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update", "deletecollection"] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [""] - resources: ["events"] - verbs: ["create","get","list","patch","update"] - # Fetch configmaps & secrets details and mount it to the experiment pod (if specified) - - apiGroups: [""] - resources: ["secrets","configmaps"] - verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] - # for creating and managing to execute comands inside target container - - apiGroups: [""] - resources: ["pods/exec"] - verbs: ["get","list","create"] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: ["batch"] - resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update","delete"] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name ebs-loss-by-id - command: - - /bin/bash - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: CHAOS_INTERVAL - value: '30' - - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - - name: EBS_VOLUME_ID - value: '' - - - name: REGION - value: '' - - - name: SEQUENCE - value: 'parallel' - - # Provide the path of aws credentials mounted from secret - - name: AWS_SHARED_CREDENTIALS_FILE - value: '/tmp/cloud_config.yml' - - labels: - name: ebs-loss-by-id - 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/spring-boot/experiments.yaml b/charts/spring-boot/experiments.yaml deleted file mode 100644 index 10e5e5b..0000000 --- a/charts/spring-boot/experiments.yaml +++ /dev/null @@ -1,605 +0,0 @@ -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject network latency -kind: ChaosExperiment -metadata: - name: spring-boot-exceptions - labels: - name: spring-boot-exceptions - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-exceptions - command: - - /bin/bash - env: - - # Type of raised exception - - name: CM_EXCEPTIONS_TYPE - value: 'java.lang.IllegalArgumentException' - - # Argument of raised exception - - name: CM_EXCEPTIONS_ARGUMENTS - value: 'java.lang.String:custom illegal argument exception' - - # port of the spring boot application - - name: CM_PORT - value: '' - - #it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-exceptions - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject cpu-stress -kind: ChaosExperiment -metadata: - name: spring-boot-cpu-stress - labels: - name: spring-boot-cpu-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-cpu-stress - command: - - /bin/bash - env: - - # it contains fraction of cpu to be stressed(0.95 equals 95%) - # it supports value in range [0.1,1.0] - - name: CPU_LOAD_FRACTION - value: '0.9' - - # port of the spring boot application - - name: CM_PORT - value: '' - - #it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-cpu-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject memory-stress -kind: ChaosExperiment -metadata: - name: spring-boot-memory-stress - labels: - name: spring-boot-memory-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-memory-stress - command: - - /bin/bash - env: - - # it contains fraction of memory to be stressed(0.70 equals 70%) - # it supports value in range [0.01,0.95] - - name: MEMORY_FILL_FRACTION - value: '0.70' - - # port of the spring boot application - - name: CM_PORT - value: '' - - # it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-memory-stress - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject network latency -kind: ChaosExperiment -metadata: - name: spring-boot-latency - labels: - name: spring-boot-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-latency - command: - - /bin/bash - env: - - # provide the latency (ms) - - name: LATENCY - value: '2000' - - # port of the spring boot application - - name: CM_PORT - value: '' - - # it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-latency - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject app-kill -kind: ChaosExperiment -metadata: - name: spring-boot-app-kill - labels: - name: spring-boot-app-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-app-kill - command: - - /bin/bash - env: - # port of the spring boot application - - name: CM_PORT - value: '' - - #it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-app-kill - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- -apiVersion: litmuschaos.io/v1alpha1 -description: - message: | - It can target random pods with a Spring Boot application and allows configuring the assaults to inject cpu-stress -kind: ChaosExperiment -metadata: - name: spring-boot-faults - labels: - name: spring-boot-faults - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: chaosexperiment - app.kubernetes.io/version: latest -spec: - definition: - scope: Namespaced - permissions: - # Create and monitor the experiment & helper pods - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "create","delete","get","list","patch","update", "deletecollection" ] - # Performs CRUD operations on the events inside chaosengine and chaosresult - - apiGroups: [ "" ] - resources: [ "events" ] - verbs: [ "create","get","list","patch","update" ] - # Track and get the runner, experiment, and helper pods log - - apiGroups: [ "" ] - resources: [ "pods/log" ] - verbs: [ "get","list","watch" ] - # for creating and managing to execute commands inside target container - - apiGroups: [ "" ] - resources: [ "pods/exec" ] - verbs: [ "get","list","create" ] - # for configuring and monitor the experiment job by the chaos-runner pod - - apiGroups: [ "batch" ] - resources: [ "jobs" ] - verbs: [ "create","list","get","delete","deletecollection" ] - # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow - - apiGroups: [ "litmuschaos.io" ] - resources: [ "chaosengines","chaosexperiments","chaosresults" ] - verbs: [ "create","list","get","patch","update","delete" ] - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name spring-boot-faults - command: - - /bin/bash - env: - - # it enables spring app-kill fault - - name: CM_KILL_APPLICATION_ACTIVE - value: '' - - # it enables spring-boot latency fault - - name: CM_LATENCY_ACTIVE - value: '' - - # provide the latency (ms) - # it is applicable when latency is active - - name: LATENCY - value: '2000' - - # it enables spring-boot memory stress fault - - name: CM_MEMORY_ACTIVE - value: '' - - # it contains fraction of memory to be stressed(0.70 equals 70%) - # it supports value in range [0.01,0.95] - # it is applicable when memory is active - - name: MEMORY_FILL_FRACTION - value: '0.70' - - # it enables spring-boot cpu stress fault - - name: CM_CPU_ACTIVE - value: '' - - # it contains fraction of cpu to be stressed(0.95 equals 95%) - # it supports value in range [0.1,1.0] - # it is applicable when cpu is active - - name: CPU_LOAD_FRACTION - value: '0.9' - - # it enables spring-boot exceptions fault - - name: CM_EXCEPTIONS_ACTIVE - value: '' - - # Type of raised exception - # it is applicable when exceptions is active - - name: CM_EXCEPTIONS_TYPE - value: 'java.lang.IllegalArgumentException' - - # Argument of raised exception - # it is applicable when exceptions is active - - name: CM_EXCEPTIONS_ARGUMENTS - value: 'java.lang.String:custom illegal argument exception' - - # port of the spring boot application - - name: CM_PORT - value: '' - - #it contains number of requests are to be attacked - # n value means nth request will be affected - - name: CM_LEVEL - value: '1' - - # it limits watched packages/classes/methods - - name: CM_WATCHED_CUSTOM_SERVICES - value: '' - - # provide name of watcher - # it supports controller, restController, service, repository, component, webClient - - name: CM_WATCHERS - value: 'restController' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' - - ## Period to wait before and after injection of chaos - - name: RAMP_TIME - value: '' - - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - - labels: - name: spring-boot-faults - app.kubernetes.io/part-of: litmus - app.kubernetes.io/component: experiment-job - app.kubernetes.io/version: latest - ---- diff --git a/workflows/podtato-head/workflow.yaml b/workflows/podtato-head/workflow.yaml deleted file mode 100644 index b8165d4..0000000 --- a/workflows/podtato-head/workflow.yaml +++ /dev/null @@ -1,114 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Workflow -metadata: - generateName: argowf-podtato-head-chaos- - namespace: litmus - labels: - subject : "{{workflow.parameters.adminModeNamespace}}_podtato-main" -spec: - entrypoint: argowf-chaos - serviceAccountName: argo-chaos - securityContext: - runAsUser: 1000 - runAsNonRoot: true - arguments: - parameters: - - name: adminModeNamespace - value: "litmus" - templates: - - name: argowf-chaos - steps: - - - name: install-application - template: install-application - - - name: install-chaos-experiments - template: install-chaos-experiments - - - name: pod-delete - template: pod-delete - - - name: revert-chaos - template: revert-chaos - - name: delete-application - template: delete-application - - - name: install-application - container: - image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=apply","-timeout=400", "-app=podtato-head","-scope=namespace"] - - - name: install-chaos-experiments - container: - image: litmuschaos/k8s:latest - command: [sh, -c] - args: - - "kubectl apply -f https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/experiments.yaml -n - {{workflow.parameters.adminModeNamespace}} ; sleep 30" - - - name: pod-delete - inputs: - artifacts: - - name: pod-delete - path: /tmp/chaosengine.yaml - raw: - data: | - apiVersion: litmuschaos.io/v1alpha1 - kind: ChaosEngine - metadata: - name: podtato-main-pod-delete-chaos - namespace: {{workflow.parameters.adminModeNamespace}} - labels: - context: "{{workflow.parameters.adminModeNamespace}}_podtato-main" - spec: - appinfo: - appns: {{workflow.parameters.adminModeNamespace}} - applabel: 'name=podtato-main' - appkind: 'deployment' - engineState: 'active' - chaosServiceAccount: litmus-admin - jobCleanUpPolicy: 'retain' - components: - runner: - imagePullPolicy: Always - experiments: - - name: pod-delete - spec: - probe: - - name: "check-podtato-main-access-url" - type: "httpProbe" - httpProbe/inputs: - url: "http://podtato-main.{{workflow.parameters.adminModeNamespace}}.svc.cluster.local:9000" - insecureSkipVerify: false - method: - get: - criteria: "==" - responseCode: "200" - mode: "Continuous" - runProperties: - probeTimeout: 1s - interval: 100ms - attempt: 1 - components: - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - # set chaos interval (in sec) as desired - - name: CHAOS_INTERVAL - value: '10' - # pod failures without '--force' & default terminationGracePeriodSeconds - - name: FORCE - value: 'false' - container: - image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - - name: delete-application - container: - image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=delete","-app=podtato-head"] - - - name: revert-chaos - container: - image: litmuschaos/k8s:latest - command: [sh, -c] - args: - [ - "kubectl delete chaosengine podtato-main-pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}", - ] \ No newline at end of file diff --git a/workflows/podtato-head/workflow_cron.yaml b/workflows/podtato-head/workflow_cron.yaml deleted file mode 100644 index 099a050..0000000 --- a/workflows/podtato-head/workflow_cron.yaml +++ /dev/null @@ -1,118 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: CronWorkflow -metadata: - name: argowf-podtato-head-chaos-cron-wf - namespace: litmus - labels: - subject : "{{workflow.parameters.adminModeNamespace}}_podtato-head" -spec: - schedule: "0 * * * *" - concurrencyPolicy: "Forbid" - startingDeadlineSeconds: 0 - workflowSpec: - entrypoint: argowf-chaos - serviceAccountName: argo-chaos - securityContext: - runAsUser: 1000 - runAsNonRoot: true - arguments: - parameters: - - name: adminModeNamespace - value: "litmus" - templates: - - name: argowf-chaos - steps: - - - name: install-application - template: install-application - - - name: install-chaos-experiments - template: install-chaos-experiments - - - name: pod-delete - template: pod-delete - - - name: revert-chaos - template: revert-chaos - - name: delete-application - template: delete-application - - - name: install-application - container: - image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=apply","-timeout=400", "-app=podtato-head","-scope=namespace"] - - - name: install-chaos-experiments - container: - image: litmuschaos/k8s:latest - command: [sh, -c] - args: - - "kubectl apply -f https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/experiments.yaml -n - {{workflow.parameters.adminModeNamespace}} ; sleep 30" - - - name: pod-delete - inputs: - artifacts: - - name: pod-delete - path: /tmp/chaosengine.yaml - raw: - data: | - apiVersion: litmuschaos.io/v1alpha1 - kind: ChaosEngine - metadata: - name: podtato-main-pod-delete-chaos - namespace: {{workflow.parameters.adminModeNamespace}} - labels: - context: "{{workflow.parameters.adminModeNamespace}}_podtato-main" - spec: - appinfo: - appns: {{workflow.parameters.adminModeNamespace}} - applabel: 'name=podtato-main' - appkind: 'deployment' - engineState: 'active' - chaosServiceAccount: litmus-admin - jobCleanUpPolicy: 'retain' - components: - runner: - imagePullPolicy: Always - experiments: - - name: pod-delete - spec: - probe: - - name: "check-podtato-main-access-url" - type: "httpProbe" - httpProbe/inputs: - url: "http://podtato-main.{{workflow.parameters.adminModeNamespace}}.svc.cluster.local:9000" - insecureSkipVerify: false - method: - get: - criteria: "==" - responseCode: "200" - mode: "Continuous" - runProperties: - probeTimeout: 1s - interval: 100ms - attempt: 1 - components: - env: - - name: TOTAL_CHAOS_DURATION - value: '30' - # set chaos interval (in sec) as desired - - name: CHAOS_INTERVAL - value: '10' - # pod failures without '--force' & default terminationGracePeriodSeconds - - name: FORCE - value: 'false' - container: - image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - - name: delete-application - container: - image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=delete","-app=podtato-head"] - - - name: revert-chaos - container: - image: litmuschaos/k8s:latest - command: [sh, -c] - args: - [ - "kubectl delete chaosengine podtato-main-pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}", - ] \ No newline at end of file