forked from litmuschaos/chaos-charts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexperiment_cron.yaml
178 lines (169 loc) · 5.98 KB
/
experiment_cron.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
name: argo-chaos-hello-world-pod-delete-cron-wf
labels:
subject: "{{workflow.parameters.adminModeNamespace}}_hello-world"
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-chaos-faults
template: install-chaos-faults
- - name: run-chaos
template: run-chaos
- - name: cleanup-chaos-resources
template: cleanup-chaos-resources
- name: install-chaos-faults
inputs:
artifacts:
- name: install-chaos-faults
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.docker.scarf.sh/litmuschaos/go-runner:3.11.0"
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'
labels:
name: pod-delete
container:
image: litmuschaos/k8s:latest
resources:
limits:
memory: 128Mi
cpu: 50m
command: [sh, -c]
args:
[
"kubectl apply -f /tmp/pod-delete.yaml -n {{workflow.parameters.adminModeNamespace}}",
]
- name: run-chaos
inputs:
artifacts:
- name: run-chaos
path: /tmp/chaosengine.yaml
raw:
data: |
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: pod-delete-chaos
namespace: "{{workflow.parameters.adminModeNamespace}}"
labels:
context: "{{workflow.parameters.adminModeNamespace}}_hello-world"
annotations: {}
spec:
appinfo:
appns: {{workflow.parameters.adminModeNamespace}}
applabel: 'app=hello-world'
appkind: deployment
jobCleanUpPolicy: retain
engineState: 'active'
chaosServiceAccount: litmus-namespace-admin
experiments:
- name: pod-delete
spec:
components:
resources:
requests:
memory: 128Mi
cpu: 50m
limits:
memory: 128Mi
cpu: 50m
env:
- name: TOTAL_CHAOS_DURATION
value: "30"
- name: CHAOS_INTERVAL
value: "10"
- name: FORCE
value: "false"
container:
image: litmuschaos/litmus-checker:latest
resources:
limits:
memory: 128Mi
cpu: 50m
args:
- -file=/tmp/chaosengine.yaml
- -saveName=/tmp/engine-name
- name: cleanup-chaos-resources
container:
image: litmuschaos/k8s:latest
resources:
limits:
memory: 128Mi
cpu: 50m
command: [sh, -c]
args:
- "kubectl delete chaosengine pod-delete-chaos -n {{workflow.parameters.adminModeNamespace}}"