kolla-ansible/ansible/roles/etcd/tasks/bootstrap_services.yml
Jan Gutter ae21f31785 etcd: deduplicate environments for containers
* etcd service containers usually have a set of
  environment parameters required to boot the container.
* The short-lived etcd bootstrap containers pass extra
  ETCD_INITIAL_* environment variables, but still need to
  pass the ones that the service containers use.
* This uses ansible's `combine` filter to cut down on the
  duplication.
* This is intended to be just a straightforward refactor.

Change-Id: I04e95f92a8f365553afd618d58b99de595d48312
2023-11-29 17:43:22 +00:00

37 lines
1.2 KiB
YAML

---
- name: Add new member to etcd cluster
vars:
service_name: "etcd"
service: "{{ etcd_services[service_name] }}"
become: true
command: >-
{{ kolla_container_engine }} exec {{ service.container_name }}
etcdctl member add {{ ansible_facts.hostname }}
--peer-urls={{ etcd_protocol }}://{{ 'api' | kolla_address(inventory_hostname) | put_address_in_context('url') }}:{{ etcd_peer_port }}
delegate_to: "{{ etcd_cluster_leader | default(groups[service.group][0]) }}"
- name: Bootstrapping etcd containers
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_service_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_client_port
until: check_etcd_client_port is success
retries: 10
delay: 6