From 16dc9ea6d5d936d1dae2e43f1d0e88d136688dfa Mon Sep 17 00:00:00 2001 From: oumkale Date: Tue, 16 Feb 2021 11:33:22 +0530 Subject: [PATCH 1/7] charts Signed-off-by: oumkale --- .../usingCMDProbe/workflow.yaml | 654 +++++++++++++++++ .../usingCMDProbe/workflow_cron.yaml | 677 ++++++++++++++++++ .../usingPrompPobe/workflow.yaml | 668 +++++++++++++++++ .../usingPrompPobe/workflow_cron.yaml | 673 +++++++++++++++++ 4 files changed, 2672 insertions(+) create mode 100644 workflows/sock-shop-demo/usingCMDProbe/workflow.yaml create mode 100644 workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml create mode 100644 workflows/sock-shop-demo/usingPrompPobe/workflow.yaml create mode 100644 workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml diff --git a/workflows/sock-shop-demo/usingCMDProbe/workflow.yaml b/workflows/sock-shop-demo/usingCMDProbe/workflow.yaml new file mode 100644 index 0000000..d6be6be --- /dev/null +++ b/workflows/sock-shop-demo/usingCMDProbe/workflow.yaml @@ -0,0 +1,654 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: argowf-chaos-sock-shop-resiliency- + namespace: litmus +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: load-test + template: load-test + - - name: install-pod-delete + template: install-pod-delete + - name: install-pod-memory-hog + template: install-pod-memory-hog + - name: install-pod-cpu-hog + template: install-pod-cpu-hog + - name: install-pod-network-loss + template: install-pod-network-loss + - - name: pod-memory-hog + template: pod-memory-hog + - name: pod-cpu-hog + template: pod-cpu-hog + - - name: pod-delete + template: pod-delete + - name: pod-network-loss + template: pod-network-loss + - - name: revert-chaos + template: revert-chaos + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + + - name: install-pod-delete + inputs: + artifacts: + - name: install-pod-delete + path: /tmp/pod-delete.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset + kind: ChaosExperiment + metadata: + name: pod-delete + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "deployments" + - "jobs" + - "pods" + - "pods/log" + - "events" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -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: '' + # provide the kill count + - name: KILL_COUNT + value: '' + - name: FORCE + value: 'true' + - name: CHAOS_INTERVAL + value: '5' + - name: LIB + value: 'litmus' + labels: + name: pod-delete + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-delete.yaml -n {{workflow.parameters.adminModeNamespace}} | sleep 5", + ] + + - name: install-pod-cpu-hog + inputs: + artifacts: + - name: install-pod-cpu-hog + path: /tmp/pod-cpu-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects cpu consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-cpu-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-cpu-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '' + + - name: CHAOS_INTERVAL + value: '10' + ## Number of CPU cores to stress + - name: CPU_CORES + value: '1' + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + - name: LIB + value: 'litmus' + - name: TARGET_POD + value: '' + + labels: + name: pod-cpu-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-cpu-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-memory-hog + inputs: + artifacts: + - name: install-pod-memory-hog + path: /tmp/pod-memory-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects memory consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-memory-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-memory-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + - name: CHAOS_INTERVAL + value: '10' + ## enter the amount of memory in megabytes to be consumed by the application pod + - name: MEMORY_CONSUMPTION + value: '500' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal, chaoskube + - name: LIB + value: 'litmus' + - name: TARGET_POD + value: '' + labels: + name: pod-memory-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + - 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 + - name: RAMP_TIME + value: '' + - name: LIB + value: 'litmus' + - name: PODS_AFFECTED_PERC + value: '' + - name: TARGET_POD + value: '' + - name: CONTAINER_RUNTIME + value: 'docker' + - name: TARGET_IPS + value: '' + - name: TARGET_HOSTS + value: '' + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + - name: SEQUENCE + value: 'parallel' + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + + - name: pod-cpu-hog + inputs: + artifacts: + - name: pod-cpu-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-cpu-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=carts' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-cpu-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 2 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 10 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + - name: NODE_CPU_CORE + value: '1' + - name: TOTAL_CHAOS_DURATION + value: '' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-memory-hog + inputs: + artifacts: + - name: pod-memory-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-memory-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=orders' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-memory-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 2 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 10 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + - name: MEMORY_CONSUMPTION + value: '500' + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: catalogue-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=catalogue' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + monitoring: true + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-frontend-catalogue-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 5 + interval: 2 + retry: 2 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 2 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '10' + + # 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: pod-network-loss + inputs: + artifacts: + - name: pod-network-loss + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-network-loss-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=user-db' + appkind: 'statefulset' + jobCleanUpPolicy: retain + monitoring: true + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-network-loss + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/cards" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 2 + components: + env: + - name: TARGET_CONTAINER + value: '' + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: NETWORK_INTERFACE + value: 'eth0' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' + - name: CONTAINER_RUNTIME + value: 'docker' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + + - name: load-test + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest"] + + - name: revert-chaos + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file diff --git a/workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml new file mode 100644 index 0000000..ff8692f --- /dev/null +++ b/workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml @@ -0,0 +1,677 @@ +apiVersion: argoproj.io/v1alpha1 +kind: CronWorkflow +metadata: + generateName: argowf-chaos-sock-shop-resiliency-cron-wf- + namespace: litmus +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: load-test + template: load-test + - - name: install-pod-delete + template: install-pod-delete + - name: install-pod-memory-hog + template: install-pod-memory-hog + - name: install-pod-cpu-hog + template: install-pod-cpu-hog + - name: install-pod-network-loss + template: install-pod-network-loss + - - name: pod-memory-hog + template: pod-memory-hog + - name: pod-cpu-hog + template: pod-cpu-hog + - - name: pod-delete + template: pod-delete + - name: pod-network-loss + template: pod-network-loss + - - name: revert-chaos + template: revert-chaos + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + + - name: install-pod-delete + inputs: + artifacts: + - name: install-pod-delete + path: /tmp/pod-delete.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset + kind: ChaosExperiment + metadata: + name: pod-delete + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "deployments" + - "jobs" + - "pods" + - "pods/log" + - "events" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -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: '' + # provide the kill count + - name: KILL_COUNT + value: '' + - name: FORCE + value: 'true' + - name: CHAOS_INTERVAL + value: '5' + - name: LIB + value: 'litmus' + labels: + name: pod-delete + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-delete.yaml -n {{workflow.parameters.adminModeNamespace}} | sleep 5", + ] + + - name: install-pod-cpu-hog + inputs: + artifacts: + - name: install-pod-cpu-hog + path: /tmp/pod-cpu-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects cpu consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-cpu-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-cpu-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '' + + - name: CHAOS_INTERVAL + value: '10' + + ## Number of CPU cores to stress + - name: CPU_CORES + value: '1' + + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-cpu-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-cpu-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-memory-hog + inputs: + artifacts: + - name: install-pod-memory-hog + path: /tmp/pod-memory-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects memory consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-memory-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-memory-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: CHAOS_INTERVAL + value: '10' + + ## enter the amount of memory in megabytes to be consumed by the application pod + - name: MEMORY_CONSUMPTION + value: '500' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal, chaoskube + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-memory-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + + - 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 + + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: PODS_AFFECTED_PERC + value: '' + + - name: TARGET_POD + value: '' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: TARGET_IPS + value: '' + + - name: TARGET_HOSTS + value: '' + + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + + - name: SEQUENCE + value: 'parallel' + + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + + - name: pod-network-loss + inputs: + artifacts: + - name: pod-network-loss + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-network-loss-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=user-db' + appkind: 'statefulset' + jobCleanUpPolicy: retain + monitoring: true + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-network-loss + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/cards" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + components: + env: + - name: TARGET_CONTAINER + value: '' + + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: NETWORK_INTERFACE + value: 'eth0' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: SOCKET_PATH + value: '/var/run/docker.sock' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-cpu-hog + inputs: + artifacts: + - name: pod-cpu-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-cpu-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=carts' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-cpu-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 10 + components: + experimentImage: "litmuschaos/go-runner:ci" + env: + - name: TARGET_CONTAINER + value: '' + + - name: NODE_CPU_CORE + value: '1' + + - name: TOTAL_CHAOS_DURATION + value: '' # in seconds + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-memory-hog + inputs: + artifacts: + - name: pod-memory-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-memory-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=orders' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-memory-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 10 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + - name: MEMORY_CONSUMPTION + value: '500' + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" + + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: catalogue-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=catalogue' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + monitoring: true + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-frontend-catalogue-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 2 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '10' + + # 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: load-test + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest"] + + - name: revert-chaos + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file diff --git a/workflows/sock-shop-demo/usingPrompPobe/workflow.yaml b/workflows/sock-shop-demo/usingPrompPobe/workflow.yaml new file mode 100644 index 0000000..4bae265 --- /dev/null +++ b/workflows/sock-shop-demo/usingPrompPobe/workflow.yaml @@ -0,0 +1,668 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: argowf-chaos-sock-shop-resiliency- + namespace: litmus +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: load-test + template: load-test + - - name: install-pod-delete + template: install-pod-delete + - name: install-pod-memory-hog + template: install-pod-memory-hog + - name: install-pod-cpu-hog + template: install-pod-cpu-hog + - name: install-pod-network-loss + template: install-pod-network-loss + - - name: pod-memory-hog + template: pod-memory-hog + - name: pod-cpu-hog + template: pod-cpu-hog + - - name: pod-delete + template: pod-delete + - name: pod-network-loss + template: pod-network-loss + - - name: revert-chaos + template: revert-chaos + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + + - name: install-pod-delete + inputs: + artifacts: + - name: install-pod-delete + path: /tmp/pod-delete.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset + kind: ChaosExperiment + metadata: + name: pod-delete + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "deployments" + - "jobs" + - "pods" + - "pods/log" + - "events" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -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: '' + # provide the kill count + - name: KILL_COUNT + value: '' + - name: FORCE + value: 'true' + - name: CHAOS_INTERVAL + value: '5' + - name: LIB + value: 'litmus' + labels: + name: pod-delete + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-delete.yaml -n {{workflow.parameters.adminModeNamespace}} | sleep 5", + ] + + - name: install-pod-cpu-hog + inputs: + artifacts: + - name: install-pod-cpu-hog + path: /tmp/pod-cpu-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects cpu consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-cpu-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-cpu-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '' + + - name: CHAOS_INTERVAL + value: '10' + + ## Number of CPU cores to stress + - name: CPU_CORES + value: '1' + + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-cpu-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-cpu-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-memory-hog + inputs: + artifacts: + - name: install-pod-memory-hog + path: /tmp/pod-memory-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects memory consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-memory-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-memory-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: CHAOS_INTERVAL + value: '10' + + ## enter the amount of memory in megabytes to be consumed by the application pod + - name: MEMORY_CONSUMPTION + value: '500' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal, chaoskube + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-memory-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: pod-cpu-hog + inputs: + artifacts: + - name: pod-cpu-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-cpu-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=carts' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-cpu-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 2 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + + - name: NODE_CPU_CORE + value: '1' + + - name: TOTAL_CHAOS_DURATION + value: '' # in seconds + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-memory-hog + inputs: + artifacts: + - name: pod-memory-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-memory-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=orders' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-memory-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 2 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + - name: MEMORY_CONSUMPTION + value: '500' + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" + + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: catalogue-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=catalogue' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + monitoring: true + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-frontend-catalogue-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 5 + interval: 2 + retry: 2 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '10' + + # 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: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + + - 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 + + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: PODS_AFFECTED_PERC + value: '' + + - name: TARGET_POD + value: '' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: TARGET_IPS + value: '' + + - name: TARGET_HOSTS + value: '' + + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + + - name: SEQUENCE + value: 'parallel' + + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + + - name: pod-network-loss + inputs: + artifacts: + - name: pod-network-loss + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-network-loss-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=user-db' + appkind: 'statefulset' + jobCleanUpPolicy: retain + monitoring: true + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-network-loss + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/cards" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + components: + env: + - name: TARGET_CONTAINER + value: '' + + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: NETWORK_INTERFACE + value: 'eth0' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: SOCKET_PATH + value: '/var/run/docker.sock' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + + - name: load-test + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest"] + + - name: revert-chaos + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file diff --git a/workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml new file mode 100644 index 0000000..f1b4014 --- /dev/null +++ b/workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml @@ -0,0 +1,673 @@ +apiVersion: argoproj.io/v1alpha1 +kind: CronWorkflow +metadata: + generateName: argowf-chaos-sock-shop-resiliency-cron-wf- + namespace: litmus +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: load-test + template: load-test + - - name: install-pod-delete + template: install-pod-delete + - name: install-pod-memory-hog + template: install-pod-memory-hog + - name: install-pod-cpu-hog + template: install-pod-cpu-hog + - name: install-pod-network-loss + template: install-pod-network-loss + - - name: pod-memory-hog + template: pod-memory-hog + - name: pod-cpu-hog + template: pod-cpu-hog + - - name: pod-delete + template: pod-delete + - name: pod-network-loss + template: pod-network-loss + - - name: revert-chaos + template: revert-chaos + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + + - name: install-pod-delete + inputs: + artifacts: + - name: install-pod-delete + path: /tmp/pod-delete.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset + kind: ChaosExperiment + metadata: + name: pod-delete + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "deployments" + - "jobs" + - "pods" + - "pods/log" + - "events" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -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: '' + # provide the kill count + - name: KILL_COUNT + value: '' + - name: FORCE + value: 'true' + - name: CHAOS_INTERVAL + value: '5' + - name: LIB + value: 'litmus' + labels: + name: pod-delete + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-delete.yaml -n {{workflow.parameters.adminModeNamespace}} | sleep 5", + ] + + - name: install-pod-cpu-hog + inputs: + artifacts: + - name: install-pod-cpu-hog + path: /tmp/pod-cpu-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects cpu consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-cpu-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-cpu-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '' + + - name: CHAOS_INTERVAL + value: '10' + + ## Number of CPU cores to stress + - name: CPU_CORES + value: '1' + + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-cpu-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-cpu-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: install-pod-memory-hog + inputs: + artifacts: + - name: install-pod-memory-hog + path: /tmp/pod-memory-hog.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects memory consumption on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-memory-hog + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-memory-hog + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: CHAOS_INTERVAL + value: '10' + + ## enter the amount of memory in megabytes to be consumed by the application pod + - name: MEMORY_CONSUMPTION + value: '500' + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: '' + + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal, chaoskube + - name: LIB + value: 'litmus' + + - name: TARGET_POD + value: '' + + labels: + name: pod-memory-hog + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", + ] + + - name: pod-cpu-hog + inputs: + artifacts: + - name: pod-cpu-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-cpu-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=carts' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-cpu-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + experimentImage: "litmuschaos/go-runner:ci" + env: + - name: TARGET_CONTAINER + value: '' + + - name: NODE_CPU_CORE + value: '1' + + - name: TOTAL_CHAOS_DURATION + value: '' # in seconds + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + + - name: pod-memory-hog + inputs: + artifacts: + - name: pod-memory-hog + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-memory-hog-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=orders' + appkind: 'deployment' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + experiments: + - name: pod-memory-hog + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + experimentImage: "litmuschaos/go-runner:latest" + env: + - name: TARGET_CONTAINER + value: '' + - name: MEMORY_CONSUMPTION + value: '500' + - name: TOTAL_CHAOS_DURATION + value: '60' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" + + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: catalogue-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=catalogue' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + monitoring: true + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-frontend-catalogue-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '10' + + # 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: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + + - 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 + + - name: RAMP_TIME + value: '' + + - name: LIB + value: 'litmus' + + - name: PODS_AFFECTED_PERC + value: '' + + - name: TARGET_POD + value: '' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: TARGET_IPS + value: '' + + - name: TARGET_HOSTS + value: '' + + - name: SOCKET_PATH + value: '/run/containerd/containerd.sock' + + - name: SEQUENCE + value: 'parallel' + + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + + - name: pod-network-loss + inputs: + artifacts: + - name: pod-network-loss + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-network-loss-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=user-db' + appkind: 'statefulset' + jobCleanUpPolicy: retain + monitoring: true + annotationCheck: 'false' + engineState: 'active' + auxiliaryAppInfo: '' + chaosServiceAccount: litmus-admin + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-network-loss + spec: + probe: + - name: "check-frontend-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/cards" + expectedResponseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 1 + probePollingInterval: 1 + components: + env: + - name: TARGET_CONTAINER + value: '' + + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: NETWORK_INTERFACE + value: 'eth0' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' + + - name: CONTAINER_RUNTIME + value: 'docker' + + - name: SOCKET_PATH + value: '/var/run/docker.sock' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + + - name: load-test + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest"] + + - name: revert-chaos + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: + [ + "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file From b4ac2879941a4a70c78713753bb6dd335e2ad000 Mon Sep 17 00:00:00 2001 From: oumkale Date: Tue, 16 Feb 2021 23:52:58 +0530 Subject: [PATCH 2/7] sock-shop workflow Signed-off-by: oumkale --- .../{usingCMDProbe => usingcmdprobe}/workflow.yaml | 2 +- .../{usingCMDProbe => usingcmdprobe}/workflow_cron.yaml | 2 +- .../{usingPrompPobe => usingpromppobe}/workflow.yaml | 2 +- .../{usingPrompPobe => usingpromppobe}/workflow_cron.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename workflows/sock-shop-demo/{usingCMDProbe => usingcmdprobe}/workflow.yaml (99%) rename workflows/sock-shop-demo/{usingCMDProbe => usingcmdprobe}/workflow_cron.yaml (99%) rename workflows/sock-shop-demo/{usingPrompPobe => usingpromppobe}/workflow.yaml (99%) rename workflows/sock-shop-demo/{usingPrompPobe => usingpromppobe}/workflow_cron.yaml (99%) diff --git a/workflows/sock-shop-demo/usingCMDProbe/workflow.yaml b/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml similarity index 99% rename from workflows/sock-shop-demo/usingCMDProbe/workflow.yaml rename to workflows/sock-shop-demo/usingcmdprobe/workflow.yaml index d6be6be..a49c768 100644 --- a/workflows/sock-shop-demo/usingCMDProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml @@ -34,7 +34,7 @@ spec: template: pod-cpu-hog - - name: pod-delete template: pod-delete - - name: pod-network-loss + - - name: pod-network-loss template: pod-network-loss - - name: revert-chaos template: revert-chaos diff --git a/workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml similarity index 99% rename from workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml rename to workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml index ff8692f..ef75b2f 100644 --- a/workflows/sock-shop-demo/usingCMDProbe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml @@ -38,7 +38,7 @@ spec: template: pod-cpu-hog - - name: pod-delete template: pod-delete - - name: pod-network-loss + - - name: pod-network-loss template: pod-network-loss - - name: revert-chaos template: revert-chaos diff --git a/workflows/sock-shop-demo/usingPrompPobe/workflow.yaml b/workflows/sock-shop-demo/usingpromppobe/workflow.yaml similarity index 99% rename from workflows/sock-shop-demo/usingPrompPobe/workflow.yaml rename to workflows/sock-shop-demo/usingpromppobe/workflow.yaml index 4bae265..6e34842 100644 --- a/workflows/sock-shop-demo/usingPrompPobe/workflow.yaml +++ b/workflows/sock-shop-demo/usingpromppobe/workflow.yaml @@ -34,7 +34,7 @@ spec: template: pod-cpu-hog - - name: pod-delete template: pod-delete - - name: pod-network-loss + - - name: pod-network-loss template: pod-network-loss - - name: revert-chaos template: revert-chaos diff --git a/workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml similarity index 99% rename from workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml rename to workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml index f1b4014..c3ac6f5 100644 --- a/workflows/sock-shop-demo/usingPrompPobe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml @@ -38,7 +38,7 @@ spec: template: pod-cpu-hog - - name: pod-delete template: pod-delete - - name: pod-network-loss + - - name: pod-network-loss template: pod-network-loss - - name: revert-chaos template: revert-chaos From 5ad91f42cd925b20e1121002f16936570ef5f286 Mon Sep 17 00:00:00 2001 From: oumkale Date: Wed, 17 Feb 2021 01:00:52 +0530 Subject: [PATCH 3/7] sock-shop workflow Signed-off-by: oumkale --- .../usingcmdprobe/workflow.yaml | 36 ++++++++++++----- .../usingcmdprobe/workflow_cron.yaml | 40 +++++++++++++------ .../usingpromppobe/workflow.yaml | 36 ++++++++++++----- .../usingpromppobe/workflow_cron.yaml | 40 +++++++++++++------ 4 files changed, 108 insertions(+), 44 deletions(-) diff --git a/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml b/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml index a49c768..6728751 100644 --- a/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml +++ b/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml @@ -42,7 +42,7 @@ spec: - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] - name: install-pod-delete inputs: @@ -160,7 +160,7 @@ spec: - "patch" - "update" - "delete" - image: "litmuschaos/go-runner:ci" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c @@ -384,7 +384,11 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 @@ -451,7 +455,11 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 @@ -518,15 +526,19 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-catalogue-access-url" + - name: "check-frontend-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: - probeTimeout: 5 - interval: 2 + probeTimeout: 2 + interval: 1 retry: 2 probePollingInterval: 1 - name: "check-benchmark" @@ -594,12 +606,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" diff --git a/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml index ef75b2f..4e01f81 100644 --- a/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml @@ -46,7 +46,7 @@ spec: - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] - name: install-pod-delete inputs: @@ -164,7 +164,7 @@ spec: - "patch" - "update" - "delete" - image: "litmuschaos/go-runner:ci" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c @@ -419,12 +419,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 components: env: @@ -482,12 +486,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" @@ -505,7 +513,7 @@ spec: retry: 1 initialDelaySeconds: 10 components: - experimentImage: "litmuschaos/go-runner:ci" + experimentImage: "litmuschaos/go-runner:latest" env: - name: TARGET_CONTAINER value: '' @@ -552,12 +560,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" @@ -620,16 +632,20 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-catalogue-access-url" + - name: "check-frontend-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" diff --git a/workflows/sock-shop-demo/usingpromppobe/workflow.yaml b/workflows/sock-shop-demo/usingpromppobe/workflow.yaml index 6e34842..b4d02dc 100644 --- a/workflows/sock-shop-demo/usingpromppobe/workflow.yaml +++ b/workflows/sock-shop-demo/usingpromppobe/workflow.yaml @@ -42,7 +42,7 @@ spec: - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] - name: install-pod-delete inputs: @@ -160,7 +160,7 @@ spec: - "patch" - "update" - "delete" - image: "litmuschaos/go-runner:ci" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c @@ -312,7 +312,11 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 @@ -380,7 +384,11 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 @@ -446,15 +454,19 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-catalogue-access-url" + - name: "check-frontend-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: - probeTimeout: 5 - interval: 2 + probeTimeout: 2 + interval: 1 retry: 2 probePollingInterval: 1 - name: "check-probe-success" @@ -619,12 +631,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 components: env: diff --git a/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml index c3ac6f5..db76a48 100644 --- a/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml @@ -46,7 +46,7 @@ spec: - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) + args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] - name: install-pod-delete inputs: @@ -164,7 +164,7 @@ spec: - "patch" - "update" - "delete" - image: "litmuschaos/go-runner:ci" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c @@ -316,12 +316,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-probe-success" type: "promProbe" @@ -337,7 +341,7 @@ spec: interval: 5 retry: 1 components: - experimentImage: "litmuschaos/go-runner:ci" + experimentImage: "litmuschaos/go-runner:latest" env: - name: TARGET_CONTAINER value: '' @@ -385,12 +389,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-probe-success" type: "promProbe" @@ -451,16 +459,20 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-catalogue-access-url" + - name: "check-frontend-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 - name: "check-probe-success" type: "promProbe" @@ -624,12 +636,16 @@ spec: type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" - expectedResponseCode: "200" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" mode: "Continuous" runProperties: probeTimeout: 2 interval: 1 - retry: 1 + retry: 2 probePollingInterval: 1 components: env: From dfb9587f8e7aaf56a8b70c189cdf999f2a02c2d4 Mon Sep 17 00:00:00 2001 From: oumkale Date: Wed, 17 Feb 2021 01:04:46 +0530 Subject: [PATCH 4/7] sock-shop workflow Signed-off-by: oumkale --- .../{usingcmdprobe => usingCmdProbe}/workflow.yaml | 4 ++-- .../{usingcmdprobe => usingCmdProbe}/workflow_cron.yaml | 4 ++-- .../{usingpromppobe => usingPromProbe}/workflow.yaml | 4 ++-- .../{usingpromppobe => usingPromProbe}/workflow_cron.yaml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) rename workflows/sock-shop-demo/{usingcmdprobe => usingCmdProbe}/workflow.yaml (99%) rename workflows/sock-shop-demo/{usingcmdprobe => usingCmdProbe}/workflow_cron.yaml (99%) rename workflows/sock-shop-demo/{usingpromppobe => usingPromProbe}/workflow.yaml (99%) rename workflows/sock-shop-demo/{usingpromppobe => usingPromProbe}/workflow_cron.yaml (99%) diff --git a/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml similarity index 99% rename from workflows/sock-shop-demo/usingcmdprobe/workflow.yaml rename to workflows/sock-shop-demo/usingCmdProbe/workflow.yaml index 6728751..09ffbc5 100644 --- a/workflows/sock-shop-demo/usingcmdprobe/workflow.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml @@ -526,7 +526,7 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-access-url" + - name: "check-catalogue-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" @@ -602,7 +602,7 @@ spec: - name: pod-network-loss spec: probe: - - name: "check-frontend-access-url" + - name: "check-cards-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" diff --git a/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml similarity index 99% rename from workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml rename to workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml index 4e01f81..2eb8af4 100644 --- a/workflows/sock-shop-demo/usingcmdprobe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml @@ -415,7 +415,7 @@ spec: - name: pod-network-loss spec: probe: - - name: "check-frontend-access-url" + - name: "check-cards-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" @@ -632,7 +632,7 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-access-url" + - name: "check-catalogue-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" diff --git a/workflows/sock-shop-demo/usingpromppobe/workflow.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml similarity index 99% rename from workflows/sock-shop-demo/usingpromppobe/workflow.yaml rename to workflows/sock-shop-demo/usingPromProbe/workflow.yaml index b4d02dc..433f8da 100644 --- a/workflows/sock-shop-demo/usingpromppobe/workflow.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml @@ -454,7 +454,7 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-access-url" + - name: "check-catalogue-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" @@ -627,7 +627,7 @@ spec: - name: pod-network-loss spec: probe: - - name: "check-frontend-access-url" + - name: "check-cards-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" diff --git a/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml similarity index 99% rename from workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml rename to workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml index db76a48..1166f53 100644 --- a/workflows/sock-shop-demo/usingpromppobe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml @@ -459,7 +459,7 @@ spec: - name: pod-delete spec: probe: - - name: "check-frontend-access-url" + - name: "check-catalogue-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/catalogue" @@ -632,7 +632,7 @@ spec: - name: pod-network-loss spec: probe: - - name: "check-frontend-access-url" + - name: "check-cards-access-url" type: "httpProbe" httpProbe/inputs: url: "http://front-end.sock-shop.svc.cluster.local:80/cards" From 122d106026ac6e3a28832862ea4f6f3ed63ccce3 Mon Sep 17 00:00:00 2001 From: oumkale Date: Wed, 17 Feb 2021 18:02:11 +0530 Subject: [PATCH 5/7] workflow Signed-off-by: oumkale --- .../usingCmdProbe/workflow.yaml | 118 +++++++++++++----- 1 file changed, 86 insertions(+), 32 deletions(-) diff --git a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml index 09ffbc5..fe43f40 100644 --- a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml @@ -65,6 +65,8 @@ spec: - apiGroups: - "" - "apps" + - "apps.openshift.io" + - "argoproj.io" - "batch" - "litmuschaos.io" resources: @@ -72,8 +74,15 @@ spec: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - - "configmaps" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -84,6 +93,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" - apiGroups: - "" resources: @@ -105,14 +115,18 @@ spec: - name: RAMP_TIME value: '' # provide the kill count - - name: KILL_COUNT - value: '' - name: FORCE value: 'true' - name: CHAOS_INTERVAL value: '5' + - name: PODS_AFFECTED_PERC + value: '' - name: LIB - value: 'litmus' + value: 'litmus' + - name: TARGET_PODS + value: '' + - name: SEQUENCE + value: 'parallel' labels: name: pod-delete container: @@ -144,12 +158,23 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" - "events" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -160,6 +185,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: @@ -169,7 +195,7 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '' + value: '60' - name: CHAOS_INTERVAL value: '10' @@ -184,9 +210,15 @@ spec: value: '' - name: LIB value: 'litmus' - - name: TARGET_POD + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: TARGET_PODS value: '' - + - name: SEQUENCE + value: 'parallel' labels: name: pod-cpu-hog container: @@ -218,11 +250,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -234,7 +277,9 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always args: - -c - ./experiments -name pod-memory-hog @@ -242,7 +287,7 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '30' + value: '60' - name: CHAOS_INTERVAL value: '10' ## enter the amount of memory in megabytes to be consumed by the application pod @@ -258,7 +303,15 @@ spec: ## default: litmus. Supported values: litmus, powerfulseal, chaoskube - name: LIB value: 'litmus' - - name: TARGET_POD + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + ## 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 @@ -291,11 +344,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -328,23 +392,23 @@ spec: - name: NETWORK_PACKET_LOSS_PERCENTAGE value: '100' #in PERCENTAGE - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + value: '30' # in seconds - name: RAMP_TIME value: '' - name: LIB value: 'litmus' - name: PODS_AFFECTED_PERC value: '' - - name: TARGET_POD + - name: TARGET_PODS value: '' - name: CONTAINER_RUNTIME value: 'docker' - - name: TARGET_IPS + - name: DESTINATION_IPS value: '' - - name: TARGET_HOSTS + - name: DESTINATION_HOSTS value: '' - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' + value: '/var/run/docker.sock' - name: SEQUENCE value: 'parallel' labels: @@ -413,14 +477,13 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - - name: NODE_CPU_CORE + #number of cpu cores to be consumed + #verify the resources the app has been launched with + - name: CPU_CORES value: '1' - name: TOTAL_CHAOS_DURATION - value: '' # in seconds - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -484,14 +547,11 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION value: '60' # in seconds - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -515,7 +575,6 @@ spec: appkind: 'deployment' annotationCheck: 'false' engineState: 'active' - auxiliaryAppInfo: '' chaosServiceAccount: litmus-admin monitoring: true jobCleanUpPolicy: 'retain' @@ -559,7 +618,7 @@ spec: components: env: - name: TOTAL_CHAOS_DURATION - value: '10' + value: '30' # set chaos interval (in sec) as desired - name: CHAOS_INTERVAL @@ -590,10 +649,9 @@ spec: applabel: 'name=user-db' appkind: 'statefulset' jobCleanUpPolicy: retain - monitoring: true + monitoring: false annotationCheck: 'false' engineState: 'active' - auxiliaryAppInfo: '' chaosServiceAccount: litmus-admin components: runner: @@ -634,10 +692,6 @@ spec: initialDelaySeconds: 2 components: env: - - name: TARGET_CONTAINER - value: '' - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - name: TOTAL_CHAOS_DURATION value: '30' From 7a641456d7e20721c6033e08e0ad4359cf7273d6 Mon Sep 17 00:00:00 2001 From: oumkale Date: Thu, 18 Feb 2021 14:56:23 +0530 Subject: [PATCH 6/7] predefined workflow Signed-off-by: oumkale --- .../usingCmdProbe/workflow.yaml | 29 +- .../usingCmdProbe/workflow_cron.yaml | 310 +++++++++------- .../usingPromProbe/workflow.yaml | 346 +++++++++-------- .../usingPromProbe/workflow_cron.yaml | 351 ++++++++++-------- 4 files changed, 595 insertions(+), 441 deletions(-) diff --git a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml index fe43f40..a2fe6fc 100644 --- a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml @@ -38,11 +38,15 @@ spec: template: pod-network-loss - - name: revert-chaos template: revert-chaos + - name: delete-application + template: delete-application + - name: delete-loadtest + template: delete-loadtest - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] + args: ["-namespace=sock-shop","-typeName=resilient","-operation=apply","-timeout=400"] - name: install-pod-delete inputs: @@ -110,7 +114,7 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '15' + value: '30' # Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' @@ -195,7 +199,7 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '60' + value: '30' - name: CHAOS_INTERVAL value: '10' @@ -287,7 +291,7 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '60' + value: '30' - name: CHAOS_INTERVAL value: '10' ## enter the amount of memory in megabytes to be consumed by the application pod @@ -310,7 +314,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel + value: 'parallel' - name: TARGET_PODS value: '' labels: @@ -550,7 +554,7 @@ spec: - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + value: '30' # in seconds container: image: litmuschaos/litmus-checker:latest @@ -706,13 +710,22 @@ spec: value: '/var/run/docker.sock' container: image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: delete-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient","-operation=delete"] - - name: load-test container: image: litmuschaos/litmus-app-deployer:latest args: ["-namespace=loadtest"] + + - name: delete-loadtest + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest","-operation=delete"] - name: revert-chaos container: diff --git a/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml index 2eb8af4..b9f3779 100644 --- a/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml @@ -42,11 +42,15 @@ spec: template: pod-network-loss - - name: revert-chaos template: revert-chaos + - name: delete-application + template: delete-application + - name: delete-loadtest + template: delete-loadtest - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] + args: ["-namespace=sock-shop","-typeName=resilient","-operation=apply","-timeout=400"] - name: install-pod-delete inputs: @@ -69,6 +73,8 @@ spec: - apiGroups: - "" - "apps" + - "apps.openshift.io" + - "argoproj.io" - "batch" - "litmuschaos.io" resources: @@ -76,8 +82,15 @@ spec: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - - "configmaps" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -88,6 +101,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" - apiGroups: - "" resources: @@ -104,19 +118,23 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '15' + value: '30' # Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' # provide the kill count - - name: KILL_COUNT - value: '' - name: FORCE value: 'true' - name: CHAOS_INTERVAL value: '5' + - name: PODS_AFFECTED_PERC + value: '' - name: LIB - value: 'litmus' + value: 'litmus' + - name: TARGET_PODS + value: '' + - name: SEQUENCE + value: 'parallel' labels: name: pod-delete container: @@ -148,12 +166,23 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" - "events" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -164,6 +193,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: @@ -173,29 +203,30 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '' + value: '30' - name: CHAOS_INTERVAL value: '10' - ## Number of CPU cores to stress - name: CPU_CORES value: '1' - ## Percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - - name: LIB value: 'litmus' - - - name: TARGET_POD + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: TARGET_PODS value: '' - + - name: SEQUENCE + value: 'parallel' labels: name: pod-cpu-hog container: @@ -227,11 +258,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -243,7 +285,9 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always args: - -c - ./experiments -name pod-memory-hog @@ -252,30 +296,31 @@ spec: env: - name: TOTAL_CHAOS_DURATION value: '30' - - name: CHAOS_INTERVAL value: '10' - ## enter the amount of memory in megabytes to be consumed by the application pod - name: MEMORY_CONSUMPTION value: '500' - ## percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - ## env var that describes the library used to execute the chaos ## default: litmus. Supported values: litmus, powerfulseal, chaoskube - name: LIB value: 'litmus' - - - name: TARGET_POD + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + ## 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 container: @@ -307,11 +352,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -335,49 +391,34 @@ spec: env: - name: TARGET_CONTAINER value: '' - - 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 - + value: '30' # in seconds - name: RAMP_TIME value: '' - - name: LIB value: 'litmus' - - name: PODS_AFFECTED_PERC value: '' - - - name: TARGET_POD + - name: TARGET_PODS value: '' - - name: CONTAINER_RUNTIME value: 'docker' - - - name: TARGET_IPS + - name: DESTINATION_IPS value: '' - - - name: TARGET_HOSTS + - name: DESTINATION_HOSTS value: '' - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - + value: '/var/run/docker.sock' - name: SEQUENCE value: 'parallel' - labels: name: pod-network-loss container: @@ -385,77 +426,6 @@ spec: command: [sh, -c] args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] - - name: pod-network-loss - inputs: - artifacts: - - name: pod-network-loss - path: /tmp/chaosengine.yaml - raw: - data: | - apiVersion: litmuschaos.io/v1alpha1 - kind: ChaosEngine - metadata: - name: pod-network-loss-chaos - namespace: {{workflow.parameters.adminModeNamespace}} - spec: - appinfo: - appns: 'sock-shop' - applabel: 'name=user-db' - appkind: 'statefulset' - jobCleanUpPolicy: retain - monitoring: true - annotationCheck: 'false' - engineState: 'active' - auxiliaryAppInfo: '' - chaosServiceAccount: litmus-admin - components: - runner: - imagePullPolicy: Always - experiments: - - name: pod-network-loss - spec: - probe: - - name: "check-cards-access-url" - type: "httpProbe" - httpProbe/inputs: - url: "http://front-end.sock-shop.svc.cluster.local:80/cards" - insecureSkipVerify: false - method: - get: - criteria: "==" - responseCode: "200" - mode: "Continuous" - runProperties: - probeTimeout: 2 - interval: 1 - retry: 2 - probePollingInterval: 1 - components: - env: - - name: TARGET_CONTAINER - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - - name: TOTAL_CHAOS_DURATION - value: '30' - - - name: NETWORK_INTERFACE - value: 'eth0' - - - name: NETWORK_PACKET_LOSS_PERCENTAGE - value: '100' - - - name: CONTAINER_RUNTIME - value: 'docker' - - - name: SOCKET_PATH - value: '/var/run/docker.sock' - container: - image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - name: pod-cpu-hog inputs: artifacts: @@ -515,17 +485,13 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - - - name: NODE_CPU_CORE + #number of cpu cores to be consumed + #verify the resources the app has been launched with + - name: CPU_CORES value: '1' - - name: TOTAL_CHAOS_DURATION - value: '' # in seconds - - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -589,15 +555,11 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" - + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -621,7 +583,6 @@ spec: appkind: 'deployment' annotationCheck: 'false' engineState: 'active' - auxiliaryAppInfo: '' chaosServiceAccount: litmus-admin monitoring: true jobCleanUpPolicy: 'retain' @@ -665,7 +626,7 @@ spec: components: env: - name: TOTAL_CHAOS_DURATION - value: '10' + value: '30' # set chaos interval (in sec) as desired - name: CHAOS_INTERVAL @@ -677,11 +638,98 @@ spec: container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: pod-network-loss + inputs: + artifacts: + - name: pod-network-loss + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: pod-network-loss-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: 'sock-shop' + applabel: 'name=user-db' + appkind: 'statefulset' + jobCleanUpPolicy: retain + monitoring: false + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-network-loss + spec: + probe: + - name: "check-cards-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://front-end.sock-shop.svc.cluster.local:80/cards" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 2 + interval: 1 + retry: 2 + probePollingInterval: 1 + - name: "check-benchmark" + type: "cmdProbe" + cmdProbe/inputs: + command: "curl http://qps-test.sock-shop.svc.cluster.local" + comparator: + type: "int" # supports: string, int, float + criteria: ">=" #supports >=,<=,>,<,==,!= for int and contains,equal,notEqual,matches,notMatches for string values + value: "500" + source: "inline" # it can be “inline” or any image + mode: "Edge" + runProperties: + probeTimeout: 2 + interval: 2 + retry: 1 + initialDelaySeconds: 2 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + + - name: NETWORK_INTERFACE + value: 'eth0' + + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: '100' + - name: CONTAINER_RUNTIME + value: 'docker' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + 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=sock-shop","-typeName=resilient","-operation=delete"] - name: load-test container: image: litmuschaos/litmus-app-deployer:latest args: ["-namespace=loadtest"] + + - name: delete-loadtest + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest","-operation=delete"] - name: revert-chaos container: @@ -689,5 +737,5 @@ spec: command: [sh, -c] args: [ - "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", + "kubectl delete chaosengine pod-memory-hog-chaos pod-cpu-hog-chaos catalogue-pod-delete-chaos pod-network-loss-chaos -n {{workflow.parameters.adminModeNamespace}}", ] \ No newline at end of file diff --git a/workflows/sock-shop-demo/usingPromProbe/workflow.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml index 433f8da..95bf186 100644 --- a/workflows/sock-shop-demo/usingPromProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml @@ -19,7 +19,7 @@ spec: - - name: install-application template: install-application - name: load-test - template: load-test + template: load-test - - name: install-pod-delete template: install-pod-delete - name: install-pod-memory-hog @@ -38,11 +38,15 @@ spec: template: pod-network-loss - - name: revert-chaos template: revert-chaos + - name: delete-application + template: delete-application + - name: delete-loadtest + template: delete-loadtest - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] + args: ["-namespace=sock-shop","-typeName=resilient","-operation=apply","-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) - name: install-pod-delete inputs: @@ -65,6 +69,8 @@ spec: - apiGroups: - "" - "apps" + - "apps.openshift.io" + - "argoproj.io" - "batch" - "litmuschaos.io" resources: @@ -72,8 +78,15 @@ spec: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - - "configmaps" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -84,6 +97,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" - apiGroups: - "" resources: @@ -100,19 +114,23 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '15' + value: '30' # Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' # provide the kill count - - name: KILL_COUNT - value: '' - name: FORCE value: 'true' - name: CHAOS_INTERVAL - value: '5' + value: '10' + - name: PODS_AFFECTED_PERC + value: '' - name: LIB - value: 'litmus' + value: 'litmus' + - name: TARGET_PODS + value: '' + - name: SEQUENCE + value: 'parallel' labels: name: pod-delete container: @@ -144,12 +162,23 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" - "events" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -160,6 +189,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: @@ -169,29 +199,30 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '' + value: '30' - name: CHAOS_INTERVAL value: '10' - ## Number of CPU cores to stress - name: CPU_CORES value: '1' - ## Percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - - name: LIB value: 'litmus' - - - name: TARGET_POD + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: TARGET_PODS value: '' - + - name: SEQUENCE + value: 'parallel' labels: name: pod-cpu-hog container: @@ -223,11 +254,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -239,7 +281,9 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always args: - -c - ./experiments -name pod-memory-hog @@ -248,30 +292,31 @@ spec: env: - name: TOTAL_CHAOS_DURATION value: '30' - - name: CHAOS_INTERVAL value: '10' - ## enter the amount of memory in megabytes to be consumed by the application pod - name: MEMORY_CONSUMPTION value: '500' - ## percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - ## env var that describes the library used to execute the chaos ## default: litmus. Supported values: litmus, powerfulseal, chaoskube - name: LIB value: 'litmus' - - - name: TARGET_POD + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + ## 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 container: @@ -282,6 +327,101 @@ spec: "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", ] + - name: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + - 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: '30' # in seconds + - name: RAMP_TIME + value: '' + - name: LIB + value: 'litmus' + - name: PODS_AFFECTED_PERC + value: '' + - name: TARGET_PODS + value: '' + - name: CONTAINER_RUNTIME + value: 'docker' + - name: DESTINATION_IPS + value: '' + - name: DESTINATION_HOSTS + value: '' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: SEQUENCE + value: 'parallel' + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + - name: pod-cpu-hog inputs: artifacts: @@ -339,17 +479,13 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - - - name: NODE_CPU_CORE + #number of cpu cores to be consumed + #verify the resources the app has been launched with + - name: CPU_CORES value: '1' - - name: TOTAL_CHAOS_DURATION - value: '' # in seconds - - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -411,15 +547,11 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" - + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -443,7 +575,6 @@ spec: appkind: 'deployment' annotationCheck: 'false' engineState: 'active' - auxiliaryAppInfo: '' chaosServiceAccount: litmus-admin monitoring: true jobCleanUpPolicy: 'retain' @@ -485,7 +616,7 @@ spec: components: env: - name: TOTAL_CHAOS_DURATION - value: '10' + value: '30' # set chaos interval (in sec) as desired - name: CHAOS_INTERVAL @@ -498,105 +629,6 @@ spec: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - name: install-pod-network-loss - inputs: - artifacts: - - name: install-pod-network-loss - path: /tmp/pod-network-loss.yaml - raw: - data: | - apiVersion: litmuschaos.io/v1alpha1 - description: - message: | - Injects network packet loss on pods belonging to an app deployment - kind: ChaosExperiment - metadata: - name: pod-network-loss - spec: - definition: - scope: Namespaced - permissions: - - apiGroups: - - "" - - "batch" - - "litmuschaos.io" - resources: - - "jobs" - - "pods" - - "pods/log" - - "events" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "list" - - "get" - - "patch" - - "update" - - "delete" - - "deletecollection" - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-network-loss - command: - - /bin/bash - - env: - - name: TARGET_CONTAINER - value: '' - - - 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 - - - name: RAMP_TIME - value: '' - - - name: LIB - value: 'litmus' - - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_POD - value: '' - - - name: CONTAINER_RUNTIME - value: 'docker' - - - name: TARGET_IPS - value: '' - - - name: TARGET_HOSTS - value: '' - - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-network-loss - container: - image: lachlanevenson/k8s-kubectl - command: [sh, -c] - args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] - - name: pod-network-loss inputs: artifacts: @@ -642,14 +674,21 @@ spec: interval: 1 retry: 2 probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 components: env: - - name: TARGET_CONTAINER - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - name: TOTAL_CHAOS_DURATION value: '30' @@ -658,21 +697,28 @@ spec: - name: NETWORK_PACKET_LOSS_PERCENTAGE value: '100' - - name: CONTAINER_RUNTIME value: 'docker' - - name: SOCKET_PATH value: '/var/run/docker.sock' container: image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + - name: delete-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient","-operation=delete"] + - name: load-test container: image: litmuschaos/litmus-app-deployer:latest args: ["-namespace=loadtest"] + + - name: delete-loadtest + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest","-operation=delete"] - name: revert-chaos container: diff --git a/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml index 1166f53..a0cf8c3 100644 --- a/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml @@ -23,7 +23,7 @@ spec: - - name: install-application template: install-application - name: load-test - template: load-test + template: load-test - - name: install-pod-delete template: install-pod-delete - name: install-pod-memory-hog @@ -36,17 +36,23 @@ spec: template: pod-memory-hog - name: pod-cpu-hog template: pod-cpu-hog + - name: pod-network-loss + template: pod-network-loss - - name: pod-delete template: pod-delete - - name: pod-network-loss - template: pod-network-loss + template: pod-network-loss - - name: revert-chaos template: revert-chaos - + - name: delete-application + template: delete-application + - name: delete-loadtest + template: delete-loadtest + - name: install-application container: image: litmuschaos/litmus-app-deployer:latest - args: ["-namespace=sock-shop","-typeName=resilient", "-timeout=400"] + args: ["-namespace=sock-shop","-typeName=resilient","-operation=apply","-timeout=400"] #for resilient provide type flagName as resilient(-typeName=resilient) - name: install-pod-delete inputs: @@ -69,6 +75,8 @@ spec: - apiGroups: - "" - "apps" + - "apps.openshift.io" + - "argoproj.io" - "batch" - "litmuschaos.io" resources: @@ -76,8 +84,15 @@ spec: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - - "configmaps" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -88,6 +103,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" - apiGroups: - "" resources: @@ -104,19 +120,23 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '15' + value: '30' # Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' # provide the kill count - - name: KILL_COUNT - value: '' - name: FORCE value: 'true' - name: CHAOS_INTERVAL value: '5' + - name: PODS_AFFECTED_PERC + value: '' - name: LIB - value: 'litmus' + value: 'litmus' + - name: TARGET_PODS + value: '' + - name: SEQUENCE + value: 'parallel' labels: name: pod-delete container: @@ -148,12 +168,23 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" - "events" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "chaosengines" - "chaosexperiments" - "chaosresults" @@ -164,6 +195,7 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: @@ -173,29 +205,30 @@ spec: - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '' + value: '30' - name: CHAOS_INTERVAL value: '10' - ## Number of CPU cores to stress - name: CPU_CORES value: '1' - ## Percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - - name: LIB value: 'litmus' - - - name: TARGET_POD + ## It is used in pumba lib only + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: TARGET_PODS value: '' - + - name: SEQUENCE + value: 'parallel' labels: name: pod-cpu-hog container: @@ -227,11 +260,22 @@ spec: - apiGroups: - "" - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" - "litmuschaos.io" resources: - "jobs" - "pods" - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" - "events" - "chaosengines" - "chaosexperiments" @@ -243,7 +287,9 @@ spec: - "patch" - "update" - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always args: - -c - ./experiments -name pod-memory-hog @@ -252,30 +298,31 @@ spec: env: - name: TOTAL_CHAOS_DURATION value: '30' - - name: CHAOS_INTERVAL value: '10' - ## enter the amount of memory in megabytes to be consumed by the application pod - name: MEMORY_CONSUMPTION value: '500' - ## percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' - ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME value: '' - ## env var that describes the library used to execute the chaos ## default: litmus. Supported values: litmus, powerfulseal, chaoskube - name: LIB value: 'litmus' - - - name: TARGET_POD + - name: LIB_IMAGE + value: 'litmuschaos/go-runner:latest' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + ## 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 container: @@ -286,6 +333,101 @@ spec: "kubectl apply -f /tmp/pod-memory-hog.yaml -n {{workflow.parameters.adminModeNamespace}}", ] + - name: install-pod-network-loss + inputs: + artifacts: + - name: install-pod-network-loss + path: /tmp/pod-network-loss.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + description: + message: | + Injects network packet loss on pods belonging to an app deployment + kind: ChaosExperiment + metadata: + name: pod-network-loss + spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name pod-network-loss + command: + - /bin/bash + + env: + - name: TARGET_CONTAINER + value: '' + - 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: '30' # in seconds + - name: RAMP_TIME + value: '' + - name: LIB + value: 'litmus' + - name: PODS_AFFECTED_PERC + value: '' + - name: TARGET_PODS + value: '' + - name: CONTAINER_RUNTIME + value: 'docker' + - name: DESTINATION_IPS + value: '' + - name: DESTINATION_HOSTS + value: '' + - name: SOCKET_PATH + value: '/var/run/docker.sock' + - name: SEQUENCE + value: 'parallel' + labels: + name: pod-network-loss + container: + image: lachlanevenson/k8s-kubectl + command: [sh, -c] + args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] + - name: pod-cpu-hog inputs: artifacts: @@ -343,22 +485,17 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - - - name: NODE_CPU_CORE + #number of cpu cores to be consumed + #verify the resources the app has been launched with + - name: CPU_CORES value: '1' - - name: TOTAL_CHAOS_DURATION - value: '' # in seconds - - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - name: pod-memory-hog inputs: artifacts: @@ -416,15 +553,11 @@ spec: components: experimentImage: "litmuschaos/go-runner:latest" env: - - name: TARGET_CONTAINER - value: '' - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds - - name: CHAOS_KILL_COMMAND - value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" - + value: '30' # in seconds + container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] @@ -448,7 +581,6 @@ spec: appkind: 'deployment' annotationCheck: 'false' engineState: 'active' - auxiliaryAppInfo: '' chaosServiceAccount: litmus-admin monitoring: true jobCleanUpPolicy: 'retain' @@ -490,7 +622,7 @@ spec: components: env: - name: TOTAL_CHAOS_DURATION - value: '10' + value: '30' # set chaos interval (in sec) as desired - name: CHAOS_INTERVAL @@ -502,105 +634,6 @@ spec: container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - - - name: install-pod-network-loss - inputs: - artifacts: - - name: install-pod-network-loss - path: /tmp/pod-network-loss.yaml - raw: - data: | - apiVersion: litmuschaos.io/v1alpha1 - description: - message: | - Injects network packet loss on pods belonging to an app deployment - kind: ChaosExperiment - metadata: - name: pod-network-loss - spec: - definition: - scope: Namespaced - permissions: - - apiGroups: - - "" - - "batch" - - "litmuschaos.io" - resources: - - "jobs" - - "pods" - - "pods/log" - - "events" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "create" - - "list" - - "get" - - "patch" - - "update" - - "delete" - - "deletecollection" - image: "litmuschaos/go-runner:latest" - imagePullPolicy: Always - args: - - -c - - ./experiments -name pod-network-loss - command: - - /bin/bash - - env: - - name: TARGET_CONTAINER - value: '' - - - 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 - - - name: RAMP_TIME - value: '' - - - name: LIB - value: 'litmus' - - - name: PODS_AFFECTED_PERC - value: '' - - - name: TARGET_POD - value: '' - - - name: CONTAINER_RUNTIME - value: 'docker' - - - name: TARGET_IPS - value: '' - - - name: TARGET_HOSTS - value: '' - - - name: SOCKET_PATH - value: '/run/containerd/containerd.sock' - - - name: SEQUENCE - value: 'parallel' - - labels: - name: pod-network-loss - container: - image: lachlanevenson/k8s-kubectl - command: [sh, -c] - args: [ "kubectl apply -f /tmp/pod-network-loss.yaml -n {{workflow.parameters.adminModeNamespace}}",] - name: pod-network-loss inputs: @@ -647,14 +680,21 @@ spec: interval: 1 retry: 2 probePollingInterval: 1 + - name: "check-probe-success" + type: "promProbe" + promProbe/inputs: + endpoint: "http://prometheus.monitoring.svc.cluster.local:9090" + query: "sum(rate(request_duration_seconds_count{job='sock-shop/front-end',route='/',status_code='200'}[20s]))*100" + comparator: + criteria: ">=" #supports >=,<=,>,<,==,!= comparision + value: "500" + mode: "Edge" + runProperties: + probeTimeout: 5 + interval: 5 + retry: 1 components: env: - - name: TARGET_CONTAINER - value: '' - - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' - - name: TOTAL_CHAOS_DURATION value: '30' @@ -663,21 +703,28 @@ spec: - name: NETWORK_PACKET_LOSS_PERCENTAGE value: '100' - - name: CONTAINER_RUNTIME value: 'docker' - - name: SOCKET_PATH value: '/var/run/docker.sock' container: image: litmuschaos/litmus-checker:latest - args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] - + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: delete-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=sock-shop","-typeName=resilient","-operation=delete"] - name: load-test container: image: litmuschaos/litmus-app-deployer:latest args: ["-namespace=loadtest"] + + - name: delete-loadtest + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace=loadtest","-operation=delete"] - name: revert-chaos container: From edcfa96b79340a6571c3e666e71ed3b34c48e14c Mon Sep 17 00:00:00 2001 From: oumkale Date: Thu, 18 Feb 2021 15:40:33 +0530 Subject: [PATCH 7/7] predefined workflow Signed-off-by: oumkale --- workflows/sock-shop-demo/usingCmdProbe/workflow.yaml | 10 +++++++--- .../sock-shop-demo/usingCmdProbe/workflow_cron.yaml | 10 +++++++--- workflows/sock-shop-demo/usingPromProbe/workflow.yaml | 9 +++++++-- .../sock-shop-demo/usingPromProbe/workflow_cron.yaml | 4 ++++ 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml index a2fe6fc..737e00a 100644 --- a/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow.yaml @@ -487,6 +487,8 @@ spec: value: '1' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -555,6 +557,8 @@ spec: value: '500' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -600,8 +604,8 @@ spec: responseCode: "200" mode: "Continuous" runProperties: - probeTimeout: 2 - interval: 1 + probeTimeout: 5 + interval: 2 retry: 2 probePollingInterval: 1 - name: "check-benchmark" @@ -677,7 +681,7 @@ spec: runProperties: probeTimeout: 2 interval: 1 - retry: 2 + retry: 1 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" diff --git a/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml index b9f3779..b61d077 100644 --- a/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingCmdProbe/workflow_cron.yaml @@ -465,7 +465,7 @@ spec: runProperties: probeTimeout: 2 interval: 1 - retry: 2 + retry: 1 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" @@ -491,6 +491,8 @@ spec: value: '1' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -535,7 +537,7 @@ spec: runProperties: probeTimeout: 2 interval: 1 - retry: 2 + retry: 1 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" @@ -559,6 +561,8 @@ spec: value: '500' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -606,7 +610,7 @@ spec: runProperties: probeTimeout: 2 interval: 1 - retry: 2 + retry: 1 probePollingInterval: 1 - name: "check-benchmark" type: "cmdProbe" diff --git a/workflows/sock-shop-demo/usingPromProbe/workflow.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml index 95bf186..c7f0198 100644 --- a/workflows/sock-shop-demo/usingPromProbe/workflow.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow.yaml @@ -122,7 +122,7 @@ spec: - name: FORCE value: 'true' - name: CHAOS_INTERVAL - value: '10' + value: '5' - name: PODS_AFFECTED_PERC value: '' - name: LIB @@ -485,6 +485,8 @@ spec: value: '1' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -551,6 +553,9 @@ spec: value: '500' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -596,7 +601,7 @@ spec: responseCode: "200" mode: "Continuous" runProperties: - probeTimeout: 2 + probeTimeout: 3 interval: 1 retry: 2 probePollingInterval: 1 diff --git a/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml index a0cf8c3..0ac6a01 100644 --- a/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml +++ b/workflows/sock-shop-demo/usingPromProbe/workflow_cron.yaml @@ -491,6 +491,8 @@ spec: value: '1' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[md5sum] /dev/zero\" | awk '{print$1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest @@ -557,6 +559,8 @@ spec: value: '500' - name: TOTAL_CHAOS_DURATION value: '30' # in seconds + - name: CHAOS_KILL_COMMAND + value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')" container: image: litmuschaos/litmus-checker:latest