Update to use oslo.messaging service 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. This patch: * Add oslo.messaging variables for RPC and Notify to defaults * Update transport_url generation in conf * Add oslo.messaging to tests inventory and update tests * Install extra packages for optional drivers * Add release note Change-Id: I0612252927f81b3584054f6cd77a2826c5d3fc3b
This commit is contained in:
parent
44037f0c1b
commit
cfddca21eb
|
@ -24,7 +24,8 @@ Required Variables
|
|||
.. code-block:: yaml
|
||||
|
||||
cloudkitty_service_password
|
||||
cloudkitty_rabbitmq_password
|
||||
cloudkitty_oslomsg_rpc_password
|
||||
cloudkitty_oslomsg_notify_password
|
||||
cloudkitty_container_mysql_password
|
||||
cloudkitty_galera_address
|
||||
|
||||
|
@ -44,7 +45,8 @@ Example Playbook
|
|||
cloudkitty_galera_address: "{{ internal_lb_vip_address }}"
|
||||
cloudkitty_container_mysql_password: "SuperSecretePassword1"
|
||||
cloudkitty_service_password: "SuperSecretePassword2"
|
||||
cloudkitty_rabbitmq_password: "SuperSecretePassword3"
|
||||
cloudkitty_oslomsg_rpc_password: "SuperSecretePassword3"
|
||||
cloudkitty_oslomsg_notify_password: "SuperSecretePassword4"
|
||||
|
||||
Documentation for the project can be found at:
|
||||
https://docs.openstack.org/openstack-ansible-os_cloudkitty/latest/
|
||||
|
|
|
@ -28,11 +28,24 @@ cloudkitty_pip_package_state: "latest"
|
|||
|
||||
cloudkitty_service_user_name: cloudkitty
|
||||
|
||||
cloudkitty_rabbitmq_userid: cloudkitty
|
||||
cloudkitty_rabbitmq_vhost: /cloudkitty
|
||||
cloudkitty_rabbitmq_port: 5672
|
||||
cloudkitty_rabbitmq_servers: 127.0.0.1
|
||||
cloudkitty_rabbitmq_use_ssl: False
|
||||
## Oslo Messaging info
|
||||
|
||||
# RPC
|
||||
cloudkitty_oslomsg_rpc_transport: rabbit
|
||||
cloudkitty_oslomsg_rpc_servers: 127.0.0.1
|
||||
cloudkitty_oslomsg_rpc_port: 5672
|
||||
cloudkitty_oslomsg_rpc_use_ssl: False
|
||||
cloudkitty_oslomsg_rpc_userid: cloudkitty
|
||||
cloudkitty_oslomsg_rpc_vhost: /cloudkitty
|
||||
|
||||
# Notify
|
||||
cloudkitty_oslomsg_notify_transport: rabbit
|
||||
cloudkitty_oslomsg_notify_servers: 127.0.0.1
|
||||
cloudkitty_oslomsg_notify_port: 5672
|
||||
cloudkitty_oslomsg_notify_use_ssl: False
|
||||
cloudkitty_oslomsg_notify_userid: "{{ cloudkitty_oslomsg_rpc_userid }}"
|
||||
cloudkitty_oslomsg_notify_password: "{{ cloudkitty_oslomsg_rpc_password }}"
|
||||
cloudkitty_oslomsg_notify_vhost: "{{ cloudkitty_oslomsg_rpc_vhost }}"
|
||||
|
||||
cloudkitty_system_group_name: cloudkitty
|
||||
cloudkitty_system_user_name: cloudkitty
|
||||
|
@ -117,6 +130,13 @@ cloudkitty_pip_packages:
|
|||
- SQLAlchemy>=1.0.10
|
||||
- tooz
|
||||
|
||||
## (Qdrouterd) integration
|
||||
# TODO(ansmith): Change structure when more backends will be supported
|
||||
cloudkitty_oslomsg_amqp1_enabled: "{{ cloudkitty_oslomsg_rpc_transport == 'amqp' }}"
|
||||
|
||||
cloudkitty_optional_oslomsg_amqp1_pip_packages:
|
||||
- oslo.messaging[amqp1]
|
||||
|
||||
# This variable is used by the repo_build process to determine
|
||||
# which host group to check for members of before building the
|
||||
# pip packages required by this role. The value is picked up
|
||||
|
|
|
@ -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.
|
||||
- cloudkitty_oslomsg_rpc_servers replaces rabbitmq_servers
|
||||
- cloudkitty_oslomsg_rpc_port replaces rabbitmq_port
|
||||
- cloudkitty_oslomsg_rpc_userid replaces rabbitmq_userid
|
||||
- cloudkitty_oslomsg_rpc_vhost replaces rabbitmq_vhost
|
||||
- cloudkitty_oslomsg_rpc_use_ssl replaces rabbitmq_use_ssl
|
||||
- added cloudkitty_oslomsg_notify_servers
|
||||
- added cloudkitty_oslomsg_notify_port
|
||||
- added cloudkitty_oslomsg_notify_use_ssl
|
||||
- added cloudkitty_oslomsg_notify_userid
|
||||
- added cloudkitty_oslomsg_notify_vhost
|
|
@ -132,3 +132,20 @@
|
|||
- skip_ansible_lint
|
||||
- cloudkitty-install
|
||||
- cloudkitty-pip-packages
|
||||
|
||||
- name: Install optional pip packages
|
||||
pip:
|
||||
name: "{{ cloudkitty_optional_oslomsg_amqp1_pip_packages }}"
|
||||
state: "{{ cloudkitty_pip_package_state }}"
|
||||
virtualenv: "{{ cloudkitty_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
when: cloudkitty_oslomsg_amqp1_enabled
|
||||
register: install_optional_packages
|
||||
until: install_optional_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
notify:
|
||||
- Restart cloudkitty services
|
||||
tags:
|
||||
- cloudkitty-install
|
||||
- cloudkitty-pip-packages
|
||||
|
|
|
@ -6,8 +6,8 @@ use_stderr = False
|
|||
debug = {{ debug }}
|
||||
notification_topics = {{ cloudkitty_notification_topics }}
|
||||
|
||||
## RabbitMQ RPC
|
||||
transport_url = rabbit://{% for host in cloudkitty_rabbitmq_servers.split(',') %}{{ cloudkitty_rabbitmq_userid }}:{{ cloudkitty_rabbitmq_password }}@{{ host }}:{{ cloudkitty_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ cloudkitty_rabbitmq_vhost }}{% endif %}{% endfor %}
|
||||
## Oslo Messaging RPC
|
||||
transport_url = {{ cloudkitty_oslomsg_rpc_transport }}://{% for host in cloudkitty_oslomsg_rpc_servers.split(',') %}{{ cloudkitty_oslomsg_rpc_userid }}:{{ cloudkitty_oslomsg_rpc_password }}@{{ host }}:{{ cloudkitty_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ cloudkitty_oslomsg_rpc_vhost }}{% if (cloudkitty_oslomsg_rpc_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
[api]
|
||||
port = {{ cloudkitty_service_port }}
|
||||
|
@ -47,7 +47,10 @@ auth_section = keystone_authtoken
|
|||
[oslo_messaging_qpid]
|
||||
|
||||
[oslo_messaging_rabbit]
|
||||
ssl = {{ cloudkitty_rabbitmq_use_ssl }}
|
||||
ssl = {{ cloudkitty_oslomsg_notify_use_ssl | bool }}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ cloudkitty_oslomsg_notify_transport }}://{% for host in cloudkitty_oslomsg_notify_servers.split(',') %}{{ cloudkitty_oslomsg_notify_userid }}:{{ cloudkitty_oslomsg_notify_password }}@{{ host }}:{{ cloudkitty_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ cloudkitty_oslomsg_notify_vhost }}{% if (cloudkitty_oslomsg_notify_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
[output]
|
||||
pipeline = {{ cloudkitty_output_pipeline }}
|
||||
|
@ -65,4 +68,4 @@ backend = {{ cloudkitty_output_backend }}
|
|||
auth_section = keystone_authtoken
|
||||
|
||||
[orchestrator]
|
||||
coordination_url = mysql://{{ cloudkitty_galera_user }}:{{ cloudkitty_container_mysql_password }}@{{ cloudkitty_galera_address }}/{{ cloudkitty_galera_database }}
|
||||
coordination_url = mysql://{{ cloudkitty_galera_user }}:{{ cloudkitty_container_mysql_password }}@{{ cloudkitty_galera_address }}/{{ cloudkitty_galera_database }}
|
||||
|
|
|
@ -7,6 +7,12 @@ openstack1 ansible_host=10.100.100.3 ansible_become=True ansible_user=root
|
|||
service1
|
||||
openstack1
|
||||
|
||||
[oslomsg_rpc_all]
|
||||
service1
|
||||
|
||||
[oslomsg_notify_all]
|
||||
service1
|
||||
|
||||
[rabbitmq_all]
|
||||
service1
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@ cloudkitty_requirements_git_install_branch: master
|
|||
cloudkitty_galera_address: "{{ hostvars[groups['galera_all'][0]]['ansible_host'] }}"
|
||||
cloudkitty_container_mysql_password: "SuperSecrete"
|
||||
cloudkitty_service_password: "secrete"
|
||||
cloudkitty_rabbitmq_password: "secrete"
|
||||
cloudkitty_rabbitmq_userid: cloudkitty
|
||||
cloudkitty_rabbitmq_vhost: /cloudkitty
|
||||
cloudkitty_oslomsg_rpc_password: "secrete"
|
||||
cloudkitty_oslomsg_rpc_userid: cloudkitty
|
||||
cloudkitty_oslomsg_rpc_vhost: /cloudkitty
|
||||
cloudkitty_oslomsg_notify_password: "secrete"
|
||||
cloudkitty_oslomsg_notify_userid: cloudkitty
|
||||
cloudkitty_oslomsg_notify_vhost: /cloudkitty
|
||||
|
|
|
@ -18,22 +18,13 @@
|
|||
remote_user: root
|
||||
gather_facts: true
|
||||
pre_tasks:
|
||||
- name: Ensure Rabbitmq vhost
|
||||
rabbitmq_vhost:
|
||||
name: "{{ cloudkitty_rabbitmq_vhost }}"
|
||||
state: "present"
|
||||
delegate_to: "{{ hostvars[groups['rabbitmq_all'][0]]['ansible_host'] }}"
|
||||
- name: Ensure rabbitmq user
|
||||
rabbitmq_user:
|
||||
user: "{{ cloudkitty_rabbitmq_userid }}"
|
||||
password: "{{ cloudkitty_rabbitmq_password }}"
|
||||
vhost: "{{ cloudkitty_rabbitmq_vhost }}"
|
||||
configure_priv: ".*"
|
||||
read_priv: ".*"
|
||||
write_priv: ".*"
|
||||
state: "present"
|
||||
no_log: true
|
||||
delegate_to: "{{ hostvars[groups['rabbitmq_all'][0]]['ansible_host'] }}"
|
||||
- include: common/ensure-oslomsg.yml
|
||||
rpc_vhost: "{{ cloudkitty_oslomsg_rpc_vhost }}"
|
||||
rpc_user: "{{ cloudkitty_oslomsg_rpc_userid }}"
|
||||
rpc_password: "{{ cloudkitty_oslomsg_rpc_password }}"
|
||||
notify_vhost: "{{ cloudkitty_oslomsg_notify_vhost }}"
|
||||
notify_user: "{{ cloudkitty_oslomsg_notify_userid }}"
|
||||
notify_password: "{{ cloudkitty_oslomsg_notify_password }}"
|
||||
roles:
|
||||
- role: "os_cloudkitty"
|
||||
vars_files:
|
||||
|
|
Loading…
Reference in New Issue