From b9208cd178cab27438831b0d16b337c54c53090b Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Thu, 26 Jul 2018 18:58:25 +0100 Subject: [PATCH] Fix etcd when Kuryr is disabled This is because the environment variable ETCD_INITIAL_CLUSTER contains compute nodes, which are not running etcd. Compute nodes are in the etcd group to allow for kuryr, which needs etcd to be running on compute nodes (why???). When kuryr is disabled, etcd is not deployed on these hosts (using host_in_groups). However, the ETCD_INITIAL_CLUSTER environment variable always includes all hosts in the etcd group. This change sets ETCD_INITIAL_CLUSTER correctly in both cases. Change-Id: I11f812d3fdacf0eeb8236f9a39d673aaa480dd26 Closes-Bug: #1783963 --- ansible/roles/etcd/defaults/main.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ansible/roles/etcd/defaults/main.yml b/ansible/roles/etcd/defaults/main.yml index 914a96deb0..dec8eb24cf 100644 --- a/ansible/roles/etcd/defaults/main.yml +++ b/ansible/roles/etcd/defaults/main.yml @@ -14,16 +14,12 @@ etcd_services: ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}" ETCD_LISTEN_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}" ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}" - ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}" + ETCD_INITIAL_CLUSTER: "{% for host in etcd_hosts %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}" ETCD_INITIAL_CLUSTER_STATE: "new" ETCD_OUT_FILE: "/var/log/kolla/etcd/etcd.log" KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" image: "{{ etcd_image_full }}" - host_in_groups: >- - {{ - inventory_hostname in groups['control'] - or (enable_kuryr | bool and inventory_hostname in groups['compute']) - }} + host_in_groups: "{{ inventory_hostname in etcd_hosts }}" volumes: - "{{ node_config_directory }}/etcd/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" @@ -39,3 +35,6 @@ etcd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_nam etcd_tag: "{{ openstack_release }}" etcd_image_full: "{{ etcd_image }}:{{ etcd_tag }}" etcd_dimensions: "{{ default_container_dimensions }}" + +# List of hosts running etcd. +etcd_hosts: "{{ groups['control'] + (groups['compute'] if enable_kuryr | bool else []) }}"