Fix Designate not to use etcd coordination backend

etcd via tooz does not support group membership required by
Designate coordination.
The best k-a can do is not to configure etcd in Designate.

Change-Id: I2f64f928e730355142ac369d8868cf9f65ca357e
Closes-bug: #1872205
Related-bug: #1840070
(cherry picked from commit 3c234603a9)
This commit is contained in:
Radosław Piliszek 2020-04-13 17:33:02 +02:00 committed by Mark Goddard
parent d2a0786065
commit 66a2f49358
5 changed files with 20 additions and 14 deletions

View File

@ -854,8 +854,8 @@ designate_backend: "bind9"
designate_ns_record: "sample.openstack.org"
designate_backend_external: "no"
designate_backend_external_bind9_nameservers: ""
# Valid options are [ '', redis, etcd ]
designate_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}"
# Valid options are [ '', redis ]
designate_coordination_backend: "{{ 'redis' if enable_redis|bool else '' }}"
#######################
# Neutron options

View File

@ -115,10 +115,8 @@ policy_file = {{ designate_policy_file }}
[coordination]
{% if designate_coordination_backend == 'redis' %}
backend_url = {{ redis_connection_string }}
{% elif designate_coordination_backend == 'etcd' %}
# NOTE(yoctozepto): etcd-compatible tooz drivers do not support multiple endpoints here (verified in Stein, Train)
# NOTE(yoctozepto): we must use etcd3gw (aka etcd3+http) due to issues with alternative (etcd3) and eventlet (as used by designate)
# see https://bugs.launchpad.net/kolla-ansible/+bug/1854932
# and https://review.opendev.org/466098 for details
backend_url = etcd3+http://{{ hostvars[groups['etcd'][0]]['ansible_' + hostvars[groups['etcd'][0]]['api_interface']]['ipv4']['address'] }}:{{ etcd_client_port }}
{% endif %}
{#
NOTE(yoctozepto): etcd is not supported due to lack of group membership
support via tooz, see https://launchpad.net/bugs/1872205
#}

View File

@ -39,10 +39,11 @@ Configure Designate options in ``/etc/kolla/globals.yml``
.. important::
If multiple nodes are assigned to be Designate workers then you must
enable a supported coordination backend, currently either 'redis' or
'etcd'. The backend choice can be overridden by the
``designate_coordination_backend`` variable.
If multiple nodes are assigned to be Designate workers, then you must
enable a supported coordination backend, currently only ``redis``
is supported. The backend choice can be overridden via the
``designate_coordination_backend`` variable. It defaults to ``redis``
when ``redis`` is enabled (``enable_redis`` is set to ``yes``).
The following additional variables are required depending on which backend you
intend to use:

View File

@ -447,8 +447,8 @@ glance_enable_rolling_upgrade: "no"
# Valid options are [ bind9 ]
#designate_backend: "bind9"
#designate_ns_record: "sample.openstack.org"
# Valid options are [ '', redis, etcd ]
#designate_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}"
# Valid options are [ '', redis ]
#designate_coordination_backend: "{{ 'redis' if enable_redis|bool else '' }}"
########################
# Nova - Compute Options

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fixes ``designate-worker`` not to use ``etcd`` as its coordination backend
because it is not supported by Designate (no group membership support
available via tooz).
`LP#1872205 <https://launchpad.net/bugs/1872205>`__