---
- name: Bootstrapping etcd cluster
  vars:
    service_name: "etcd"
    service: "{{ etcd_services[service_name] }}"
  become: true
  kolla_container:
    action: "start_container"
    common_options: "{{ docker_common_options }}"
    environment: "{{ etcd_base_environment | combine(etcd_bootstrap_cluster_environment) }}"
    image: "{{ service.image }}"
    name: "{{ service.container_name }}"
    volumes: "{{ service.volumes }}"
    dimensions: "{{ service.dimensions }}"

- name: Wait for etcd service port liveness
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ etcd_client_port }}"
    connect_timeout: 1
    timeout: 60
  register: check_etcd_port
  until: check_etcd_port is success
  retries: 10
  delay: 6

- name: Wait for etcd endpoints to be healthy
  become: true
  vars:
    service_name: "etcd"
    service: "{{ etcd_services[service_name] }}"
  command: >-
    {{ kolla_container_engine }} exec {{ service.container_name }}
    etcdctl endpoint health
  changed_when: false
  register: result
  until:
    - result is success
    - ((result.stdout | from_json | first)['health'] | default(False) | bool)
  retries: 10
  delay: 6
