From 34ddb73f03dbcd4ffaf5e1de8b409a783830f70c Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Tue, 24 Apr 2018 12:47:22 -0400 Subject: [PATCH] Update to use oslo.messaging service 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 services will then be transparent to the heat service. This patch: * Add oslo.messaging variables for RPC and Notify to defaults * Update transport_url generation * Add oslo.messaging to inventory * Add release note Depends-On: If4326a6848d2d32af284fdbb94798eb0b03734d5 Depends-On: I2b09145b60116c029fc85477399c24f94974b61d Change-Id: I4ee0a94028e7390b319d4e1ceb4ab7f7c28ad9ba --- defaults/main.yml | 31 +++++++++---------- ...ng-separate-backends-4491e7c099bee4f5.yaml | 21 +++++++++++++ templates/heat.conf.j2 | 4 +-- tests/inventory | 6 ++++ 4 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 releasenotes/notes/oslo-messaging-separate-backends-4491e7c099bee4f5.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 8b3a41b..3980c23 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -56,23 +56,22 @@ heat_galera_database: heat heat_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" heat_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('/etc/ssl/certs/galera-ca.pem') }}" -## RabbitMQ info - -## Configuration for RPC communications -heat_rabbitmq_userid: heat -heat_rabbitmq_vhost: /heat -heat_rabbitmq_servers: 127.0.0.1 -heat_rabbitmq_use_ssl: False -heat_rabbitmq_port: 5672 - -## Configuration for notifications communication, i.e. [oslo_messaging_notifications] -heat_rabbitmq_telemetry_userid: "{{ heat_rabbitmq_userid }}" -heat_rabbitmq_telemetry_password: "{{ heat_rabbitmq_password }}" -heat_rabbitmq_telemetry_vhost: "{{ heat_rabbitmq_vhost }}" -heat_rabbitmq_telemetry_port: "{{ heat_rabbitmq_port }}" -heat_rabbitmq_telemetry_servers: "{{ heat_rabbitmq_servers }}" -heat_rabbitmq_telemetry_use_ssl: "{{ heat_rabbitmq_use_ssl }}" +## Oslo Messaging Info +# RPC +heat_oslomsg_rpc_transport: rabbit +heat_oslomsg_rpc_servers: 127.0.0.1 +heat_oslomsg_rpc_port: 5672 +heat_oslomsg_rpc_use_ssl: False +heat_oslomsg_rpc_userid: heat +heat_oslomsg_rpc_vhost: /heat +# Notify +heat_oslomsg_notify_transport: rabbit +heat_oslomsg_notify_servers: 127.0.0.1 +heat_oslomsg_notify_port: 5672 +heat_oslomsg_notify_use_ssl: False +heat_oslomsg_notify_userid: heat +heat_oslomsg_notify_vhost: /heat ## Heat User / Group heat_system_user_name: heat diff --git a/releasenotes/notes/oslo-messaging-separate-backends-4491e7c099bee4f5.yaml b/releasenotes/notes/oslo-messaging-separate-backends-4491e7c099bee4f5.yaml new file mode 100644 index 0000000..4b44cc7 --- /dev/null +++ b/releasenotes/notes/oslo-messaging-separate-backends-4491e7c099bee4f5.yaml @@ -0,0 +1,21 @@ +--- +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. + - heat_oslomsg_rpc_servers replaces heat_rabbitmq_servers + - heat_oslomsg_rpc_port replaces heat_rabbitmq_port + - heat_oslomsg_rpc_use_ssl replaces heat_rabbitmq_use_ssl + - heat_oslomsg_rpc_userid replaces heat_rabbitmq_userid + - heat_oslomsg_rpc_vhost replaces heat_rabbitmq_vhost + - heat_oslomsg_rpc_password replaces heat_rabbitmq_password + - heat_oslomsg_notify_servers replaces heat_rabbitmq_telemetry_servers + - heat_oslomsg_notify_port replaces heat_rabbitmq_telemetry_port + - heat_oslomsg_notify_use_ssl replaces heat_rabbitmq_telemetry_use_ssl + - heat_oslomsg_notify_userid replaces heat_rabbitmq_telemetry_userid + - heat_oslomsg_notify_vhost replaces heat_rabbitmq_telemetry_vhost + - heat_oslomsg_notify_password replaces heat_rabbitmq_telemetry_password diff --git a/templates/heat.conf.j2 b/templates/heat.conf.j2 index 0c9375b..bf5e0ed 100644 --- a/templates/heat.conf.j2 +++ b/templates/heat.conf.j2 @@ -23,7 +23,7 @@ auth_encryption_key = {{ heat_auth_encryption_key }} num_engine_workers = {{ heat_engine_workers | default(heat_api_threads) }} ## RPC Backend -transport_url = rabbit://{% for host in heat_rabbitmq_servers.split(',') %}{{ heat_rabbitmq_userid }}:{{ heat_rabbitmq_password }}@{{ host }}:{{ heat_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ heat_rabbitmq_vhost }}{% endif %}{% endfor %} +transport_url = {{ heat_oslomsg_rpc_transport }}://{% for host in heat_oslomsg_rpc_servers.split(',') %}{{ heat_oslomsg_rpc_userid }}:{{ heat_oslomsg_rpc_password }}@{{ host }}:{{ heat_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ heat_oslomsg_rpc_vhost }}{% if heat_oslomsg_rpc_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} ## Plugin dirs plugin_dirs = {{ heat_plugin_dirs | join(',') }} @@ -70,7 +70,7 @@ enable_proxy_headers_parsing = True {% if heat_ceilometer_enabled %} [oslo_messaging_notifications] driver = messagingv2 -transport_url = rabbit://{% for host in heat_rabbitmq_telemetry_servers.split(',') %}{{ heat_rabbitmq_telemetry_userid }}:{{ heat_rabbitmq_telemetry_password }}@{{ host }}:{{ heat_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ heat_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %} +transport_url = {{ heat_oslomsg_notify_transport }}://{% for host in heat_oslomsg_notify_servers.split(',') %}{{ heat_oslomsg_notify_userid }}:{{ heat_oslomsg_notify_password }}@{{ host }}:{{ heat_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ heat_oslomsg_notify_vhost }}{% if heat_oslomsg_notify_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} {% endif %} diff --git a/tests/inventory b/tests/inventory index 98aa9cd..0256f53 100644 --- a/tests/inventory +++ b/tests/inventory @@ -7,6 +7,12 @@ openstack1 infra1 openstack1 +[oslomsg_rpc_all] +infra1 + +[oslomsg_notify_all] +infra1 + [rabbitmq_all] infra1