From 2b7eb22a8915ab56c572c1fb35bb1f176cc015e4 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Tue, 17 Apr 2018 14:39:32 -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 keystone service. This patch: * Add oslo.messaging variables for RPC and Notify to defaults * Update transport_url generation * Update examples * Add oslo.messaging to inventory * Add release note Depends-On: If4326a6848d2d32af284fdbb94798eb0b03734d5 Depends-On: I2b09145b60116c029fc85477399c24f94974b61d Change-Id: I8d5b09dd0cb905e0dee40e260efbfeff1da180ce --- defaults/main.yml | 33 ++++++++++--------- examples/playbook.yml | 20 +++++++---- ...ng-separate-backends-e68c98d4f9d9a79c.yaml | 19 +++++++++++ templates/keystone.conf.j2 | 9 ++--- tests/inventory | 6 ++++ 5 files changed, 60 insertions(+), 27 deletions(-) create mode 100644 releasenotes/notes/oslo-messaging-separate-backends-e68c98d4f9d9a79c.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 8cfa86c1..a9153184 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -106,23 +106,24 @@ keystone_database_min_pool_size: 5 keystone_database_max_pool_size: 120 keystone_database_pool_timeout: 30 -## RabbitMQ info - -## Configuration for RPC communications +## Oslo Messaging keystone_messaging_enabled: true -keystone_rabbitmq_port: 5671 -keystone_rabbitmq_userid: keystone -keystone_rabbitmq_vhost: /keystone -keystone_rabbitmq_servers: localhost -keystone_rabbitmq_use_ssl: false -## Configuration for notifications communication, i.e. [oslo_messaging_notifications] -keystone_rabbitmq_telemetry_userid: "{{ keystone_rabbitmq_userid }}" -keystone_rabbitmq_telemetry_password: "{{ keystone_rabbitmq_password }}" -keystone_rabbitmq_telemetry_vhost: "{{ keystone_rabbitmq_vhost }}" -keystone_rabbitmq_telemetry_port: "{{ keystone_rabbitmq_port }}" -keystone_rabbitmq_telemetry_servers: "{{ keystone_rabbitmq_servers }}" -keystone_rabbitmq_telemetry_use_ssl: "{{ keystone_rabbitmq_use_ssl }}" +# RPC +keystone_oslomsg_rpc_transport: rabbit +keystone_oslomsg_rpc_servers: 127.0.0.1 +keystone_oslomsg_rpc_port: 5672 +keystone_oslomsg_rpc_use_ssl: False +keystone_oslomsg_rpc_userid: keystone +keystone_oslomsg_rpc_vhost: /keystone + +# Notify +keystone_oslomsg_notify_transport: rabbit +keystone_oslomsg_notify_servers: 127.0.0.1 +keystone_oslomsg_notify_port: 5672 +keystone_oslomsg_notify_use_ssl: False +keystone_oslomsg_notify_userid: keystone +keystone_oslomsg_notify_vhost: /keystone ## Role info keystone_role_name: admin @@ -460,6 +461,8 @@ keystone_policy_overrides: {} keystone_required_secrets: - keystone_auth_admin_password - keystone_container_mysql_password + - keystone_oslomsg_rpc_password + - keystone_oslomsg_notify_password - keystone_rabbitmq_password - keystone_service_password diff --git a/examples/playbook.yml b/examples/playbook.yml index 947c1a5a..c3ae817c 100644 --- a/examples/playbook.yml +++ b/examples/playbook.yml @@ -41,11 +41,19 @@ keystone_git_install_branch: master keystone_auth_admin_password: "SuperSecretePassword" keystone_service_password: "secrete" - keystone_rabbitmq_password: "secrete" + keystone_oslomsg_rpc_password: "secrete" + keystone_oslomsg_notify_password: "secrete" keystone_container_mysql_password: "SuperSecrete" - keystone_rabbitmq_port: 5671 - keystone_rabbitmq_userid: keystone - keystone_rabbitmq_vhost: /keystone - keystone_rabbitmq_servers: 10.100.100.101 - keystone_rabbitmq_use_ssl: true + keystone_oslomsg_rpc_transport: rabbit + keystone_oslomsg_rpc_servers: 10.100.100.101 + keystone_oslomsg_rpc_port: 5671 + keystone_oslomsg_rpc_use_ssl: true + keystone_oslomsg_rpc_userid: keystone + keystone_oslomsg_rpc_vhost: /keystone + keystone_oslomsg_notify_transport: rabbit + keystone_oslomsg_notify_servers: 10.100.100.101 + keystone_oslomsg_notify_port: 5671 + keystone_oslomsg_notify_use_ssl: true + keystone_oslomsg_notify_userid: keystone + keystone_oslomsg_notify_vhost: /keystone galera_client_drop_config_file: false diff --git a/releasenotes/notes/oslo-messaging-separate-backends-e68c98d4f9d9a79c.yaml b/releasenotes/notes/oslo-messaging-separate-backends-e68c98d4f9d9a79c.yaml new file mode 100644 index 00000000..470cfba6 --- /dev/null +++ b/releasenotes/notes/oslo-messaging-separate-backends-e68c98d4f9d9a79c.yaml @@ -0,0 +1,19 @@ +--- +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. + - keystone_oslomsg_rpc_servers replaces keystone_rabbitmq_servers + - keystone_oslomsg_rpc_port replaces keystone_rabbitmq_port + - keystone_oslomsg_rpc_use_ssl replaces keystone_rabbitmq_use_ssl + - keystone_oslomsg_rpc_userid replaces keystone_rabbitmq_userid + - keystone_oslomsg_rpc_vhost replaces keystone_rabbitmq_vhost + - keystone_oslomsg_notify_servers replaces keystone_rabbitmq_telemetry_servers + - keystone_oslomsg_notify_port replaces keystone_rabbitmq_telemetry_port + - keystone_oslomsg_notify_use_ssl replaces keystone_rabbitmq_telemetry_use_ssl + - keystone_oslomsg_notify_userid replaces keystone_rabbitmq_telemetry_userid + - keystone_oslomsg_notify_vhost replaces keystone_rabbitmq_telemetry_vhost diff --git a/templates/keystone.conf.j2 b/templates/keystone.conf.j2 index 92031fec..b6f75132 100644 --- a/templates/keystone.conf.j2 +++ b/templates/keystone.conf.j2 @@ -18,18 +18,15 @@ secure_proxy_ssl_header = {{ keystone_secure_proxy_ssl_header }} log_file = keystone.log log_dir = /var/log/keystone -## RabbitMQ RPC +## Oslo.Messaging RPC {% if keystone_messaging_enabled | bool %} -transport_url = rabbit://{% for host in keystone_rabbitmq_servers.split(',') %}{{ keystone_rabbitmq_userid }}:{{ keystone_rabbitmq_password }}@{{ host }}:{{ keystone_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ keystone_rabbitmq_vhost }}{% endif %}{% endfor %} - -[oslo_messaging_rabbit] -ssl = {{ keystone_rabbitmq_use_ssl }} +transport_url = {{ keystone_oslomsg_rpc_transport }}://{% for host in keystone_oslomsg_rpc_servers.split(',') %}{{ keystone_oslomsg_rpc_userid }}:{{ keystone_oslomsg_rpc_password }}@{{ host }}:{{ keystone_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ keystone_oslomsg_rpc_vhost }}{% if keystone_oslomsg_rpc_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} {% endif %} {% if keystone_ceilometer_enabled %} [oslo_messaging_notifications] driver = messagingv2 -transport_url = rabbit://{% for host in keystone_rabbitmq_telemetry_servers.split(',') %}{{ keystone_rabbitmq_telemetry_userid }}:{{ keystone_rabbitmq_telemetry_password }}@{{ host }}:{{ keystone_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ keystone_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %} +transport_url = {{ keystone_oslomsg_notify_transport }}://{% for host in keystone_oslomsg_notify_servers.split(',') %}{{ keystone_oslomsg_notify_userid }}:{{ keystone_oslomsg_notify_password }}@{{ host }}:{{ keystone_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ keystone_oslomsg_notify_vhost }}{% if keystone_oslomsg_notify_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} {% endif %} {% if keystone_cache_servers | length > 0 %} diff --git a/tests/inventory b/tests/inventory index c8fe17c0..7abcfa64 100644 --- a/tests/inventory +++ b/tests/inventory @@ -9,6 +9,12 @@ infra1 keystone1 keystone2 +[oslomsg_rpc_all] +infra1 + +[oslomsg_notify_all] +infra1 + [rabbitmq_all] infra1