From a618a6ddd36a8264814187b2b337aa05f65ec9b8 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Thu, 24 Nov 2022 13:37:51 +0100 Subject: [PATCH] Add coordination support This patch adds configuration for coordination service when it's available. Depends-On: https://review.opendev.org/c/openstack/ansible-role-zookeeper/+/865449 Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/864750 Change-Id: I632439956f17bbac8987c3429634ebac8b1c3d44 --- defaults/main.yml | 11 +++++++++++ templates/designate.conf.j2 | 5 +++-- vars/main.yml | 7 +++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index e1f5577..8431614 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -59,6 +59,16 @@ designate_system_shell: /bin/false designate_system_comment: designate system user designate_system_user_home: "/var/lib/{{ designate_system_user_name }}" +## Coordination info +designate_coordination_driver: "{{ coordination_driver | default('zookeeper') }}" +designate_coordination_group: "{{ coordination_host_group | default('zookeeper_all') }}" +designate_coordination_enable: "{{ designate_coordination_group in groups and groups[designate_coordination_group] | length > 0 }}" +designate_coordination_namespace: designate +designate_coordination_client_ssl: "{{ coordination_client_ssl | default(False) }}" +designate_coordination_verify_cert: "{{ coordination_verify_cert | default(True) }}" +designate_coordination_port: "{{ coordination_port | default(designate_coordination_client_ssl | ternary('2281', '2181')) }}" +designate_coordination_url: "{{ _designate_coordination_url | default() }}" + ## Database info designate_db_setup_host: "{{ openstack_db_setup_host | default('localhost') }}" designate_db_setup_python_interpreter: "{{ openstack_db_setup_python_interpreter | default((designate_db_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) }}" @@ -192,6 +202,7 @@ designate_pip_packages: - pymemcache - python-memcached - systemd-python + - "tooz[{{ designate_coordination_driver }}]" - warlock designate_user_pip_packages: [] diff --git a/templates/designate.conf.j2 b/templates/designate.conf.j2 index 779223a..a4ecf6e 100644 --- a/templates/designate.conf.j2 +++ b/templates/designate.conf.j2 @@ -452,12 +452,13 @@ connection_recycle_time = {{ designate_db_connection_recycle_time }} [oslo_middleware] enable_proxy_headers_parsing = true +{% if designate_coordination_enable %} ######################## ## Coordination ######################## [coordination] -# URL for the coordination backend to use. -#backend_url = kazoo://127.0.0.1/ +backend_url = {{ designate_coordination_url }} +{% endif %} ######################## ## Hook Points diff --git a/vars/main.yml b/vars/main.yml index 06b1187..cc9372b 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -39,3 +39,10 @@ filtered_designate_services: |- {% endif %} {% endfor %} {{ services | sort(attribute='start_order') }} + +_designate_coordination_url: >- + {{ designate_coordination_driver }}://{{ + groups[designate_coordination_group] + | map('extract', hostvars, 'ansible_host') + | list | join(':' ~ designate_coordination_port ~ ',') + }}:{{ designate_coordination_port }}?namespace={{ designate_coordination_namespace }}{% if designate_coordination_client_ssl | bool %}&use_ssl=True&verify_certs={{ designate_coordination_verify_cert | bool }}{% endif %}