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
This commit is contained in:
Dmitriy Rabotyagov 2022-11-24 13:37:51 +01:00 committed by Dmitriy Rabotyagov
parent f5936a486c
commit a618a6ddd3
3 changed files with 21 additions and 2 deletions

View File

@ -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: []

View File

@ -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

View File

@ -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 %}