Dmitriy Rabotyagov 9b16df267a Add quorum queues support for service
This change implements and enables by default quorum support
for rabbitmq as well as providing default variables to globally tune
it's behaviour.

In order to ensure upgrade path and ability to switch back to HA queues
we change vhost names with removing leading `/`, as enabling quorum
requires to remove exchange which is tricky thing to do with running
services.

Change-Id: I49f9a18430f4912fe3e2fda36da6ad2acf6dde35
2023-10-20 12:32:00 +00:00

76 lines
4.2 KiB
Django/Jinja

[DEFAULT]
enabled_apis = masakari_api
transport_url = {{ masakari_oslomsg_rpc_transport }}://{% for host in masakari_oslomsg_rpc_servers.split(',') %}{{ masakari_oslomsg_rpc_userid }}:{{ masakari_oslomsg_rpc_password }}@{{ host }}:{{ masakari_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ _masakari_oslomsg_rpc_vhost_conf }}{% if masakari_oslomsg_rpc_use_ssl | bool %}?ssl=1&ssl_version={{ masakari_oslomsg_rpc_ssl_version }}&ssl_ca_file={{ masakari_oslomsg_rpc_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
# Enable to specify listening IP other than default
masakari_api_listen = {{ masakari_api_bind_address }}
# Enable to specify port other than default
masakari_api_listen_port = {{ masakari_api_service_port }}
debug = False
use_journal = true
auth_strategy = keystone
notification_driver = taskflow_driver
# Nova endpoint
nova_catalog_admin_info = compute:nova:adminURL
nova_api_insecure = "{{ keystone_service_adminuri_insecure | default("false") }}"
# Privileged credentials to interact with nova
os_privileged_user_tenant = {{ masakari_service_project_name }}
os_privileged_user_auth_url = {{ keystone_service_adminuri }}
os_privileged_user_name = {{ masakari_service_user_name }}
os_privileged_user_password = {{ masakari_service_password }}
service_down_time = 60
periodic_enable = true
{% if masakari_backend_ssl | bool %}
use_ssl = True
ssl_cert_file = {{ masakari_ssl_cert }}
ssl_key_file = {{ masakari_ssl_key }}
{% endif %}
[wsgi]
# The paste configuration file path
api_paste_config = {{ masakari_etc_dir }}/api-paste.ini
[keystone_authtoken]
auth_url = {{ keystone_service_adminuri }}
www_authenticate_uri = {{ keystone_service_internaluri }}
auth_type = password
project_domain_id = {{ masakari_service_user_domain_id }}
user_domain_id = {{ masakari_service_project_domain_id }}
project_name = {{ masakari_service_project_name }}
username = {{ masakari_service_user_name }}
password = {{ masakari_service_password }}
service_token_roles = {{ masakari_service_token_roles | join(',') }}
service_token_roles_required = {{ masakari_service_token_roles_required | bool }}
service_type = {{ masakari_service_type }}
memcached_servers = {{ masakari_memcached_servers }}
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcached_encryption_key }}
[database]
connection = mysql+pymysql://{{ masakari_galera_user }}:{{ masakari_container_mysql_password }}@{{ masakari_galera_address }}:{{ masakari_galera_port }}/{{ masakari_galera_database }}?charset=utf8{% if masakari_galera_use_ssl | bool %}&ssl_verify_cert=true{% if masakari_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ masakari_galera_ssl_ca_cert }}{% endif %}{% endif +%}
max_overflow = {{ masakari_db_max_overflow }}
max_pool_size = {{ masakari_db_max_pool_size }}
pool_timeout = {{ masakari_db_pool_timeout }}
connection_recycle_time = {{ masakari_db_connection_recycle_time }}
[taskflow]
connection = mysql+pymysql://{{ masakari_galera_user }}:{{ masakari_container_mysql_password }}@{{ masakari_galera_address }}:{{ masakari_galera_port }}/{{ masakari_galera_database }}?charset=utf8{% if masakari_galera_use_ssl | bool %}&ssl_verify_cert=true{% if masakari_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ masakari_galera_ssl_ca_cert }}{% endif %}{% endif %}
[host_failure]
evacuate_all_instances = true
add_reserved_host_to_aggregate = false
ignore_instances_in_error_state = false
[instance_failure]
process_all_instances = false
[oslo_messaging_rabbit]
ssl = {{ masakari_oslomsg_notify_use_ssl | bool }}
rabbit_quorum_queue = {{ masakari_oslomsg_rabbit_quorum_queues }}
rabbit_quorum_delivery_limit = {{ masakari_oslomsg_rabbit_quorum_delivery_limit }}
rabbit_quorum_max_memory_bytes = {{ masakari_oslomsg_rabbit_quorum_max_memory_bytes }}
[oslo_messaging_notifications]
transport_url = {{ masakari_oslomsg_notify_transport }}://{% for host in masakari_oslomsg_notify_servers.split(',') %}{{ masakari_oslomsg_notify_userid }}:{{ masakari_oslomsg_notify_password }}@{{ host }}:{{ masakari_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ _masakari_oslomsg_notify_vhost_conf }}{% if masakari_oslomsg_notify_use_ssl | bool %}?ssl=1&ssl_version={{ masakari_oslomsg_notify_ssl_version }}&ssl_ca_file={{ masakari_oslomsg_notify_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}