blob: 9e37b326940ca676c2d126785e6af89f8d44a518 [file] [log] [blame]
Aleš Komárek41e82312017-04-11 13:37:44 +02001===============
2Neutron Formula
3===============
Filip Pytlouncd028e42015-10-06 16:28:32 +02004
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02005Neutron is an OpenStack project to provide "networking as a service" between
6interface devices (e.g., vNICs) managed by other Openstack services (e.g.,
7nova).
Filip Pytlouncd028e42015-10-06 16:28:32 +02008
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02009Starting in the Folsom release, Neutron is a core and supported part of the
10OpenStack platform (for Essex, we were an "incubated" project, which means use
Vasyl Saienko2fffc842017-06-14 10:35:26 +030011is suggested only for those who really know what they're doing with Neutron).
Filip Pytlouncd028e42015-10-06 16:28:32 +020012
Aleš Komárek41e82312017-04-11 13:37:44 +020013Sample Pillars
Filip Pytlouncd028e42015-10-06 16:28:32 +020014==============
15
16Neutron Server on the controller node
17
18.. code-block:: yaml
19
20 neutron:
21 server:
22 enabled: true
Jiri Broulik74f61112016-11-21 20:23:47 +010023 version: mitaka
Swann Croiset9407daf2017-02-02 15:27:56 +010024 allow_pagination: true
25 pagination_max_limit: 100
Mykyta Karpin253406d2017-12-08 17:01:37 +020026 api_workers: 2
27 rpc_workers: 2
28 rpc_state_report_workers: 2
Filip Pytlouncd028e42015-10-06 16:28:32 +020029 bind:
30 address: 172.20.0.1
31 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020032 database:
33 engine: mysql
34 host: 127.0.0.1
35 port: 3306
36 name: neutron
37 user: neutron
38 password: pwd
39 identity:
40 engine: keystone
41 host: 127.0.0.1
42 port: 35357
43 user: neutron
44 password: pwd
45 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020046 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020047 message_queue:
48 engine: rabbitmq
49 host: 127.0.0.1
50 port: 5672
51 user: openstack
52 password: pwd
53 virtual_host: '/openstack'
54 metadata:
55 host: 127.0.0.1
56 port: 8775
57 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020058 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010059 audit:
60 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020061
Swann Croiset9407daf2017-02-02 15:27:56 +010062Note: The pagination is useful to retrieve a large bunch of resources,
63because a single request may fail (timeout). This is enabled with both
64parameters *allow_pagination* and *pagination_max_limit* as shown above.
65
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040066
67Configuration of policy.json file
68
69.. code-block:: yaml
70
71 neutron:
72 server:
73 ....
74 policy:
75 create_subnet: 'rule:admin_or_network_owner'
76 'get_network:queue_id': 'rule:admin_only'
77 # Add key without value to remove line from policy.json
78 'create_network:shared':
79
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040080Neutron LBaaSv2 enablement
81--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010082
83.. code-block:: yaml
84
85 neutron:
86 server:
87 lbaas:
88 enabled: true
89 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040090 octavia:
91 engine: octavia
92 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
93 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010094 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010095 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040096 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010097 controller_address: 10.182.129.239
98 controller_user: admin
99 controller_password: Cloudlab2016
100 controller_cloud_name: Default-Cloud
101 avi_adc2:
102 engine: avinetworks
103 ...
104
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400105Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
106automatically. In this case lbaas should disabled in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100107
108.. code-block:: yaml
109
110 neutron:
111 server:
112 lbaas:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400113 enabled: false
Ondrej Smola314eee22017-03-08 21:21:16 +0100114
Elena Ezhova166d4012017-08-17 12:53:52 +0400115
116Neutron FWaaSv1 enablement
117--------------------------
118
119.. code-block:: yaml
120
121 neutron:
122 fwaas:
123 enabled: true
124 version: ocata
125 api_version: v1
126
127
Ondrej Smola12ff8192017-04-28 12:39:11 +0200128Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400129----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200130
131.. code-block:: yaml
132
133 neutron:
134 server:
135 cors:
136 allowed_origin: https:localhost.local,http:localhost.local
137 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
138 allow_methods: GET,PUT,POST,DELETE,PATCH
139 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
140 allow_credentials: True
141 max_age: 86400
142
143
Aleš Komárek41e82312017-04-11 13:37:44 +0200144Neutron VXLAN tenant networks with Network nodes
145------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100146
Aleš Komárek41e82312017-04-11 13:37:44 +0200147With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100148
149This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200150routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300151infrastructure and that remains encapsulated. External traffic will be
152routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100153
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300154The intention is that each tenant will require at least two (2) vrouters
155one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100156
Aleš Komárek41e82312017-04-11 13:37:44 +0200157Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200158
159.. code-block:: yaml
160
161 neutron:
162 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100163 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300164 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100165 bind:
166 address: 172.20.0.1
167 port: 9696
168 database:
169 engine: mysql
170 host: 127.0.0.1
171 port: 3306
172 name: neutron
173 user: neutron
174 password: pwd
175 identity:
176 engine: keystone
177 host: 127.0.0.1
178 port: 35357
179 user: neutron
180 password: pwd
181 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200182 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100183 message_queue:
184 engine: rabbitmq
185 host: 127.0.0.1
186 port: 5672
187 user: openstack
188 password: pwd
189 virtual_host: '/openstack'
190 global_physnet_mtu: 9000
191 l3_ha: False # Which type of router will be created by default
192 dvr: True # disabled for non DVR use case
193 backend:
194 engine: ml2
195 tenant_network_types: "flat,vxlan"
196 external_mtu: 9000
197 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400198 ovs:
199 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100200
Aleš Komárek41e82312017-04-11 13:37:44 +0200201Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100202
203.. code-block:: yaml
204
205 neutron:
206 gateway:
207 enabled: True
208 version: mitaka
209 message_queue:
210 engine: rabbitmq
211 host: 127.0.0.1
212 port: 5672
213 user: openstack
214 password: pwd
215 virtual_host: '/openstack'
216 local_ip: 192.168.20.20 # br-mesh ip address
217 dvr: True # disabled for non DVR use case
218 agent_mode: dvr_snat
219 metadata:
220 host: 127.0.0.1
221 password: pass
222 backend:
223 engine: ml2
224 tenant_network_types: "flat,vxlan"
225 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400226 ovs:
227 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100228
229Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100230
231.. code-block:: yaml
232
233 neutron:
234 compute:
235 enabled: True
236 version: mitaka
237 message_queue:
238 engine: rabbitmq
239 host: 127.0.0.1
240 port: 5672
241 user: openstack
242 password: pwd
243 virtual_host: '/openstack'
244 local_ip: 192.168.20.20 # br-mesh ip address
245 dvr: True # disabled for non DVR use case
246 agent_mode: dvr
247 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
248 metadata:
249 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300250 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100251 backend:
252 engine: ml2
253 tenant_network_types: "flat,vxlan"
254 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400255 ovs:
256 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100257 audit:
258 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100259
Aleš Komárek41e82312017-04-11 13:37:44 +0200260
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300261Disable physnet1 bridge
262-----------------------
263
264By default we have external access turned on, so among any physnets in
265your reclass there would be additional one: physnet1, which is mapped to
266br-floating
267
268If you need internal nets only without this bridge, remove br-floating
269and configurations mappings. Disable mappings for this bridge on
270neutron-servers:
271
272.. code-block:: yaml
273
274 neutron:
275 server:
276 external_access: false
277
278gateways:
279
280.. code-block:: yaml
281
282 neutron:
283 gateway:
284 external_access: false
285
286compute nodes:
287
288.. code-block:: yaml
289
290 neutron:
291 compute:
292 external_access: false
293
294
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300295Specify different mtu values for different physnets
296---------------------------------------------------
297
298Neutron Server
299
300.. code-block:: yaml
301
302 neutron:
303 server:
304 version: mitaka
305 backend:
306 external_mtu: 1500
307 tenant_net_mtu: 9000
308 ironic_net_mtu: 9000
309
Jiri Broulik74f61112016-11-21 20:23:47 +0100310Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200311----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100312
313This section describes a network solution that utilises VxLAN overlay
314 networks without DVR with all routers being managed on the network nodes.
315
Aleš Komárek41e82312017-04-11 13:37:44 +0200316Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100317
318.. code-block:: yaml
319
320 neutron:
321 server:
322 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100323 bind:
324 address: 172.20.0.1
325 port: 9696
326 database:
327 engine: mysql
328 host: 127.0.0.1
329 port: 3306
330 name: neutron
331 user: neutron
332 password: pwd
333 identity:
334 engine: keystone
335 host: 127.0.0.1
336 port: 35357
337 user: neutron
338 password: pwd
339 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200340 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100341 message_queue:
342 engine: rabbitmq
343 host: 127.0.0.1
344 port: 5672
345 user: openstack
346 password: pwd
347 virtual_host: '/openstack'
348 global_physnet_mtu: 9000
349 l3_ha: True
350 dvr: False
351 backend:
352 engine: ml2
353 tenant_network_types= "flat,vxlan"
354 external_mtu: 9000
355 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400356 ovs:
357 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100358
Aleš Komárek41e82312017-04-11 13:37:44 +0200359Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100360
361.. code-block:: yaml
362
363 neutron:
364 gateway:
365 enabled: True
366 version: mitaka
367 message_queue:
368 engine: rabbitmq
369 host: 127.0.0.1
370 port: 5672
371 user: openstack
372 password: pwd
373 virtual_host: '/openstack'
374 local_ip: 192.168.20.20 # br-mesh ip address
375 dvr: False
376 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200377 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100378 metadata:
379 host: 127.0.0.1
380 password: pass
381 backend:
382 engine: ml2
383 tenant_network_types: "flat,vxlan"
384 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400385 ovs:
386 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100387
388Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100389
390.. code-block:: yaml
391
392 neutron:
393 compute:
394 enabled: True
395 version: mitaka
396 message_queue:
397 engine: rabbitmq
398 host: 127.0.0.1
399 port: 5672
400 user: openstack
401 password: pwd
402 virtual_host: '/openstack'
403 local_ip: 192.168.20.20 # br-mesh ip address
404 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300405 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100406 backend:
407 engine: ml2
408 tenant_network_types: "flat,vxlan"
409 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400410 ovs:
411 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100412
Aleš Komárek41e82312017-04-11 13:37:44 +0200413Neutron VXLAN tenant networks with Network Nodes with DVR
414---------------------------------------------------------
415
416With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100417
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300418This section describes a network solution that utilises VxLAN
419overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100420Node is used only for SNAT.
421
Aleš Komárek41e82312017-04-11 13:37:44 +0200422Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100423
424.. code-block:: yaml
425
426 neutron:
427 server:
428 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100429 bind:
430 address: 172.20.0.1
431 port: 9696
432 database:
433 engine: mysql
434 host: 127.0.0.1
435 port: 3306
436 name: neutron
437 user: neutron
438 password: pwd
439 identity:
440 engine: keystone
441 host: 127.0.0.1
442 port: 35357
443 user: neutron
444 password: pwd
445 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200446 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100447 message_queue:
448 engine: rabbitmq
449 host: 127.0.0.1
450 port: 5672
451 user: openstack
452 password: pwd
453 virtual_host: '/openstack'
454 global_physnet_mtu: 9000
455 l3_ha: False
456 dvr: True
457 backend:
458 engine: ml2
459 tenant_network_types= "flat,vxlan"
460 external_mtu: 9000
461 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400462 ovs:
463 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100464
Aleš Komárek41e82312017-04-11 13:37:44 +0200465Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100466
467.. code-block:: yaml
468
469 neutron:
470 gateway:
471 enabled: True
472 version: mitaka
473 message_queue:
474 engine: rabbitmq
475 host: 127.0.0.1
476 port: 5672
477 user: openstack
478 password: pwd
479 virtual_host: '/openstack'
480 local_ip: 192.168.20.20 # br-mesh ip address
481 dvr: True
482 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200483 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100484 metadata:
485 host: 127.0.0.1
486 password: pass
487 backend:
488 engine: ml2
489 tenant_network_types: "flat,vxlan"
490 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400491 ovs:
492 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100493
494Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100495
496.. code-block:: yaml
497
498 neutron:
499 compute:
500 enabled: True
501 version: mitaka
502 message_queue:
503 engine: rabbitmq
504 host: 127.0.0.1
505 port: 5672
506 user: openstack
507 password: pwd
508 virtual_host: '/openstack'
509 local_ip: 192.168.20.20 # br-mesh ip address
510 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300511 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100512 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200513 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100514 metadata:
515 host: 127.0.0.1
516 password: pass
517 backend:
518 engine: ml2
519 tenant_network_types: "flat,vxlan"
520 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400521 ovs:
522 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100523
524Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100525
526.. code-block:: yaml
527
528 linux:
529 network:
530 bridge: openvswitch
531 interface:
532 eth1:
533 enabled: true
534 type: eth
535 mtu: 9000
536 proto: manual
537 eth2:
538 enabled: true
539 type: eth
540 mtu: 9000
541 proto: manual
542 eth3:
543 enabled: true
544 type: eth
545 mtu: 9000
546 proto: manual
547 br-int:
548 enabled: true
549 mtu: 9000
550 type: ovs_bridge
551 br-floating:
552 enabled: true
553 mtu: 9000
554 type: ovs_bridge
555 float-to-ex:
556 enabled: true
557 type: ovs_port
558 mtu: 65000
559 bridge: br-floating
560 br-mgmt:
561 enabled: true
562 type: bridge
563 mtu: 9000
564 address: ${_param:single_address}
565 netmask: 255.255.255.0
566 use_interfaces:
567 - eth1
568 br-mesh:
569 enabled: true
570 type: bridge
571 mtu: 9000
572 address: ${_param:tenant_address}
573 netmask: 255.255.255.0
574 use_interfaces:
575 - eth2
576 br-ex:
577 enabled: true
578 type: bridge
579 mtu: 9000
580 address: ${_param:external_address}
581 netmask: 255.255.255.0
582 use_interfaces:
583 - eth3
584 use_ovs_ports:
585 - float-to-ex
586
Thom Gerdes3282d072017-05-30 22:06:04 +0000587Additonal VXLAN tenant network settings
588---------------------------------------
589
590The default multicast group of 224.0.0.1 only multicasts to a single subnet.
591Allow overriding it to allow larger underlay network topologies.
592
593Neutron Server
594
595.. code-block:: yaml
596
597 neutron:
598 server:
599 vxlan:
600 group: 239.0.0.0/8
601 vni_ranges: "2:65535"
602
Jiri Broulik74f61112016-11-21 20:23:47 +0100603Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200604-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100605
606VLAN tenant provider
607
608Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100609
610.. code-block:: yaml
611
612 neutron:
613 server:
614 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100615 ...
616 global_physnet_mtu: 9000
617 l3_ha: False
618 dvr: True
619 backend:
620 engine: ml2
621 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
622 tenant_vlan_range: "1000:2000"
623 external_vlan_range: "100:200" # Does not have to be defined.
624 external_mtu: 9000
625 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400626 ovs:
627 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100628
629Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100630
631.. code-block:: yaml
632
633 neutron:
634 compute:
635 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100636 ...
637 dvr: True
638 agent_mode: dvr
639 external_access: False
640 backend:
641 engine: ml2
642 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
643 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400644 ovs:
645 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100646
Aleš Komárek41e82312017-04-11 13:37:44 +0200647Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400648----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200649
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100650Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100651
652Enable datapath netdev for neutron openvswitch agent
653
654.. code-block:: yaml
655
656 neutron:
657 server:
658 version: mitaka
659 ...
660 dpdk: True
661 ...
662
663 neutron:
664 compute:
665 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100666 dpdk: True
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400667 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100668 backend:
669 engine: ml2
670 ...
671 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400672 ovs:
673 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100674
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100675Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100676
677.. code-block:: yaml
678
679 neutron:
680 server:
681 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100682 backend:
683 engine: ml2
684 ...
685 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400686 ovs:
687 driver: openvswitch
688 sriov:
689 driver: sriovnicswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100690
691 neutron:
692 compute:
693 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100694 ...
695 backend:
696 engine: ml2
697 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
698 sriov:
699 nic_one:
700 devname: eth1
701 physical_network: physnet3
702 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400703 ovs:
704 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100705
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300706Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400707---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300708
709.. code-block:: yaml
710
711 neutron:
712 server:
713 vlan_aware_vms: true
714 ....
715 compute:
716 vlan_aware_vms: true
717 ....
718 gateway:
719 vlan_aware_vms: true
720
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400721Neutron with OVN
722----------------
723
724Control node:
725
726.. code-block:: yaml
727
728 neutron:
729 server:
730 backend:
731 engine: ovn
732 mechanism:
733 ovn:
734 driver: ovn
735 tenant_network_types: "geneve,flat"
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400736 ovn_ctl_opts:
737 db-nb-create-insecure-remote: 'yes'
738 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400739
740Compute node:
741
742.. code-block:: yaml
743
744 neutron:
745 compute:
746 local_ip: 10.2.0.105
747 controller_vip: 10.1.0.101
748 external_access: false
749 backend:
750 engine: ovn
751
Aleš Komárek41e82312017-04-11 13:37:44 +0200752Neutron Server
753--------------
754
Jiri Broulik74f61112016-11-21 20:23:47 +0100755Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100756
757.. code-block:: yaml
758
759 neutron:
760 server:
marcoa4428a32016-06-10 11:50:16 +0200761 backend:
762 engine: contrail
763 host: contrail_discovery_host
764 port: 8082
765 user: admin
766 password: password
767 tenant: admin
768 token: token
769
770Neutron Server with Midonet
771
772.. code-block:: yaml
773
774 neutron:
775 server:
776 backend:
777 engine: midonet
778 host: midonet_api_host
779 port: 8181
780 user: admin
781 password: password
782
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100783Neutron Keystone region
784
785.. code-block:: yaml
786
787 neutron:
788 server:
789 enabled: true
790 version: kilo
791 ...
792 identity:
793 region: RegionTwo
794 ...
795 compute:
796 region: RegionTwo
797 ...
798
Jiri Konecny93b19992016-04-12 11:15:39 +0200799Client-side RabbitMQ HA setup
800
801.. code-block:: yaml
802
803 neutron:
804 server:
805 ....
806 message_queue:
807 engine: rabbitmq
808 members:
809 - host: 10.0.16.1
810 - host: 10.0.16.2
811 - host: 10.0.16.3
812 user: openstack
813 password: pwd
814 virtual_host: '/openstack'
815 ....
816
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300817
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300818Configuring TLS communications
819------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300820
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300821
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300822**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
823
824
825- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300826
827.. code-block:: yaml
828
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300829 neutron:
830 server, gateway, compute:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300831 message_queue:
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300832 port: 5671
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300833 ssl:
834 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300835 (optional) cacert: cert body if the cacert_file does not exists
836 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
837 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300838
839
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300840- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300841
842.. code-block:: yaml
843
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300844 neutron:
845 server:
846 database:
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300847 ssl:
848 enabled: True
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300849 (optional) cacert: cert body if the cacert_file does not exists
850 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300851
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300852- **Openstack HTTPS API**
853
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300854
855.. code-block:: yaml
856
Kirill Bespalovdd748b62017-11-21 10:42:57 +0300857 neutron:
858 server:
859 identity:
860 protocol: https
861 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +0300862
863
Petr Michalec61f7ab22016-11-29 16:29:09 +0100864Enable auditing filter, ie: CADF
865
866.. code-block:: yaml
867
868 neutron:
869 server:
870 audit:
871 enabled: true
872 ....
873 filter_factory: 'keystonemiddleware.audit:filter_factory'
874 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
875 ....
876 compute:
877 audit:
878 enabled: true
879 ....
880 filter_factory: 'keystonemiddleware.audit:filter_factory'
881 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
882 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200883
Oleg Bondarev98870a32017-05-29 16:53:19 +0400884Neutron with security groups disabled
885
886.. code-block:: yaml
887
888 neutron:
889 server:
890 security_groups_enabled: False
891 ....
892 compute:
893 security_groups_enabled: False
894 ....
895 gateway:
896 security_groups_enabled: False
897
Jiri Konecny93b19992016-04-12 11:15:39 +0200898
Aleš Komárek41e82312017-04-11 13:37:44 +0200899Neutron Client
900--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100901
902Neutron networks
903
904.. code-block:: yaml
905
906 neutron:
907 client:
908 enabled: true
909 server:
910 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100911 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100912 network:
913 inet1:
914 tenant: demo
915 shared: False
916 admin_state_up: True
917 router_external: True
918 provider_physical_network: inet
919 provider_network_type: flat
920 provider_segmentation_id: 2
921 subnet:
922 inet1-subnet1:
923 cidr: 192.168.90.0/24
924 enable_dhcp: False
925 inet2:
926 tenant: admin
927 shared: False
928 router_external: True
929 provider_network_type: "vlan"
930 subnet:
931 inet2-subnet1:
932 cidr: 192.168.92.0/24
933 enable_dhcp: False
934 inet2-subnet2:
935 cidr: 192.168.94.0/24
936 enable_dhcp: True
937 identity1:
938 network:
939 ...
940
Jiri Broulik5368cc52017-02-08 18:53:59 +0100941Neutron routers
942
943.. code-block:: yaml
944
945 neutron:
946 client:
947 enabled: true
948 server:
949 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100950 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100951 router:
952 inet1-router:
953 tenant: demo
954 admin_state_up: True
955 gateway_network: inet
956 interfaces:
957 - inet1-subnet1
958 - inet1-subnet2
959 identity1:
960 router:
961 ...
962
963 TODO: implement adding new interfaces to a router while updating it
964
965
966Neutron security groups
967
968.. code-block:: yaml
969
970 neutron:
971 client:
972 enabled: true
973 server:
974 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100975 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100976 security_group:
977 security_group1:
978 tenant: demo
979 description: security group 1
980 rules:
981 - direction: ingress
982 ethertype: IPv4
983 protocol: TCP
984 port_range_min: 1
985 port_range_max: 65535
986 remote_ip_prefix: 0.0.0.0/0
987 - direction: ingress
988 ethertype: IPv4
989 protocol: UDP
990 port_range_min: 1
991 port_range_max: 65535
992 remote_ip_prefix: 0.0.0.0/0
993 - direction: ingress
994 protocol: ICMP
995 remote_ip_prefix: 0.0.0.0/0
996 identity1:
997 security_group:
998 ...
999
1000 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
1001
Jiri Broulikde2e2902017-02-13 15:03:47 +01001002
1003Floating IP addresses
1004
1005.. code-block:: yaml
1006
1007 neutron:
1008 client:
1009 enabled: true
1010 server:
1011 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001012 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001013 floating_ip:
1014 prx01-instance:
1015 server: prx01.mk22-lab-basic.local
1016 subnet: private-subnet1
1017 network: public-net1
1018 tenant: demo
1019 gtw01-instance:
1020 ...
1021
1022.. note:: The network must have flag router:external set to True.
1023 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
1024
1025
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001026
1027Enable Neutron extensions (QoS, DNS, etc.)
1028------------------------------------------
1029.. code-block:: yaml
1030
1031 neutron:
1032 server:
1033 backend:
1034 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001035 dns:
1036 enabled: True
1037 host: 127.0.0.1
1038 port: 9001
1039 protocol: http
1040 ....
1041 qos
1042 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001043
1044
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001045
1046Neutron with Designate
1047-----------------------------------------
1048.. code-block:: yaml
1049
1050 neutron:
1051 server:
1052 backend:
1053 extension:
1054 dns:
1055 enabled: True
1056 host: 127.0.0.1
1057 port: 9001
1058 protocol: http
1059
1060
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001061Enhanced logging with logging.conf
1062----------------------------------
1063
1064By default logging.conf is disabled.
1065
1066That is possible to enable per-binary logging.conf with new variables:
1067 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
1068 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
1069
1070Only WatchedFileHandler and FluentHandler are available.
1071
1072Also it is possible to configure this with pillar:
1073
1074.. code-block:: yaml
1075
1076 neutron:
1077 server:
1078 logging:
1079 log_appender: true
1080 log_handlers:
1081 watchedfile:
1082 enabled: true
1083 fluentd:
1084 enabled: true
1085 ....
1086 compute:
1087 logging:
1088 log_appender: true
1089 log_handlers:
1090 watchedfile:
1091 enabled: true
1092 fluentd:
1093 enabled: true
1094 ....
1095 gateway:
1096 logging:
1097 log_appender: true
1098 log_handlers:
1099 watchedfile:
1100 enabled: true
1101 fluentd:
1102 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001103
Filip Pytloun20c0a442017-02-02 13:05:13 +01001104Documentation and Bugs
1105======================
1106
1107To learn how to install and update salt-formulas, consult the documentation
1108available online at:
1109
1110 http://salt-formulas.readthedocs.io/
1111
1112In the unfortunate event that bugs are discovered, they should be reported to
1113the appropriate issue tracker. Use Github issue tracker for specific salt
1114formula:
1115
1116 https://github.com/salt-formulas/salt-formula-neutron/issues
1117
1118For feature requests, bug reports or blueprints affecting entire ecosystem,
1119use Launchpad salt-formulas project:
1120
1121 https://launchpad.net/salt-formulas
1122
1123You can also join salt-formulas-users team and subscribe to mailing list:
1124
1125 https://launchpad.net/~salt-formulas-users
1126
1127Developers wishing to work on the salt-formulas projects should always base
1128their work on master branch and submit pull request against specific formula.
1129
1130 https://github.com/salt-formulas/salt-formula-neutron
1131
1132Any questions or feedback is always welcome so feel free to join our IRC
1133channel:
1134
1135 #salt-formulas @ irc.freenode.net