openstack-ansible-os_trove/templates/trove.conf.j2
Dmitriy Rabotyagov 4186873963 Implement variables to address oslo.messaging improvements
During last release cycle oslo.messaging has landed [1] series of extremely
useful changes that are designed to implement modern messaging
techniques for rabbitmq quorum queues.

Since these changes are breaking and require queues being re-created,
it makes total sense to align these with migration to quorum queues by default.

[1] https://review.opendev.org/q/topic:%22bug-2031497%22

Change-Id: Icd659cdf4c817d100668ab9c5639288b63078c38
2024-05-13 09:18:05 +00:00

148 lines
6.1 KiB
Django/Jinja

# {{ ansible_managed }}
[DEFAULT]
debug = {{ debug }}
use_journal = true
{% if trove_use_uwsgi | bool %}
bind_host = {{ trove_service_host }}
bind_port = {{ trove_service_port }}
trove_api_workers={{ trove_api_workers }}
{% endif %}
trove_conductor_workers={{ trove_conductor_workers }}
taskmanager_manager = trove.taskmanager.manager.Manager
transport_url = {{ trove_oslomsg_rpc_transport }}://{% for host in trove_oslomsg_rpc_servers.split(',') %}{{ trove_oslomsg_rpc_userid }}:{{ trove_oslomsg_rpc_password }}@{{ host }}:{{ trove_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ _trove_oslomsg_rpc_vhost_conf }}{% if trove_oslomsg_rpc_use_ssl | bool %}?ssl=1&ssl_version={{ trove_oslomsg_rpc_ssl_version }}&ssl_ca_file={{ trove_oslomsg_rpc_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
{# There must be a blank line above or the following line will be appended to the previous. #}
control_exchange = {{ trove_control_exchange }}
enable_secure_rpc_messaging = {{ trove_enable_secure_rpc_messaging }}
inst_rpc_key_encr_key = {{ trove_inst_rpc_key_encr_key }}
taskmanager_rpc_encr_key = {{ trove_taskmanager_rpc_encr_key }}
instance_rpc_encr_key = {{ trove_instance_rpc_encr_key }}
nova_compute_endpoint_type = {{ trove_service_nova_endpoint_type }}
nova_compute_service_type = compute
glance_endpoint_type = {{ trove_service_glance_endpoint_type }}
trove_endpoint_type = {{ trove_service_endpoint_type }}
# Cinder
trove_volume_support = {{ trove_cinder_enabled }}
max_accepted_volume_size = 100
max_volumes_per_tenant = 1000
cinder_endpoint_type = {{ trove_service_cinder_endpoint_type }}
cinder_service_type = volumev3
# Trove DNS
trove_dns_support = {{ trove_designate_enabled | bool }}
{% if trove_designate_enabled | bool %}
dns_account_id = {{ trove_service_project_name }}
dns_auth_url = {{ trove_auth_url }}
dns_username = {{ trove_service_user_name }}
dns_passkey = {{ trove_service_password }}
dns_region = {{ keystone_service_region }}
dns_user_domain_id = {{ trove_service_user_domain_id }}
dns_project_domain_id = {{ trove_service_project_domain_id }}
dns_ttl = 3600
dns_domain_name = {{ trove_dns_domain_name }}
dns_domain_id = {{ trove_dns_domain_id }}
dns_driver = trove.dns.designate.driver.DesignateDriver
dns_instance_entry_factory = trove.dns.designate.driver.DesignateInstanceEntryFactory
dns_service_type = dns
{% endif %}
# Neutron
network_driver = trove.network.neutron.NeutronDriver
management_networks = {{ trove_service_net_id }}
neutron_endpoint_type = {{ trove_service_neutron_endpoint_type }}
neutron_service_type = network
{% if trove_management_security_groups | length > 0 %}
management_security_groups = {{ trove_management_security_groups | join(',') }}
{% endif %}
{% if trove_swift_enabled is defined %}
# Swift
swift_service_type = object-store
swift_endpoint_type = {{ trove_service_swift_endpoint_type }}
{% endif %}
# Guest related conf
agent_heartbeat_time = 10
agent_call_low_timeout = 5
agent_call_high_timeout = 150
[keystone_authtoken]
insecure = {{ keystone_service_internaluri_insecure | bool }}
auth_type = {{ trove_keystone_auth_plugin }}
auth_url = {{ keystone_service_adminuri }}
www_authenticate_uri = {{ keystone_service_internaluri }}
project_domain_id = {{ trove_service_project_domain_id }}
user_domain_id = {{ trove_service_user_domain_id }}
project_name = {{ trove_service_project_name }}
username = {{ trove_service_user_name }}
password = {{ trove_service_password }}
region_name = {{ keystone_service_region }}
interface = {{ trove_service_endpoint_type }}
service_token_roles_required = {{ trove_service_token_roles_required | bool }}
service_token_roles = {{ trove_service_token_roles | join(',') }}
service_type = {{ trove_service_type }}
memcached_servers = {{ trove_memcached_servers }}
token_cache_time = 300
# if your memcached server is shared, use these settings to avoid cache poisoning
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcached_encryption_key }}
[service_credentials]
auth_url = {{ trove_auth_url }}
username = {{ trove_service_user_name }}
password = {{ trove_service_password }}
project_name = {{ trove_service_project_name }}
region_name = {{ trove_service_region }}
project_domain_name = {{ trove_service_project_domain_name }}
user_domain_name = {{ trove_service_user_domain_name }}
[database]
connection = "{{ trove_galera_connection_string }}"
max_overflow = {{ trove_db_max_overflow }}
max_pool_size = {{ trove_db_max_pool_size }}
pool_timeout = {{ trove_db_pool_timeout }}
connection_recycle_time = {{ trove_db_connection_recycle_time }}
[profiler]
enabled = {{ trove_profiler_enabled }}
#trace_sqlalchemy = True
[ssl]
#cert_file = /path/to/server.crt
#key_file = /path/to/server.key
#optional:
#ca_file = /path/to/ca_file
[oslo_messaging_rabbit]
ssl = {{ trove_oslomsg_rpc_use_ssl }}
rabbit_quorum_queue = {{ trove_oslomsg_rabbit_quorum_queues }}
rabbit_transient_quorum_queue = {{ trove_oslomsg_rabbit_transient_quorum_queues }}
rabbit_qos_prefetch_count = {{ trove_oslomsg_rabbit_qos_prefetch_count }}
use_queue_manager = {{ trove_oslomsg_rabbit_queue_manager }}
rabbit_stream_fanout = {{ trove_oslomsg_rabbit_stream_fanout }}
rabbit_quorum_delivery_limit = {{ trove_oslomsg_rabbit_quorum_delivery_limit }}
rabbit_quorum_max_memory_bytes = {{ trove_oslomsg_rabbit_quorum_max_memory_bytes }}
[oslo_messaging_notifications]
{% set notification_topics = [] %}
{% if trove_oslomsg_notify_configure %}
{% set _ = notification_topics.append('notifications') %}
{% endif %}
{% if trove_designate_enabled %}
{% set _ = notification_topics.append(trove_notifications_designate) %}
{% endif %}
topics = {{ notification_topics | join(',') }}
driver = {{ (notification_topics | length > 0) | ternary('messagingv2', 'noop') }}
transport_url = {{ trove_oslomsg_notify_transport }}://{% for host in trove_oslomsg_notify_servers.split(',') %}{{ trove_oslomsg_notify_userid }}:{{ trove_oslomsg_notify_password }}@{{ host }}:{{ trove_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ _trove_oslomsg_notify_vhost_conf }}{% if trove_oslomsg_notify_use_ssl | bool %}?ssl=1&ssl_version={{ trove_oslomsg_notify_ssl_version }}&ssl_ca_file={{ trove_oslomsg_notify_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}