f33c54192c5a79ae7c27721df79cf761f8e6038f
[ta/caas-etcd.git] / ansible / roles / etcd / tasks / add_member.yml
1 ---
2 # Copyright 2019 Nokia
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 - set_fact:
17     counter_add_member: "{{ item.0 }}"
18
19 - set_fact:
20     etcd_address_add_member: "{{ item.1 }}"
21
22 - set_fact:
23     expected_etcd_number: "{{ counter_add_member | int + 2 }}"
24
25 - set_fact:
26     current_cluster_size: 0
27
28 - name: wait for healthy cluster
29   shell: "/usr/bin/curl https://{{ ansible_host }}:{{ caas.etcd_api_port }}/health --cacert /etc/etcd/ssl/ca.pem --cert /etc/etcd/ssl/etcd{{ nodeindex }}.pem --key /etc/etcd/ssl/etcd{{ nodeindex }}-key.pem"
30   register: result
31   until: result.stdout.find('true') != -1
32   retries: 50
33   delay: 6
34   become_user: "root"
35
36 - name: etcd docker id
37   shell: "docker ps --no-trunc | grep etcd | grep -v pause | grep -v grpc-proxy | awk -F' ' '{ print $1 }'"
38   environment:
39     DOCKER_HOST: "tcp://{{ networking.infra_internal.ip }}:2375"
40     DOCKER_TLS_VERIFY: "1"
41     DOCKER_CERT_PATH: "/etc/docker"
42   register: etcd_container_id_add_member
43   until: etcd_container_id_add_member.stdout
44   retries: 50
45   delay: 6
46
47 - set_fact:
48     etcd_container_id_outer: "{{ etcd_container_id_add_member.stdout }}"
49
50 - import_tasks: try_add_member.yml
51   until: current_cluster_size|int >= expected_etcd_number
52   retries: 10
53   delay: 5
54
55 - name: wait for healthy cluster
56   shell: "/usr/bin/curl https://{{ ansible_host }}:{{ caas.etcd_api_port }}/health --cacert /etc/etcd/ssl/ca.pem --cert /etc/etcd/ssl/etcd{{ nodeindex }}.pem --key /etc/etcd/ssl/etcd{{ nodeindex }}-key.pem"
57   register: result
58   until: result.stdout.find('true') != -1
59   retries: 50
60   delay: 5
61   become_user: "root"
62