blob: 1b15158ee46c4c8ab326b1eb868254626600c26c [file] [log] [blame]
---
# This role will install Kafka with Zookeeper in group 'kafka' in the environment inventory
- name: create zookeeper deployment
shell: "kubectl apply -f {{kube_pod_dir}}/zookeeper.yml"
- name: create kafka deployment
shell: "kubectl apply -f {{kube_pod_dir}}/kafka.yml"
- name: get zookeeper pods
shell: "kubectl -n openwhisk get pods --show-all | grep zookeeper | awk '{print $1}'"
register: zookeeperPods
until: zookeeperPods.stdout != ""
retries: 5
delay: 2
- name: set zookeeper pods
set_fact:
zookeeper_pods: "{{ zookeeperPods.stdout_lines }}"
- name: get kafka pods
shell: "kubectl -n openwhisk get pods --show-all | grep kafka | awk '{print $1}'"
register: kafkaPods
until: kafkaPods.stdout != ""
retries: 5
delay: 2
- name: set kafka pods
set_fact:
kafka_pods: "{{ kafkaPods.stdout_lines }}"
- name: wait until the Zookeeper in this host is up and running
shell: "kubectl -n openwhisk exec {{ item[0] }} -c zookeeper -- bash -c 'echo ruok | nc -w 3 0.0.0.0:{{ zookeeper.port }}'"
register: result
until: (result.rc == 0) and (result.stdout == 'imok')
retries: 36
delay: 5
with_nested:
- ["{{ zookeeper_pods }}"]
- name: wait until the kafka server started up
shell: "kubectl -n openwhisk logs {{ item[0] }} -c kafka"
register: result
until: ('[Kafka Server 0], started' in result.stdout)
retries: 10
delay: 5
with_nested:
- ["{{ kafka_pods }}"]
- name: create the active-ack and health topic
shell: "kubectl exec {{ item[0] }} -c kafka -- bash -c 'unset JMX_PORT; kafka-topics.sh --create --topic {{ item[1] }} --replication-factor 1 --partitions 1 --zookeeper {{ zookeeper_host }}:{{ zookeeper.port }}'"
register: command_result
failed_when: "not ('Created topic' in command_result.stdout or 'already exists' in command_result.stdout)"
with_nested:
- "{{ kafka_pods }}"
- [ 'command', 'health' ]
- name: define invoker list
set_fact:
invoker_list: []
- name: create the invoker list
set_fact:
invoker_list: "{{invoker_list}} + [{{item}}]"
with_sequence: start=0 count={{ invoker_count }}
- name: create the invoker topics
shell: " kubectl exec {{ item[0] }} -c kafka -- bash -c 'unset JMX_PORT; kafka-topics.sh --create --topic invoke{{ item[1] }} --replication-factor 1 --partitions 1 --zookeeper {{ zookeeper_host }}:{{ zookeeper.port }}'"
register: command_result
failed_when: "not ('Created topic' in command_result.stdout or 'already exists' in command_result.stdout)"
with_nested:
- "{{ kafka_pods }}"
- "{{ invoker_list }}"