-
Notifications
You must be signed in to change notification settings - Fork 0
/
kafka.yml
209 lines (174 loc) · 4.62 KB
/
kafka.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
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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
---
- hosts: localhost
vars_files:
- files/required-vars.yaml
tasks:
- debug:
var: cluster_name
- name: Check for cluster name and type
fail:
msg: "cluster_name and cluster type must be set"
when: cluster_name is not defined or cluster is not defined
- name: Include secret
include_vars: files/secrets-vars.yaml
- name: Include cluster variables
include_vars: files/{{cluster}}-vars.yaml
- name: Check for required variables
fail:
msg: "{{item}} must be set"
when: item not in hostvars[inventory_hostname]
with_items: "{{required_vars}}"
- name: Configure docker env
template:
src: files/docker.j2
dest: files/docker.env
- name: Pull container
containers.podman.podman_image:
name: quay.io/app-sre/mk-ci-tools
tag: kas-latest
force: true
- name: Run container
containers.podman.podman_container:
name: "{{cluster_name}}"
image: quay.io/app-sre/mk-ci-tools:kas-latest
state: started
command: tail -F anything
env_file: files/docker.env
env:
KAFKA_CLUSTER_NAME={{cluster_name}}
- name: Add container to inventory
tags: always
add_host:
ansible_connection: podman
name: "{{cluster_name}}"
ansible_host: "{{cluster_name}}"
ansible_user: ci
groups: containers
changed_when: false
- name: Set cluster variable in container
tags: always
set_fact:
cluster: "{{cluster}}"
cacheable: yes
delegate_to: "{{cluster_name}}"
delegate_facts: true
- hosts: containers
tasks:
- name: copy Makefile
tags: install
copy:
src: files/Makefile
dest: /home/ci
- name: Create RHOSAK cluster
tags: install
make:
chdir: /home/ci
target: cluster_create
- name: Enable standard mode
tags: install,kafka_create
make:
chdir: /home/ci
target: enable_std
when: cluster != 'dev'
- name: Create kafka cluster
tags: install,kafka_create
make:
chdir: /home/ci
target: kafka_create
- name: Create OMB cluster
tags: install,omb_create
make:
chdir: /home/ci
target: setup_omb
- name: Get OMB client IP
tags: omb_run
shell:
cmd: cd /opt/tools/benchmark/driver-kafka/deploy/hdd-deployment/aws; terraform output client_ssh_host | cut -d'"' -f2
chdir: /home/ci
register: omb_ip
- name: Set OMB client IP on localhost
tags: omb_run
set_fact:
omb_client: "{{omb_ip.stdout}}"
cacheable: yes
delegate_to: localhost
delegate_facts: true
- name: Get oc login Cred
tags: omb_run
shell:
cmd: python3 -u /opt/tools/scripts/ocm.py "oc_login" -c "${KAFKA_CLUSTER_NAME}"|tail -n1|sed -e 's/.*Login Command:\s//'
chdir: /home/ci
register: oc_out
- name: debug oc login
tags: omb_run
debug:
var: oc_out
- name: Set oc login variable on localhost
tags: omb_run
set_fact:
oc_login: "{{oc_out.stdout|replace('\"','')}}"
cacheable: yes
delegate_to: localhost
delegate_facts: true
- name: Copy ssh key from container to host
tags: omb_run
fetch:
src: /tmp/.ssh/kafka_cloud
dest: /root/.ssh/kafka_cloud
flat: yes
- name: Copy ssh pubkey from container to host
tags: omb_run
fetch:
src: /tmp/.ssh/kafka_cloud.pub
dest: /root/.ssh/kafka_cloud.pub
flat: yes
- hosts: localhost
tasks:
- name: Oc login from host
tags: omb_run
shell:
cmd: "{{oc_login}}"
- name: Clone kruize-demos
tags: omb_run
ansible.builtin.git:
repo: https://github.com/yogananth-subramanian/kruize-demos.git
dest: /root/kruize-demos
single_branch: yes
version: kafka
- name: Clone benchmarks
tags: omb_run
ansible.builtin.git:
repo: https://github.com/yogananth-subramanian/benchmarks.git
dest: /root/kruize-demos/benchmarks
single_branch: yes
version: kafka
- name: Run Standalone OMB
tags: omb_run
include_tasks:
file: omb.yml
apply:
tags:
- omb_run
when: not hpo | bool
- name: Run OMB with HPO
tags: omb_run
include_tasks:
file: hpo.yml
apply:
tags:
- omb_run
when: hpo | bool
- hosts: containers
tasks:
- name: Delete Kafka and OMB cluster
tags: cleanup
make:
chdir: /home/ci
target: cluster_delete
- hosts: localhost
tasks:
- name: Remove container
tags: cleanup
containers.podman.podman_container:
name: "{{cluster_name}}"
state: absent