forked from cloud-bulldozer/benchmark-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
log_generator.yml
111 lines (111 loc) · 4.25 KB
/
log_generator.yml
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
---
apiVersion: batch/v1
kind: Job
metadata:
name: 'log-generator-{{ trunc_uuid }}'
namespace: '{{ operator_namespace }}'
spec:
parallelism: {{ workload_args.pod_count | default(1) | int }}
template:
metadata:
labels:
app: log-generator-{{ trunc_uuid }}
spec:
{% if workload_args.runtime_class is defined %}
runtimeClassName: "{{ workload_args.runtime_class }}"
{% endif %}
{% if workload_args.tolerations is defined %}
tolerations:
- key: {{ workload_args.tolerations.key }}
value: {{ workload_args.tolerations.value }}
effect: {{ workload_args.tolerations.effect }}
{% endif %}
{% if workload_args.label is defined %}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: {{ workload_args.label.key }}
operator: In
values:
- {{ workload_args.label.value }}
{% endif %}
containers:
- image: {{ workload_args.image | default('quay.io/dry923/log_generator:latest') }}
name: log-generator
env:
- name: my_node_name
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: my_pod_name
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: uuid
value: "{{ uuid }}"
- name: test_user
value: "{{ test_user | default("ripsaw") }}"
- name: clustername
value: "{{ clustername }}"
{% if elasticsearch is defined %}
- name: es
value: "{{ elasticsearch.url }}"
- name: es_index
value: "{{ elasticsearch.index_name | default("openshift-cluster-timings") }}"
- name: es_verify_cert
value: "{{ elasticsearch.verify_cert | default(true) }}"
- name: parallel
value: "{{ elasticsearch.parallel | default(false) }}"
{% endif %}
{% if prometheus is defined %}
- name: prom_es
value: "{{ prometheus.es_url }}"
- name: prom_parallel
value: "{{ prometheus.es_parallel | default(false) }}"
- name: prom_token
value: "{{ prometheus.prom_token | default() }}"
- name: prom_url
value: "{{ prometheus.prom_url | default() }}"
{% endif %}
command: ["/bin/sh", "-c"]
args:
- >
{% if workload_args.pod_count | default(1) | int > 1 %}
echo "Waiting for all pods to be Ready";
redis-cli -h {{ bo.resources[0].status.podIP }} INCR "log-generator-{{ trunc_uuid }}" > /dev/null 2>&1;
pods=`redis-cli -h {{ bo.resources[0].status.podIP }} GET "log-generator-{{ trunc_uuid }}"`;
while [[ $pods != {{ workload_args.pod_count | int }} ]]; do
pods=`redis-cli -h {{ bo.resources[0].status.podIP }} GET "log-generator-{{ trunc_uuid }}"`;
sleep 1;
done;
{% endif %}
run_snafu
--tool log_generator
-u "{{ uuid }}"
--size "{{ workload_args.size | default(512) }}"
{% if workload_args.messages_per_second is defined %}
--messages-per-second "{{ workload_args.messages_per_second }}"
{% endif %}
{% if workload_args.messages_per_minute is defined %}
--messages-per-minue "{{ workload_args.messages_per_minute }}"
{% endif %}
--duration "{{ workload_args.duration | default(10) }}"
{% if workload_args.es_url is defined %}
--es-url "{{ workload_args.es_url }}"
--es-token "{{ workload_args.es_token }}"
{% endif %}
{% if workload_args.cloudwatch_log_group is defined %}
--cloudwatch-log-group "{{ workload_args.cloudwatch_log_group }}"
--aws-region "{{ workload_args.aws_region }}"
--aws-access-key "{{ workload_args.aws_access_key }}"
--aws-secret-key "{{ workload_args.aws_secret_key }}"
{% endif %}
--pod-name ${my_pod_name}
--namespace "{{ operator_namespace }}"
--timeout "{{ workload_args.timeout | default(600) }}"
--pod-count {{ workload_args.pod_count | default(1) | int }}
imagePullPolicy: Always
restartPolicy: Never
{% include "metadata.yml.j2" %}