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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 counter_add_member: "{{ item.0 }}"
20 etcd_address_add_member: "{{ item.1 }}"
23 expected_etcd_number: "{{ counter_add_member | int + 2 }}"
26 current_cluster_size: 0
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"
31 until: result.stdout.find('true') != -1
36 - name: etcd docker id
37 shell: "docker ps | grep etcd | grep -v pause | awk -F' ' '{ print $1 }'"
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
48 etcd_container_id_outer: "{{ etcd_container_id_add_member.stdout }}"
50 - import_tasks: try_add_member.yml
51 until: current_cluster_size|int >= expected_etcd_number
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"
58 until: result.stdout.find('true') != -1