From 9625cb41fc9546c90ad7216553e68ff16863c848 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Wed, 6 Jun 2018 11:47:58 -0400 Subject: [PATCH] Update to use oslo.messaging services for RPC and Notify This introduces oslo.messaging variables that define the RPC and Notify transports for the OpenStack services. These parameters replace the rabbitmq values and are used to generate the messaging transport_url for the service. The association of the messaging backend server to the oslo.messaging service will be transparent to the designate service. This patch: * Add oslo.messaging variables for RPC and Notify to defaults * Update transport_url generation (add for notification) * Add oslo.messaging to tests inventory * Update tests * Add releaes note * Update README and example playbook Change-Id: I620a13e1ea3c24c8bd31c02206613d37d769dd30 --- defaults/main.yml | 22 ++++++++++++++----- doc/source/index.rst | 3 ++- examples/playbook.yml | 3 ++- ...ng-separate-backends-87f2d1a15c202f73.yaml | 20 +++++++++++++++++ templates/designate.conf.j2 | 7 ++++-- tests/inventory | 6 +++++ tests/os_designate-overrides.yml | 18 ++++++++++----- tests/test-install-designate.yml | 11 ++++++---- 8 files changed, 71 insertions(+), 19 deletions(-) create mode 100644 releasenotes/notes/oslo-messaging-separate-backends-87f2d1a15c202f73.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 5d68e67..9559d4a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -67,12 +67,24 @@ designate_galera_database: designate designate_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" designate_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('/etc/ssl/certs/galera-ca.pem') }}" +## Oslo Messaging +# RPC +designate_oslomsg_rpc_transport: rabbit +designate_oslomsg_rpc_servers: 127.0.0.1 +designate_oslomsg_rpc_port: 5672 +designate_oslomsg_rpc_use_ssl: False +designate_oslomsg_rpc_userid: designate-rpc +designate_oslomsg_rpc_vhost: /designate + +# Notify +designate_oslomsg_notify_transport: rabbit +designate_oslomsg_notify_servers: 127.0.0.1 +designate_oslomsg_notify_port: 5672 +designate_oslomsg_notify_use_ssl: False +designate_oslomsg_notify_userid: designate-notify +designate_oslomsg_notify_vhost: /designate + ## RabbitMQ info -designate_rabbitmq_userid: designate -designate_rabbitmq_vhost: /designate -designate_rabbitmq_servers: 127.0.0.1 -designate_rabbitmq_use_ssl: False -designate_rabbitmq_port: 5672 ## Pool Configuration Defaults designate_pool_uuid: 794ccc2c-d751-44fe-b57f-8894c9f5c842 diff --git a/doc/source/index.rst b/doc/source/index.rst index 3c606c4..d7da832 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -39,7 +39,8 @@ This role needs the following variables defined: designate_galera_address designate_galera_password designate_service_password - designate_rabbitmq_password + designate_oslomsg_rpc_password + designate_oslomsg_notify_password Example playbook ~~~~~~~~~~~~~~~~ diff --git a/examples/playbook.yml b/examples/playbook.yml index 6d0ca94..7a697db 100644 --- a/examples/playbook.yml +++ b/examples/playbook.yml @@ -9,4 +9,5 @@ designate_galera_address: "{{ internal_lb_vip_address }}" designate_galera_password: "SuperSecretePassword1" designate_service_password: "SuperSecretePassword3" - designate_rabbitmq_password: "SuperSecretePassword4" + designate_oslomsg_rpc_password: "SuperSecretePassword4" + designate_oslomsg_notify_password: "SuperSecretePassword5" diff --git a/releasenotes/notes/oslo-messaging-separate-backends-87f2d1a15c202f73.yaml b/releasenotes/notes/oslo-messaging-separate-backends-87f2d1a15c202f73.yaml new file mode 100644 index 0000000..e7fa7f2 --- /dev/null +++ b/releasenotes/notes/oslo-messaging-separate-backends-87f2d1a15c202f73.yaml @@ -0,0 +1,20 @@ +--- +features: + - Support separate oslo.messaging services for RPC and Notifications + to enable operation of separate and different messaging backend servers. +deprecations: + - | + The rabbitmq server parameters have been replaced by corresponding + oslo.messaging RPC and Notify parameters in order to abstract the + messaging service from the actual backend server deployment. + - designate_oslomsg_rpc_servers replaces designate_rabbitmq_servers + - designate_oslomsg_rpc_port replaces designate_rabbitmq_port + - designate_oslomsg_rpc_use_ssl replaces designate_rabbitmq_use_ssl + - designate_oslomsg_rpc_userid replaces designate_rabbitmq_userid + - designate_oslomsg_rpc_vhost replaces designate_rabbitmq_vhost + - designate_oslomsg_notify_servers replaces designate_rabbitmq_telemetry_servers + - designate_oslomsg_notify_port replaces designate_rabbitmq_telemetry_port + - designate_oslomsg_notify_use_ssl replaces designate_rabbitmq_telemetry_use_ssl + - designate_oslomsg_notify_userid replaces designate_rabbitmq_telemetry_userid + - designate_oslomsg_notify_vhost replaces designate_rabbitmq_telemetry_vhost + - designate_oslomsg_notify_password replaces designate_rabbitmq_telemetry_password diff --git a/templates/designate.conf.j2 b/templates/designate.conf.j2 index df144fb..e00196d 100644 --- a/templates/designate.conf.j2 +++ b/templates/designate.conf.j2 @@ -29,14 +29,17 @@ root_helper = sudo designate-rootwrap /etc/designate/rootwrap.conf #network_api = neutron ## RabbitMQ RPC -transport_url = rabbit://{% for host in designate_rabbitmq_servers.split(',') %}{{ designate_rabbitmq_userid }}:{{ designate_rabbitmq_password }}@{{ host }}:{{ designate_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ designate_rabbitmq_vhost }}{% endif %}{% endfor %} +transport_url = {{ designate_oslomsg_rpc_transport }}://{% for host in designate_oslomsg_rpc_servers.split(',') %}{{ designate_oslomsg_rpc_userid }}:{{ designate_oslomsg_rpc_password }}@{{ host }}:{{ designate_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ designate_oslomsg_rpc_vhost }}{% if designate_oslomsg_rpc_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} # RabbitMQ Config [oslo_messaging_rabbit] -ssl = {{ designate_rabbitmq_use_ssl }} +ssl = {{ designate_oslomsg_rpc_use_ssl }} rabbit_notification_exchange = designate rabbit_notification_topic = notifications +[oslo_messaging_notifications] +transport_url = {{ designate_oslomsg_notify_transport }}://{% for host in designate_oslomsg_notify_servers.split(',') %}{{ designate_oslomsg_notify_userid }}:{{ designate_oslomsg_notify_password }}@{{ host }}:{{ designate_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ designate_oslomsg_notify_vhost }}{% if designate_oslomsg_notify_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} + ######################## ## Service Configuration ######################## diff --git a/tests/inventory b/tests/inventory index 6f274c4..504e232 100644 --- a/tests/inventory +++ b/tests/inventory @@ -47,6 +47,12 @@ rabbitmq_all galera_all memcached_all +[oslomsg_rpc_all] +infra1 + +[oslomsg_notify_all] +infra1 + [rabbitmq_all] infra1 diff --git a/tests/os_designate-overrides.yml b/tests/os_designate-overrides.yml index 22e9ba0..9466bbd 100644 --- a/tests/os_designate-overrides.yml +++ b/tests/os_designate-overrides.yml @@ -21,12 +21,18 @@ designate_galera_address: "{{ hostvars[groups['galera_all'][0]]['ansible_host'] designate_galera_database: designate designate_galera_user: designate designate_galera_password: "SuperSecrete" -designate_rabbitmq_password: "secrete" -designate_rabbitmq_userid: designate -designate_rabbitmq_vhost: /designate -designate_rabbitmq_servers: "{{ rabbitmq_servers }}" -designate_rabbitmq_use_ssl: "{{ rabbitmq_use_ssl }}" -designate_rabbitmq_port: "{{ rabbitmq_port }}" +designate_oslomsg_rpc_password: "secrete" +designate_oslomsg_rpc_userid: designate-rpc +designate_oslomsg_rpc_vhost: /designate +designate_oslomsg_rpc_servers: "{{ oslomsg_rpc_servers }}" +designate_oslomsg_rpc_use_ssl: "{{ oslomsg_rpc_use_ssl }}" +designate_oslomsg_rpc_port: "{{ oslomsg_rpc_port }}" +designate_oslomsg_notify_password: "secrete" +designate_oslomsg_notify_userid: designate-notify +designate_oslomsg_notify_vhost: /designate +designate_oslomsg_notify_servers: "{{ oslomsg_notify_servers }}" +designate_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl }}" +designate_oslomsg_notify_port: "{{ oslomsg_notify_port }}" designate_pools_yaml: - name: "default" description: Default BIND9 Pool diff --git a/tests/test-install-designate.yml b/tests/test-install-designate.yml index 930c8c6..36b542f 100644 --- a/tests/test-install-designate.yml +++ b/tests/test-install-designate.yml @@ -18,10 +18,13 @@ user: root gather_facts: true pre_tasks: - - include: common/ensure-rabbitmq.yml - vhost_name: "{{ designate_rabbitmq_vhost }}" - user_name: "{{ designate_rabbitmq_userid }}" - user_password: "{{ designate_rabbitmq_password }}" + - include: common/ensure-oslomsg.yml + rpc_vhost: "{{ designate_oslomsg_rpc_vhost }}" + rpc_user: "{{ designate_oslomsg_rpc_userid }}" + rpc_password: "{{ designate_oslomsg_rpc_password }}" + notify_vhost: "{{ designate_oslomsg_notify_vhost }}" + notify_user: "{{ designate_oslomsg_notify_userid }}" + notify_password: "{{ designate_oslomsg_notify_password }}" - include: common/create-grant-db.yml db_name: "{{ designate_galera_user }}" db_password: "{{ designate_galera_password }}"