apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: argowf-chaos-kube-proxy-all- namespace: litmus labels: subject: "{{workflow.parameters.appNamespace}}_kube-proxy" spec: entrypoint: argowf-chaos serviceAccountName: argo-chaos securityContext: runAsUser: 1000 runAsNonRoot: true arguments: parameters: - name: adminModeNamespace value: litmus - name: appNamespace value: "kube-system" - name: contextCPUHog value: "node-cpu-hog_infra" - name: contextMemoryHog value: "node-memory-hog_infra" templates: - name: argowf-chaos steps: - - name: install-chaos-experiments template: install-chaos-experiments - - name: node-cpu-hog template: node-cpu-hog - name: pod-memory-hog template: pod-memory-hog - - name: pod-cpu-hog template: pod-cpu-hog - name: node-memory-hog template: node-memory-hog - - name: pod-delete template: pod-delete - - name: revert-kube-proxy-chaos template: revert-kube-proxy-chaos - name: install-chaos-experiments container: image: litmuschaos/k8s:latest command: [sh, -c] args: - "kubectl apply -f https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/experiments.yaml -n {{workflow.parameters.adminModeNamespace}} | sleep 30" - name: node-cpu-hog inputs: artifacts: - name: node-cpu-hog path: /tmp/chaosengine-node-cpu-hog.yaml raw: data: | apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: name: kube-proxy-node-cpu-hog namespace: {{workflow.parameters.adminModeNamespace}} labels: context: {{workflow.parameters.contextCPUHog}} spec: jobCleanUpPolicy: retain engineState: 'active' chaosServiceAccount: litmus-admin experiments: - name: node-cpu-hog spec: components: env: - name: NODE_CPU_CORE value: '1' - name: TOTAL_CHAOS_DURATION value: '60' # in seconds container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine-node-cpu-hog.yaml","-saveName=/tmp/engine-name"] - name: pod-memory-hog inputs: artifacts: - name: pod-memory-hog path: /tmp/chaosengine-pod-memory-hog.yaml raw: data: | apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: name: kube-proxy-pod-memory-hog-chaos namespace: {{workflow.parameters.adminModeNamespace}} labels: context: "{{workflow.parameters.appNamespace}}_kube-proxy" spec: appinfo: appns: kube-system applabel: "k8s-app=kube-proxy" appkind: daemonset jobCleanUpPolicy: retain engineState: 'active' chaosServiceAccount: litmus-admin experiments: - name: pod-memory-hog spec: components: env: - name: TARGET_CONTAINER value: 'kube-proxy' - name: MEMORY_CONSUMPTION value: '500' - name: TOTAL_CHAOS_DURATION value: '60' # in seconds - name: CHAOS_KILL_COMMAND value: "kill $(find /proc -name exe -lname '*/dd' 2>&1 | grep -v 'Permission denied' | awk -F/ '{print $(NF-1)}' | head -n 1)" container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine-pod-memory-hog.yaml","-saveName=/tmp/engine-name"] - name: pod-cpu-hog inputs: artifacts: - name: pod-cpu-hog path: /tmp/chaosengine-pod-cpu-hog.yaml raw: data: | apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: name: kube-proxy-pod-cpu-hog-chaos namespace: {{workflow.parameters.adminModeNamespace}} labels: context: "{{workflow.parameters.appNamespace}}_kube-proxy" spec: appinfo: appns: kube-system applabel: "k8s-app=kube-proxy" appkind: daemonset jobCleanUpPolicy: retain engineState: 'active' chaosServiceAccount: litmus-admin experiments: - name: pod-cpu-hog spec: components: env: - name: TARGET_CONTAINER value: 'kube-proxy' - name: CPU_CORES value: '1' - name: TOTAL_CHAOS_DURATION value: '60' # in seconds - name: CHAOS_KILL_COMMAND value: "kill $(find /proc -name exe -lname '*/md5sum' 2>&1 | grep -v 'Permission denied' | awk -F/ '{print $(NF-1)}' | head -n 1)" container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine-pod-cpu-hog.yaml","-saveName=/tmp/engine-name"] - name: node-memory-hog inputs: artifacts: - name: node-memory-hog path: /tmp/chaosengine-node-memory-hog.yaml raw: data: | apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: name: kube-proxy-node-memory-hog-chaos namespace: {{workflow.parameters.adminModeNamespace}} labels: context: {{workflow.parameters.contextMemoryHog}} spec: jobCleanUpPolicy: retain engineState: 'active' chaosServiceAccount: litmus-admin experiments: - name: node-memory-hog spec: components: env: - name: MEMORY_PERCENTAGE value: '50' - name: TOTAL_CHAOS_DURATION value: '60' # in seconds container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine-node-memory-hog.yaml","-saveName=/tmp/engine-name"] - name: pod-delete inputs: artifacts: - name: pod-delete path: /tmp/chaosengine-pod-delete.yaml raw: data: | apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: name: kube-proxy-pod-delete-chaos namespace: {{workflow.parameters.adminModeNamespace}} labels: context: "{{workflow.parameters.appNamespace}}_kube-proxy" spec: appinfo: appns: kube-system applabel: "k8s-app=kube-proxy" appkind: daemonset jobCleanUpPolicy: retain engineState: 'active' chaosServiceAccount: litmus-admin experiments: - name: pod-delete spec: components: env: - name: TOTAL_CHAOS_DURATION value: "60" - name: CHAOS_INTERVAL value: "10" - name: FORCE value: "false" container: image: litmuschaos/litmus-checker:latest args: ["-file=/tmp/chaosengine-pod-delete.yaml","-saveName=/tmp/engine-name"] - name: revert-kube-proxy-chaos container: image: litmuschaos/k8s:latest command: [sh, -c] args: - "kubectl delete chaosengines kube-proxy-node-cpu-hog kube-proxy-pod-memory-hog-chaos kube-proxy-pod-cpu-hog-chaos kube-proxy-node-memory-hog-chaos kube-proxy-pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}"