1664cb0009
The log directory for neutron has the default_t SELinux context and this prevents rsyslog from accessing neutron's logs. This patch ensures that the file contexts are set properly for neutron's logs. This change also makes neutron's log directory configurable using the `neutron_log_dir` variable. Closes-Bug: 1748968 Change-Id: Ifbcca131435c8963cc9c1b85c000cc040fab27ab
283 lines
9.8 KiB
Django/Jinja
283 lines
9.8 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
{% set neutron_plugin_loaded_base = [] %}
|
|
|
|
{% for plugin in neutron_plugin_base %}
|
|
{% if plugin != 'dns' %}
|
|
{% set _ = neutron_plugin_loaded_base.append(plugin) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if (neutron_lbaasv2|bool) and ('neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2' not in neutron_plugin_base) %}
|
|
{% if neutron_octavia_proxy_plugin|bool %}
|
|
{% set _ = neutron_plugin_loaded_base.append("lbaasv2-proxy") %}
|
|
{% else %}
|
|
{% set _ = neutron_plugin_loaded_base.append("lbaasv2") %}
|
|
{% endif %}
|
|
{%- endif -%}
|
|
|
|
# General, applies to all host groups
|
|
[DEFAULT]
|
|
# Disable stderr logging
|
|
use_stderr = False
|
|
debug = {{ debug }}
|
|
fatal_deprecations = {{ neutron_fatal_deprecations }}
|
|
log_file = {{ neutron_log_dir }}/neutron.log
|
|
|
|
## Rpc all
|
|
executor_thread_pool_size = {{ neutron_rpc_thread_pool_size }}
|
|
rpc_response_timeout = {{ neutron_rpc_response_timeout }}
|
|
transport_url = rabbit://{% for host in neutron_rabbitmq_servers.split(',') %}{{ neutron_rabbitmq_userid }}:{{ neutron_rabbitmq_password }}@{{ host }}:{{ neutron_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ neutron_rabbitmq_vhost }}{% endif %}{% endfor %}
|
|
|
|
# Domain to use for building hostnames
|
|
dns_domain = {{ neutron_dns_domain }}
|
|
|
|
{% if neutron_services['neutron-server']['group'] in group_names %}
|
|
|
|
# General, only applies to neutron server host group
|
|
allow_overlapping_ips = True
|
|
vlan_transparent = False
|
|
|
|
# Plugins
|
|
core_plugin = {{ neutron_plugin_core }}
|
|
{% if neutron_plugin_type.split('.')[0] == 'ml2' %}
|
|
service_plugins = {{ neutron_plugin_loaded_base | join(',') }}
|
|
{% endif %}
|
|
|
|
# MAC address generation for VIFs
|
|
base_mac = fa:16:3e:00:00:00
|
|
mac_generation_retries = 16
|
|
|
|
# Authentication method
|
|
auth_strategy = keystone
|
|
|
|
# Drivers
|
|
network_scheduler_driver = {{ neutron_driver_network_scheduler }}
|
|
router_scheduler_driver = {{ neutron_driver_router_scheduler }}
|
|
loadbalancer_pool_scheduler_driver = {{ neutron_driver_loadbalancer_pool_scheduler }}
|
|
|
|
# Schedulers
|
|
network_auto_schedule = True
|
|
router_auto_schedule = True
|
|
|
|
# Distributed virtual routing
|
|
router_distributed = {{ neutron_plugins[neutron_plugin_type].router_distributed | default('False') }}
|
|
enable_dvr = {{ neutron_plugins[neutron_plugin_type].router_distributed | default('False') }}
|
|
|
|
# Agents
|
|
agent_down_time = {{ neutron_agent_down_time }}
|
|
|
|
{% set num_agent = groups[neutron_services['neutron-dhcp-agent']['group']] | length %}
|
|
{% if neutron_plugin_type.split('.')[0] == 'ml2' and num_agent >= 2 %}
|
|
{% if neutron_services['neutron-linuxbridge-agent']['service_en'] | bool or neutron_services['neutron-openvswitch-agent']['service_en'] | bool %}
|
|
|
|
{% set max_l3_router = num_agent if num_agent > 2 else 2 %}
|
|
|
|
# L3HA
|
|
l3_ha = True
|
|
l3_ha_net_cidr = {{ neutron_l3_ha_net_cidr }}
|
|
max_l3_agents_per_router = {{ max_l3_router }}
|
|
{% if neutron_provider_networks.network_mappings_list is defined and ((neutron_provider_networks.network_mappings_list | length) > 0) %}
|
|
ha_network_type = {{ neutron_provider_networks.network_mappings_list[0].split(':')[0] }}
|
|
ha_network_physical_name = {{ neutron_provider_networks.network_mappings_list[0].split(':')[-1] }}
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
# API
|
|
bind_port = 9696
|
|
bind_host = 0.0.0.0
|
|
|
|
# Workers
|
|
api_workers = {{ neutron_api_workers | default(neutron_api_threads) }}
|
|
rpc_workers = {{ neutron_rpc_workers }}
|
|
|
|
{% set dhcp_agents_max = num_agent if num_agent > 2 else 2 %}
|
|
# DHCP
|
|
{% if neutron_plugin_type == 'ml2.dragonflow' %}
|
|
# In dragonflow, DHCP is fully distributed, and DHCP agents are not used
|
|
dhcp_agent_notification = False
|
|
{% else %}
|
|
dhcp_agent_notification = True
|
|
dhcp_agents_per_network = {{ dhcp_agents_max }}
|
|
dhcp_lease_duration = 86400
|
|
{% endif %}
|
|
|
|
# Driver for external DNS integration. (string value)
|
|
{% if neutron_designate_enabled %}
|
|
external_dns_driver = designate
|
|
{% else %}
|
|
#external_dns_driver = <None>
|
|
{% endif %}
|
|
|
|
# Nova notifications
|
|
notify_nova_on_port_status_changes = True
|
|
notify_nova_on_port_data_changes = True
|
|
send_events_interval = 2
|
|
|
|
# End of [DEFAULT] section
|
|
{% if neutron_designate_enabled %}
|
|
|
|
[designate]
|
|
|
|
# required by current dns integration implementation
|
|
url = {{ designate_service_adminurl }}
|
|
|
|
auth_type = {{ designate_keystone_auth_plugin }}
|
|
auth_uri = {{ keystone_service_adminuri }}
|
|
auth_url = {{ keystone_service_adminurl }}
|
|
region_name = {{ designate_service_region }}
|
|
project_domain_id = {{ designate_service_project_domain_id }}
|
|
user_domain_id = {{ designate_service_user_domain_id }}
|
|
project_name = {{ designate_service_project_name }}
|
|
username = {{ designate_service_user_name }}
|
|
password = {{ designate_service_password }}
|
|
|
|
allow_reverse_dns_lookup = {{ neutron_allow_reverse_dns_lookup }}
|
|
ipv4_ptr_zone_prefix_size = {{ neutron_ipv4_ptr_zone_prefix_size }}
|
|
ipv6_ptr_zone_prefix_size = {{ neutron_ipv6_ptr_zone_prefix_size }}
|
|
{% endif %}
|
|
|
|
[nova]
|
|
auth_type = {{ nova_keystone_auth_plugin }}
|
|
auth_url = {{ keystone_service_adminurl }}
|
|
region_name = {{ nova_service_region }}
|
|
project_domain_id = {{ nova_service_project_domain_id }}
|
|
user_domain_id = {{ nova_service_user_domain_id }}
|
|
project_name = {{ nova_service_project_name }}
|
|
username = {{ nova_service_user_name }}
|
|
password = {{ nova_service_password }}
|
|
endpoint_type = internal
|
|
|
|
# Quotas
|
|
[quotas]
|
|
quota_driver = {{ neutron_driver_quota }}
|
|
quota_items = network,subnet,port
|
|
default_quota = {{ neutron_default_quota }}
|
|
quota_floatingip = {{ neutron_quota_floatingip }}
|
|
quota_health_monitor = {{ neutron_quota_health_monitor }}
|
|
quota_member = {{ neutron_quota_member }}
|
|
quota_network = {{ neutron_quota_network }}
|
|
quota_network_gateway = {{ neutron_quota_network_gateway }}
|
|
quota_packet_filter = {{ neutron_quota_packet_filter }}
|
|
quota_pool = {{ neutron_quota_pool }}
|
|
quota_port = {{ neutron_quota_port }}
|
|
quota_router = {{ neutron_quota_router }}
|
|
quota_security_group = {{ neutron_quota_security_group }}
|
|
quota_security_group_rule = {{ neutron_quota_security_group_rule }}
|
|
quota_subnet = {{ neutron_quota_subnet }}
|
|
quota_vip = {{ neutron_quota_vip }}
|
|
|
|
# Keystone authentication
|
|
[keystone_authtoken]
|
|
insecure = {{ keystone_service_internaluri_insecure | bool }}
|
|
auth_type = {{ neutron_keystone_auth_plugin }}
|
|
auth_url = {{ keystone_service_adminuri }}
|
|
auth_uri = {{ keystone_service_internaluri }}
|
|
project_domain_id = {{ neutron_service_project_domain_id }}
|
|
user_domain_id = {{ neutron_service_user_domain_id }}
|
|
project_name = {{ neutron_service_project_name }}
|
|
username = {{ neutron_service_user_name }}
|
|
password = {{ neutron_service_password }}
|
|
region_name = {{ keystone_service_region }}
|
|
|
|
memcached_servers = {{ memcached_servers }}
|
|
|
|
token_cache_time = 300
|
|
|
|
# Prevent cache poisoning if sharing a memcached server
|
|
memcache_security_strategy = ENCRYPT
|
|
memcache_secret_key = {{ memcached_encryption_key }}
|
|
|
|
# Database
|
|
[database]
|
|
connection = mysql+pymysql://{{ neutron_galera_user }}:{{ neutron_container_mysql_password }}@{{ neutron_galera_address }}/{{ neutron_galera_database }}?charset=utf8{% if neutron_galera_use_ssl | bool %}&ssl_ca={{ neutron_galera_ssl_ca_cert }}{% endif %}
|
|
|
|
max_overflow = {{ neutron_db_max_overflow }}
|
|
max_pool_size = {{ neutron_db_pool_size }}
|
|
pool_timeout = {{ neutron_db_pool_timeout }}
|
|
|
|
# Service providers
|
|
[service_providers]
|
|
{% if neutron_lbaasv2 | bool %}
|
|
{% for service_provider in neutron_lbaasv2_service_provider.split(',') %}
|
|
service_provider = {{ service_provider }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if neutron_vpnaas| bool %}
|
|
service_provider = {{ neutron_vpnaas_service_provider }}
|
|
{% endif %}
|
|
|
|
{% if neutron_lbaasv2 | bool %}
|
|
{% if neutron_lbaas_octavia | bool %}
|
|
[octavia]
|
|
base_url= {{ octavia_service_url }}
|
|
request_poll_timeout = {{ neutron_octavia_request_poll_timeout }}
|
|
{% endif %}
|
|
|
|
# Configure Barbican - TLS will not work if Barbican is misisng
|
|
[certificates]
|
|
|
|
# Certificate Manager plugin. Defaults to barbican. (string value)
|
|
cert_manager_type = barbican
|
|
|
|
# Name of the Barbican authentication method to use (string value)
|
|
#barbican_auth = barbican_acl_auth
|
|
|
|
[service_auth]
|
|
insecure = {{ keystone_service_internaluri_insecure | bool }}
|
|
auth_plugin = {{ neutron_keystone_auth_plugin }}
|
|
# this needs to have a v3 added manually :-(
|
|
auth_url = {{ keystone_service_internaluri }}/v3
|
|
admin_project_domain = {{ neutron_service_project_domain_id }}
|
|
admin_user_domain = {{ neutron_service_user_domain_id }}
|
|
admin_tenant_name = {{ neutron_service_project_name }}
|
|
admin_user = {{ neutron_service_user_name }}
|
|
admin_password = {{ neutron_service_password }}
|
|
region = {{ keystone_service_region }}
|
|
endpoint_type = internalURL
|
|
service_name = neutron
|
|
auth_version = 3
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
# Agent
|
|
[agent]
|
|
polling_interval = {{ neutron_agent_polling_interval|default(5) }}
|
|
report_interval = {{ neutron_report_interval|int }}
|
|
root_helper = sudo {{ neutron_bin }}/neutron-rootwrap {{ neutron_conf_dir }}/rootwrap.conf
|
|
|
|
# Messaging
|
|
[oslo_messaging_rabbit]
|
|
ssl = {{ neutron_rabbitmq_use_ssl }}
|
|
rpc_conn_pool_size = {{ neutron_rpc_conn_pool_size }}
|
|
|
|
# Notifications
|
|
{% if neutron_ceilometer_enabled or neutron_designate_enabled %}
|
|
[oslo_messaging_notifications]
|
|
{% set notification_topics = [] %}
|
|
{% if neutron_ceilometer_enabled %}
|
|
{% set _ = notification_topics.append('notifications') %}
|
|
{% endif %}
|
|
{% if neutron_designate_enabled %}
|
|
{% set _ = notification_topics.append(neutron_notifications_designate) %}
|
|
{% endif %}
|
|
notification_topics = {{ notification_topics | join(',') }}
|
|
driver = messagingv2
|
|
transport_url = rabbit://{% for host in neutron_rabbitmq_telemetry_servers.split(',') %}{{ neutron_rabbitmq_telemetry_userid }}:{{ neutron_rabbitmq_telemetry_password }}@{{ host }}:{{ neutron_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ neutron_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %}
|
|
{% endif %}
|
|
|
|
# Concurrency (locking mechanisms)
|
|
[oslo_concurrency]
|
|
lock_path = {{ neutron_lock_path }}
|
|
|
|
{% if neutron_services['neutron-server']['group'] in group_names and 'networking_sfc.services.sfc.plugin.SfcPlugin' in neutron_plugin_base %}
|
|
# ODL-SFC
|
|
[sfc]
|
|
drivers = odl
|
|
|
|
[flowclassifier]
|
|
drivers = odl
|
|
{% endif %}
|