blob: 4eef1a47c41994dffe61ea7b86c48f956e07380c [file] [log] [blame]
Oleh Hryhorovf223d542018-05-31 13:38:08 +00001{%- if pillar.neutron.gateway is defined %}
2{%- from "neutron/map.jinja" import gateway as neutron with context %}
3{%- else %}
4{%- from "neutron/map.jinja" import compute as neutron with context %}
5{%- endif %}
6[DEFAULT]
7
8#
9# From neutron
10#
11
12# Where to store Neutron state files. This directory must be writable by the
13# agent. (string value)
14#state_path = /var/lib/neutron
15state_path = /var/lib/neutron
16
17# The host IP to bind to. (unknown value)
18#bind_host = 0.0.0.0
19
20# The port to bind to (port value)
21# Minimum value: 0
22# Maximum value: 65535
23#bind_port = 9696
24
25# The path for API extensions. Note that this can be a colon-separated list of
26# paths. For example: api_extensions_path =
27# extensions:/path/to/more/exts:/even/more/exts. The __path__ of
28# neutron.extensions is appended to this, so if your extensions are in there
29# you don't need to specify them here. (string value)
30#api_extensions_path =
31
32# The type of authentication to use (string value)
33#auth_strategy = keystone
34auth_strategy = keystone
35
36{% if neutron.backend.engine == "ml2" %}
37
38core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
39
40service_plugins = {{ neutron.backend.get('router', 'router')}}, metering
41
42{% endif %}
43
44# The service plugins Neutron will use (list value)
45#service_plugins =
46
47# The base MAC address Neutron will use for VIFs. The first 3 octets will
48# remain unchanged. If the 4th octet is not 00, it will also be used. The
49# others will be randomly generated. (string value)
50#base_mac = fa:16:3e:00:00:00
Dzmitry Stremkouskid5e89e52018-09-25 10:01:54 +020051{%- if neutron.base_mac is defined %}
52base_mac = {{ neutron.base_mac }}
53{%- endif %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +000054
55# Allow the usage of the bulk API (boolean value)
56#allow_bulk = true
57
58# The maximum number of items returned in a single response, value was
59# 'infinite' or negative integer means no limit (string value)
60#pagination_max_limit = -1
61pagination_max_limit = {{ neutron.pagination_max_limit|default('-1') }}
62
63# Default value of availability zone hints. The availability zone aware
64# schedulers use this when the resources availability_zone_hints is empty.
65# Multiple availability zones can be specified by a comma separated string.
66# This value can be empty. In this case, even if availability_zone_hints for a
67# resource is empty, availability zone is considered for high availability
68# while scheduling the resource. (list value)
69#default_availability_zones =
70
71# Maximum number of DNS nameservers per subnet (integer value)
72#max_dns_nameservers = 5
73
74# Maximum number of host routes per subnet (integer value)
75#max_subnet_host_routes = 20
76
77# Enables IPv6 Prefix Delegation for automatic subnet CIDR allocation. Set to
78# True to enable IPv6 Prefix Delegation for subnet allocation in a PD-capable
79# environment. Users making subnet creation requests for IPv6 subnets without
80# providing a CIDR or subnetpool ID will be given a CIDR via the Prefix
81# Delegation mechanism. Note that enabling PD will override the behavior of the
82# default IPv6 subnetpool. (boolean value)
83#ipv6_pd_enabled = false
84
85# DHCP lease duration (in seconds). Use -1 to tell dnsmasq to use infinite
86# lease times. (integer value)
87#dhcp_lease_duration = 86400
Michael Polenchuk2151b272018-06-19 18:32:31 +040088dhcp_lease_duration = {{ neutron.dhcp_lease_duration|default('600') }}
Oleh Hryhorovf223d542018-05-31 13:38:08 +000089
90# Domain to use for building the hostnames (string value)
91#dns_domain = openstacklocal
92
93# Driver for external DNS integration. (string value)
94#external_dns_driver = <None>
95
96# Allow sending resource operation notification to DHCP agent (boolean value)
97#dhcp_agent_notification = true
98
99# Allow overlapping IP support in Neutron. Attention: the following parameter
100# MUST be set to False if Neutron is being used in conjunction with Nova
101# security groups. (boolean value)
102#allow_overlapping_ips = false
103allow_overlapping_ips = True
104
105# Hostname to be used by the Neutron server, agents and services running on
106# this machine. All the agents and services running on this machine must use
107# the same host value. (unknown value)
108#host = example.domain
109
110# This string is prepended to the normal URL that is returned in links to the
111# OpenStack Network API. If it is empty (the default), the URLs are returned
112# unchanged. (string value)
113#network_link_prefix = <None>
114
115# Send notification to nova when port status changes (boolean value)
116#notify_nova_on_port_status_changes = true
117notify_nova_on_port_status_changes = true
118
119# Send notification to nova when port data (fixed_ips/floatingip) changes so
120# nova can update its cache. (boolean value)
121#notify_nova_on_port_data_changes = true
122notify_nova_on_port_data_changes = true
123
124# Number of seconds between sending events to nova if there are any events to
125# send. (integer value)
126#send_events_interval = 2
127
128# Neutron IPAM (IP address management) driver to use. By default, the reference
129# implementation of the Neutron IPAM driver is used. (string value)
130#ipam_driver = internal
131
132# If True, then allow plugins that support it to create VLAN transparent
133# networks. (boolean value)
134#vlan_transparent = false
135
136# MTU of the underlying physical network. Neutron uses this value to calculate
137# MTU for all virtual network components. For flat and VLAN networks, neutron
138# uses this value without modification. For overlay networks such as VXLAN,
139# neutron automatically subtracts the overlay protocol overhead from this
140# value. Defaults to 1500, the standard value for Ethernet. (integer value)
141# Deprecated group/name - [ml2]/segment_mtu
142#global_physnet_mtu = 1500
143global_physnet_mtu = {{ neutron.get('global_physnet_mtu', '1500') }}
144
145# Number of backlog requests to configure the socket with (integer value)
146#backlog = 4096
147
148# Number of seconds to keep retrying to listen (integer value)
149#retry_until_window = 30
150
151# Enable SSL on the API server (boolean value)
152#use_ssl = false
153
154# Seconds between running periodic tasks. (integer value)
155#periodic_interval = 40
156
157# Number of separate API worker processes for service. If not specified, the
158# default is equal to the number of CPUs available for best performance.
159# (integer value)
160#api_workers = <None>
161{%- if neutron.api_workers is defined %}
162api_workers = {{ neutron.api_workers }}
163{%- endif %}
164
165# Number of RPC worker processes for service. (integer value)
166#rpc_workers = 1
167{%- if neutron.rpc_workers is defined %}
168rpc_workers = {{ neutron.rpc_workers }}
169{%- else %}
170rpc_workers = {{ grains.num_cpus }}
171{%- endif %}
172
173
174# Number of RPC worker processes dedicated to state reports queue. (integer
175# value)
176#rpc_state_report_workers = 1
177{%- if neutron.rpc_state_report_workers is defined %}
178rpc_state_report_workers = {{ neutron.rpc_state_report_workers }}
179{%- else %}
180rpc_state_report_workers = 4
181{%- endif %}
182
183# Range of seconds to randomly delay when starting the periodic task scheduler
184# to reduce stampeding. (Disable by setting to 0) (integer value)
185#periodic_fuzzy_delay = 5
186
187#
188# From neutron.agent
189#
190
191# The driver used to manage the virtual interface. (string value)
192#interface_driver = <None>
193
194# Location for Metadata Proxy UNIX domain socket. (string value)
195#metadata_proxy_socket = $state_path/metadata_proxy
196
197# User (uid or name) running metadata proxy after its initialization (if empty:
198# agent effective user). (string value)
199#metadata_proxy_user =
200
201# Group (gid or name) running metadata proxy after its initialization (if
202# empty: agent effective group). (string value)
203#metadata_proxy_group =
204
205#
206# From neutron.db
207#
208
209# Seconds to regard the agent is down; should be at least twice
210# report_interval, to be sure the agent is down for good. (integer value)
211#agent_down_time = 75
212
213# Representing the resource type whose load is being reported by the agent.
214# This can be "networks", "subnets" or "ports". When specified (Default is
215# networks), the server will extract particular load sent as part of its agent
216# configuration object from the agent report state, which is the number of
217# resources being consumed, at every report_interval.dhcp_load_type can be used
218# in combination with network_scheduler_driver =
219# neutron.scheduler.dhcp_agent_scheduler.WeightScheduler When the
220# network_scheduler_driver is WeightScheduler, dhcp_load_type can be configured
221# to represent the choice for the resource being balanced. Example:
222# dhcp_load_type=networks (string value)
223# Possible values:
224# networks - <No description provided>
225# subnets - <No description provided>
226# ports - <No description provided>
227#dhcp_load_type = networks
228
229# Agent starts with admin_state_up=False when enable_new_agents=False. In the
230# case, user's resources will not be scheduled automatically to the agent until
231# admin changes admin_state_up to True. (boolean value)
232#enable_new_agents = true
233
234# Maximum number of routes per router (integer value)
235#max_routes = 30
236
237# Define the default value of enable_snat if not provided in
238# external_gateway_info. (boolean value)
239#enable_snat_by_default = true
240
241# Driver to use for scheduling network to DHCP agent (string value)
242#network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
243
244# Allow auto scheduling networks to DHCP agent. (boolean value)
245#network_auto_schedule = true
246
247# Automatically remove networks from offline DHCP agents. (boolean value)
248#allow_automatic_dhcp_failover = true
249
250# Number of DHCP agents scheduled to host a tenant network. If this number is
251# greater than 1, the scheduler automatically assigns multiple DHCP agents for
252# a given tenant network, providing high availability for DHCP service.
253# (integer value)
254#dhcp_agents_per_network = 1
255dhcp_agents_per_network = 2
256
257# Enable services on an agent with admin_state_up False. If this option is
258# False, when admin_state_up of an agent is turned False, services on it will
259# be disabled. Agents with admin_state_up False are not selected for automatic
260# scheduling regardless of this option. But manual scheduling to such agents is
261# available if this option is True. (boolean value)
262#enable_services_on_agents_with_admin_state_down = false
263
264# The base mac address used for unique DVR instances by Neutron. The first 3
265# octets will remain unchanged. If the 4th octet is not 00, it will also be
266# used. The others will be randomly generated. The 'dvr_base_mac' *must* be
267# different from 'base_mac' to avoid mixing them up with MAC's allocated for
268# tenant ports. A 4 octet example would be dvr_base_mac = fa:16:3f:4f:00:00.
269# The default is 3 octet (string value)
270#dvr_base_mac = fa:16:3f:00:00:00
Dzmitry Stremkouskid5e89e52018-09-25 10:01:54 +0200271{%- if neutron.dvr_base_mac is defined %}
272 {%- if neutron.base_mac is defined %}
273 {%- if neutron.base_mac != neutron.dvr_base_mac %}
274dvr_base_mac = {{ neutron.dvr_base_mac }}
275 {%- endif %}
276 {%- else %}
277dvr_base_mac = {{ neutron.dvr_base_mac }}
278 {%- endif %}
279{%- endif %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000280
281# System-wide flag to determine the type of router that tenants can create.
282# Only admin can override. (boolean value)
283#router_distributed = false
284router_distributed = {{ neutron.get('dvr', 'False') }}
285
286# Determine if setup is configured for DVR. If False, DVR API extension will be
287# disabled. (boolean value)
288#enable_dvr = true
289enable_dvr = {{ neutron.get('dvr', 'False') }}
290
291# Driver to use for scheduling router to a default L3 agent (string value)
292#router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
293router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler
294
295# Allow auto scheduling of routers to L3 agent. (boolean value)
296#router_auto_schedule = true
297
298# Automatically reschedule routers from offline L3 agents to online L3 agents.
299# (boolean value)
300#allow_automatic_l3agent_failover = false
301allow_automatic_l3agent_failover = true
302
303# Enable HA mode for virtual routers. (boolean value)
304#l3_ha = false
305l3_ha = {{ neutron.get('l3_ha', 'False') }}
306
307# Maximum number of L3 agents which a HA router will be scheduled on. If it is
308# set to 0 then the router will be scheduled on every agent. (integer value)
309#max_l3_agents_per_router = 3
310max_l3_agents_per_router = 0
311
312# Subnet used for the l3 HA admin network. (string value)
313#l3_ha_net_cidr = 169.254.192.0/18
314
315# The network type to use when creating the HA network for an HA router. By
316# default or if empty, the first 'tenant_network_types' is used. This is
317# helpful when the VRRP traffic should use a specific network which is not the
318# default one. (string value)
319#l3_ha_network_type =
320
321# The physical network name with which the HA network can be created. (string
322# value)
323#l3_ha_network_physical_name =
324
325#
326# From neutron.extensions
327#
328
329# Maximum number of allowed address pairs (integer value)
330#max_allowed_address_pair = 10
331
332{%- if neutron.logging is defined %}
333{%- set _data = neutron.logging %}
334{%- include "oslo_templates/files/queens/oslo/_log.conf" %}
335{%- endif %}
336
337
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400338{%- if neutron.message_queue|default(none) is not none %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000339{%- set _data = neutron.message_queue %}
340{%- include "oslo_templates/files/queens/oslo/messaging/_default.conf" %}
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400341{%- endif %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000342
343{%- set _data = {} %}
344{%- include "oslo_templates/files/queens/oslo/service/_wsgi_default.conf" %}
345
346[agent]
347
348#
349# From neutron.agent
350#
351
352# Root helper application. Use 'sudo neutron-rootwrap
353# /etc/neutron/rootwrap.conf' to use the real root filter facility. Change to
354# 'sudo' to skip the filtering and just run the command directly. (string
355# value)
356#root_helper_daemon = <None>
357root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
358
359# Use the root helper when listing the namespaces on a system. This may not be
360# required depending on the security configuration. If the root helper is not
361# required, set this to False for a performance improvement. (boolean value)
362#use_helper_for_ns_read = true
363
364# Root helper daemon application to use when possible. For the agent which
365# needs to execute commands in Dom0 in the hypervisor of XenServer, this item
366# should be set to 'xenapi_root_helper', so that it will keep a XenAPI session
367# to pass commands to Dom0. (string value)
368#root_helper_daemon = <None>
369{%- if neutron.root_helper_daemon|default(True) %}
370root_helper_daemon = sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
371{%- endif %}
372
373# Seconds between nodes reporting state to server; should be less than
374# agent_down_time, best if it is half or less than agent_down_time. (floating
375# point value)
376#report_interval = 30
377report_interval = 10
378
379# Log agent heartbeats (boolean value)
380#log_agent_heartbeats = false
381
382# Add comments to iptables rules. Set to false to disallow the addition of
383# comments to generated iptables rules that describe each rule's purpose.
384# System must support the iptables comments module for addition of comments.
385# (boolean value)
386#comment_iptables_rules = true
387
388# Duplicate every iptables difference calculation to ensure the format being
389# generated matches the format of iptables-save. This option should not be
390# turned on for production systems because it imposes a performance penalty.
391# (boolean value)
392#debug_iptables_rules = false
393
394# Action to be executed when a child process dies (string value)
395# Possible values:
396# respawn - <No description provided>
397# exit - <No description provided>
398#check_child_processes_action = respawn
399
400# Interval between checks of child process liveness (seconds), use 0 to disable
401# (integer value)
402#check_child_processes_interval = 60
403
404# Availability zone of this node (string value)
405#availability_zone = nova
406
407
408[cors]
409{%- if neutron.cors is defined %}
410{%- set _data = neutron.cors %}
411{%- include "oslo_templates/files/queens/oslo/_cors.conf" %}
412{%- endif %}
413
414
415[database]
416connection = sqlite:////var/lib/neutron/neutron.sqlite
417
418[keystone_authtoken]
419{%- if neutron.identity is defined %}
420{%- set _data = neutron.identity %}
Mykyta Karpine0eeac12018-06-14 21:58:48 +0300421{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': neutron.cacert_file}) %}{% endif %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000422{%- set auth_type = _data.get('auth_type', 'password') %}
423{%- include "oslo_templates/files/queens/keystonemiddleware/_auth_token.conf" %}
424{%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %}
425{%- endif %}
426
427[nova]
428
429[oslo_concurrency]
430{%- set _data = neutron.get('concurrency', {}) %}
431{%- include "oslo_templates/files/queens/oslo/_concurrency.conf" %}
432
433
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400434{%- if neutron.message_queue|default(none) is not none %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000435{%- set _data = neutron.message_queue %}
436{%- if _data.engine == 'rabbitmq' %}
437 {%- set messaging_engine = 'rabbit' %}
438{%- else %}
439 {%- set messaging_engine = _data.engine %}
440{%- endif %}
441[oslo_messaging_{{ messaging_engine }}]
Oleksandr Bryndziic340a3b2018-09-26 13:02:25 +0000442{%- if _data.ssl is defined and 'cacert_file' not in _data.get('ssl', {}).keys() %}{% do _data['ssl'].update({'cacert_file': neutron.cacert_file}) %}{% endif %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000443{%- include "oslo_templates/files/queens/oslo/messaging/_" + messaging_engine + ".conf" %}
444{%- endif %}
445
446[oslo_messaging_notifications]
447{%- set _data = neutron.notification %}
448{%- include "oslo_templates/files/queens/oslo/messaging/_notifications.conf" %}
449
450
451[oslo_middleware]
452{%- set _data = neutron %}
453{%- include "oslo_templates/files/queens/oslo/_middleware.conf" %}
454
455
456[oslo_policy]
457{%- if neutron.policy is defined %}
458{%- set _data = neutron.policy %}
459{%- include "oslo_templates/files/queens/oslo/_policy.conf" %}
460{%- endif %}
461
462
463[quotas]
464
465#
466# From neutron
467#
468
469# Default number of resource allowed per tenant. A negative value means
470# unlimited. (integer value)
471#default_quota = -1
472
473# Number of networks allowed per tenant. A negative value means unlimited.
474# (integer value)
475#quota_network = 100
476
477# Number of subnets allowed per tenant, A negative value means unlimited.
478# (integer value)
479#quota_subnet = 100
480
481# Number of ports allowed per tenant. A negative value means unlimited.
482# (integer value)
483#quota_port = 500
484
485# Default driver to use for quota checks. (string value)
486#quota_driver = neutron.db.quota.driver.DbQuotaDriver
487{% if neutron.backend.engine == "contrail" %}
488quota_driver = neutron_plugin_contrail.plugins.opencontrail.quota.driver.QuotaDriver
489{% endif %}
490# Keep in track in the database of current resource quota usage. Plugins which
491# do not leverage the neutron database should set this flag to False. (boolean
492# value)
493#track_quota_usage = true
494
495#
496# From neutron.extensions
497#
498
499# Number of routers allowed per tenant. A negative value means unlimited.
500# (integer value)
501#quota_router = 10
502
503# Number of floating IPs allowed per tenant. A negative value means unlimited.
504# (integer value)
505#quota_floatingip = 50
506
507# Number of security groups allowed per tenant. A negative value means
508# unlimited. (integer value)
509#quota_security_group = 10
510
511# Number of security rules allowed per tenant. A negative value means
512# unlimited. (integer value)
513#quota_security_group_rule = 100
514
515
516[ssl]
517{%- include "oslo_templates/files/queens/oslo/service/_ssl.conf" %}
518
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000519[ovs]
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300520{%- if neutron.backend.ovsdb_interface is defined %}
521ovsdb_interface = {{ neutron.backend.ovsdb_interface }}
522{%- endif %}
523{%- if neutron.backend.ovsdb_connection is defined %}
Oleh Hryhorovf223d542018-05-31 13:38:08 +0000524ovsdb_connection = {{ neutron.backend.ovsdb_connection }}
525{%- endif %}