From 75b0e5e8ef839fba82ab10745149590d706bd496 Mon Sep 17 00:00:00 2001 From: OUM NIVRATHI KALE Date: Mon, 12 Apr 2021 12:05:08 +0530 Subject: [PATCH] chore(pre-define workflow): Added podtato-head workflow (#434) * podtato-head workflow added Signed-off-by: Oum Kale * podtato-head predefined workflow Signed-off-by: Oum Kale Co-authored-by: Shubham Chaudhary --- workflows/podtato-head/workflow.yaml | 111 +++++++++++++++++++++ workflows/podtato-head/workflow_cron.yaml | 115 ++++++++++++++++++++++ 2 files changed, 226 insertions(+) create mode 100644 workflows/podtato-head/workflow.yaml create mode 100644 workflows/podtato-head/workflow_cron.yaml diff --git a/workflows/podtato-head/workflow.yaml b/workflows/podtato-head/workflow.yaml new file mode 100644 index 0000000..be0d28b --- /dev/null +++ b/workflows/podtato-head/workflow.yaml @@ -0,0 +1,111 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: argowf-podtato-head-chaos- + 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: install-chaos-experiments + template: install-chaos-experiments + - - name: pod-delete + template: pod-delete + - - name: revert-chaos + template: revert-chaos + - name: delete-application + template: delete-application + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=apply","-timeout=400", "-app=podtato-head"] + + - name: install-chaos-experiments + container: + image: alpine/k8s:1.18.2 + command: [sh, -c] + args: + - "kubectl apply -f https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/experiments.yaml -n + {{workflow.parameters.adminModeNamespace}} ; sleep 30" + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: podtato-head-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: {{workflow.parameters.adminModeNamespace}} + applabel: 'app=podtato-head' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-podtato-head-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://podtato.{{workflow.parameters.adminModeNamespace}}.svc.cluster.local:9000" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 1 + interval: 1 + retry: 1 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + # set chaos interval (in sec) as desired + - name: CHAOS_INTERVAL + value: '10' + # pod failures without '--force' & default terminationGracePeriodSeconds + - name: FORCE + value: 'false' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: delete-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=delete","-app=podtato-head"] + + - name: revert-chaos + container: + image: alpine/k8s:1.18.2 + command: [sh, -c] + args: + [ + "kubectl delete chaosengine podtato-head-pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file diff --git a/workflows/podtato-head/workflow_cron.yaml b/workflows/podtato-head/workflow_cron.yaml new file mode 100644 index 0000000..d272bdb --- /dev/null +++ b/workflows/podtato-head/workflow_cron.yaml @@ -0,0 +1,115 @@ +apiVersion: argoproj.io/v1alpha1 +kind: CronWorkflow +metadata: + name: argowf-podtato-head-chaos-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: install-chaos-experiments + template: install-chaos-experiments + - - name: pod-delete + template: pod-delete + - - name: revert-chaos + template: revert-chaos + - name: delete-application + template: delete-application + + - name: install-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=apply","-timeout=400", "-app=podtato-head"] + + - name: install-chaos-experiments + container: + image: alpine/k8s:1.18.2 + command: [sh, -c] + args: + - "kubectl apply -f https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/experiments.yaml -n + {{workflow.parameters.adminModeNamespace}} ; sleep 30" + + - name: pod-delete + inputs: + artifacts: + - name: pod-delete + path: /tmp/chaosengine.yaml + raw: + data: | + apiVersion: litmuschaos.io/v1alpha1 + kind: ChaosEngine + metadata: + name: podtato-head-pod-delete-chaos + namespace: {{workflow.parameters.adminModeNamespace}} + spec: + appinfo: + appns: {{workflow.parameters.adminModeNamespace}} + applabel: 'app=podtato-head' + appkind: 'deployment' + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: litmus-admin + jobCleanUpPolicy: 'retain' + components: + runner: + imagePullPolicy: Always + experiments: + - name: pod-delete + spec: + probe: + - name: "check-podtato-head-access-url" + type: "httpProbe" + httpProbe/inputs: + url: "http://podtato.{{workflow.parameters.adminModeNamespace}}.svc.cluster.local:9000" + insecureSkipVerify: false + method: + get: + criteria: "==" + responseCode: "200" + mode: "Continuous" + runProperties: + probeTimeout: 1 + interval: 1 + retry: 1 + components: + env: + - name: TOTAL_CHAOS_DURATION + value: '30' + # set chaos interval (in sec) as desired + - name: CHAOS_INTERVAL + value: '10' + # pod failures without '--force' & default terminationGracePeriodSeconds + - name: FORCE + value: 'false' + container: + image: litmuschaos/litmus-checker:latest + args: ["-file=/tmp/chaosengine.yaml","-saveName=/tmp/engine-name"] + + - name: delete-application + container: + image: litmuschaos/litmus-app-deployer:latest + args: ["-namespace={{workflow.parameters.adminModeNamespace}}","-typeName=resilient","-operation=delete","-app=podtato-head"] + + - name: revert-chaos + container: + image: alpine/k8s:1.18.2 + command: [sh, -c] + args: + [ + "kubectl delete chaosengine podtato-head-pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}", + ] \ No newline at end of file