blob: 42ad76b49c50449e1a10dcdadc81b47841b39646 [file] [log] [blame]
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001=====
2Usage
3=====
Filip Pytlouncd028e42015-10-06 16:28:32 +02004
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03005Neutron is an OpenStack project to provide *networking as a service* between
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02006interface devices (e.g., vNICs) managed by other Openstack services (e.g.,
7nova).
Filip Pytlouncd028e42015-10-06 16:28:32 +02008
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03009Starting with 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
Michael Polenchuk1ff88652018-03-06 16:15:57 +040029 root_helper_daemon: false
Michael Polenchuk2151b272018-06-19 18:32:31 +040030 dhcp_lease_duration: 600
Michael Polenchukcece76d2018-06-21 14:56:17 +040031 firewall_driver: iptables_hybrid
Filip Pytlouncd028e42015-10-06 16:28:32 +020032 bind:
33 address: 172.20.0.1
34 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020035 database:
36 engine: mysql
37 host: 127.0.0.1
38 port: 3306
39 name: neutron
40 user: neutron
41 password: pwd
42 identity:
43 engine: keystone
44 host: 127.0.0.1
45 port: 35357
46 user: neutron
47 password: pwd
48 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020049 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020050 message_queue:
51 engine: rabbitmq
52 host: 127.0.0.1
53 port: 5672
54 user: openstack
55 password: pwd
56 virtual_host: '/openstack'
57 metadata:
58 host: 127.0.0.1
59 port: 8775
60 password: pass
Mykyta Karpin253406d2017-12-08 17:01:37 +020061 workers: 2
Petr Michalec61f7ab22016-11-29 16:29:09 +010062 audit:
63 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020064
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030065.. note:: The pagination is useful to retrieve a large bunch of resources,
66 because a single request may fail (timeout). This is enabled with both
67 parameters *allow_pagination* and *pagination_max_limit* as shown above.
Swann Croiset9407daf2017-02-02 15:27:56 +010068
OlgaGusarenko838c9fd2018-07-31 00:22:44 +030069Configuration of policy.json file:
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040070
71.. code-block:: yaml
72
73 neutron:
74 server:
75 ....
76 policy:
77 create_subnet: 'rule:admin_or_network_owner'
78 'get_network:queue_id': 'rule:admin_only'
79 # Add key without value to remove line from policy.json
80 'create_network:shared':
81
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040082Neutron LBaaSv2 enablement
83--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010084
85.. code-block:: yaml
86
87 neutron:
88 server:
89 lbaas:
90 enabled: true
91 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040092 octavia:
93 engine: octavia
94 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
95 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010096 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010097 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040098 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010099 controller_address: 10.182.129.239
100 controller_user: admin
101 controller_password: Cloudlab2016
102 controller_cloud_name: Default-Cloud
103 avi_adc2:
104 engine: avinetworks
105 ...
106
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300107.. note:: If the Contrail backend is set, Opencontrail loadbalancer
108 would be enabled automatically. In this case lbaas should disabled
109 in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100110
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300111 .. code-block:: yaml
Ondrej Smola314eee22017-03-08 21:21:16 +0100112
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300113 neutron:
114 server:
115 lbaas:
116 enabled: false
Elena Ezhova166d4012017-08-17 12:53:52 +0400117
118Neutron FWaaSv1 enablement
119--------------------------
120
121.. code-block:: yaml
122
123 neutron:
124 fwaas:
125 enabled: true
126 version: ocata
127 api_version: v1
128
129
Ondrej Smola12ff8192017-04-28 12:39:11 +0200130Enable CORS parameters
Elena Ezhova166d4012017-08-17 12:53:52 +0400131----------------------
Ondrej Smola12ff8192017-04-28 12:39:11 +0200132
133.. code-block:: yaml
134
135 neutron:
136 server:
137 cors:
138 allowed_origin: https:localhost.local,http:localhost.local
139 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
140 allow_methods: GET,PUT,POST,DELETE,PATCH
141 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
142 allow_credentials: True
143 max_age: 86400
144
Aleš Komárek41e82312017-04-11 13:37:44 +0200145Neutron VXLAN tenant networks with Network nodes
146------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100147
Aleš Komárek41e82312017-04-11 13:37:44 +0200148With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100149
150This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200151routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300152infrastructure and that remains encapsulated. External traffic will be
153routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100154
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300155The intention is that each tenant will require at least two (2) vrouters
156one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100157
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300158Neutron Server:
marcoa4428a32016-06-10 11:50:16 +0200159
160.. code-block:: yaml
161
162 neutron:
163 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100164 version: mitaka
Dmitry Stremkouski3c1be3e2017-11-18 11:04:20 +0300165 path_mtu: 1500
Jiri Broulik74f61112016-11-21 20:23:47 +0100166 bind:
167 address: 172.20.0.1
168 port: 9696
169 database:
170 engine: mysql
171 host: 127.0.0.1
172 port: 3306
173 name: neutron
174 user: neutron
175 password: pwd
176 identity:
177 engine: keystone
178 host: 127.0.0.1
179 port: 35357
180 user: neutron
181 password: pwd
182 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200183 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100184 message_queue:
185 engine: rabbitmq
186 host: 127.0.0.1
187 port: 5672
188 user: openstack
189 password: pwd
190 virtual_host: '/openstack'
191 global_physnet_mtu: 9000
192 l3_ha: False # Which type of router will be created by default
193 dvr: True # disabled for non DVR use case
194 backend:
195 engine: ml2
196 tenant_network_types: "flat,vxlan"
197 external_mtu: 9000
198 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400199 ovs:
200 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100201
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300202Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100203
204.. code-block:: yaml
205
206 neutron:
207 gateway:
208 enabled: True
209 version: mitaka
Michael Polenchuk2151b272018-06-19 18:32:31 +0400210 dhcp_lease_duration: 600
Michael Polenchukcece76d2018-06-21 14:56:17 +0400211 firewall_driver: iptables_hybrid
Jiri Broulik74f61112016-11-21 20:23:47 +0100212 message_queue:
213 engine: rabbitmq
214 host: 127.0.0.1
215 port: 5672
216 user: openstack
217 password: pwd
218 virtual_host: '/openstack'
219 local_ip: 192.168.20.20 # br-mesh ip address
220 dvr: True # disabled for non DVR use case
221 agent_mode: dvr_snat
222 metadata:
223 host: 127.0.0.1
224 password: pass
225 backend:
226 engine: ml2
227 tenant_network_types: "flat,vxlan"
228 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400229 ovs:
230 driver: openvswitch
Vasyl Saienko4bd2d922018-07-27 09:56:38 +0000231 agents:
232 dhcp:
233 ovs_use_veth: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100234
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300235Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100236
237.. code-block:: yaml
238
239 neutron:
240 compute:
241 enabled: True
242 version: mitaka
243 message_queue:
244 engine: rabbitmq
245 host: 127.0.0.1
246 port: 5672
247 user: openstack
248 password: pwd
249 virtual_host: '/openstack'
250 local_ip: 192.168.20.20 # br-mesh ip address
251 dvr: True # disabled for non DVR use case
252 agent_mode: dvr
253 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
254 metadata:
255 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300256 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100257 backend:
258 engine: ml2
259 tenant_network_types: "flat,vxlan"
260 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400261 ovs:
262 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100263 audit:
264 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100265
Aleš Komárek41e82312017-04-11 13:37:44 +0200266
Dmitry Stremkouskia3a4ab42017-10-23 17:37:12 +0300267Disable physnet1 bridge
268-----------------------
269
270By default we have external access turned on, so among any physnets in
271your reclass there would be additional one: physnet1, which is mapped to
272br-floating
273
274If you need internal nets only without this bridge, remove br-floating
275and configurations mappings. Disable mappings for this bridge on
276neutron-servers:
277
278.. code-block:: yaml
279
280 neutron:
281 server:
282 external_access: false
283
284gateways:
285
286.. code-block:: yaml
287
288 neutron:
289 gateway:
290 external_access: false
291
292compute nodes:
293
294.. code-block:: yaml
295
296 neutron:
297 compute:
298 external_access: false
299
300
Marcin Iwinskic50137a2018-01-22 14:18:24 +0100301Add additional bridge mappings for OVS bridges
302----------------------------------------------
303
304By default we have external access turned on, so among any physnets in
305your reclass there would be additional one: physnet1, which is mapped to
306br-floating
307
308If you need to add extra non-default bridge mappings they can be defined
309separately for both gateways and compute nodes:
310
311gateways:
312
313.. code-block:: yaml
314
315 neutron:
316 gateway:
317 bridge_mappings:
318 physnet4: br-floating-internet
319
320compute nodes:
321
322.. code-block:: yaml
323
324 neutron:
325 compute:
326 bridge_mappings:
327 physnet4: br-floating-internet
328
329
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300330Specify different mtu values for different physnets
331---------------------------------------------------
332
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300333Neutron Server:
Dmitry Stremkouski4b410222017-11-18 11:29:55 +0300334
335.. code-block:: yaml
336
337 neutron:
338 server:
339 version: mitaka
340 backend:
341 external_mtu: 1500
342 tenant_net_mtu: 9000
343 ironic_net_mtu: 9000
344
Jiri Broulik74f61112016-11-21 20:23:47 +0100345Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200346----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100347
348This section describes a network solution that utilises VxLAN overlay
349 networks without DVR with all routers being managed on the network nodes.
350
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300351Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100352
353.. code-block:: yaml
354
355 neutron:
356 server:
357 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100358 bind:
359 address: 172.20.0.1
360 port: 9696
361 database:
362 engine: mysql
363 host: 127.0.0.1
364 port: 3306
365 name: neutron
366 user: neutron
367 password: pwd
368 identity:
369 engine: keystone
370 host: 127.0.0.1
371 port: 35357
372 user: neutron
373 password: pwd
374 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200375 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100376 message_queue:
377 engine: rabbitmq
378 host: 127.0.0.1
379 port: 5672
380 user: openstack
381 password: pwd
382 virtual_host: '/openstack'
383 global_physnet_mtu: 9000
384 l3_ha: True
385 dvr: False
386 backend:
387 engine: ml2
388 tenant_network_types= "flat,vxlan"
389 external_mtu: 9000
390 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400391 ovs:
392 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100393
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300394Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100395
396.. code-block:: yaml
397
398 neutron:
399 gateway:
400 enabled: True
401 version: mitaka
402 message_queue:
403 engine: rabbitmq
404 host: 127.0.0.1
405 port: 5672
406 user: openstack
407 password: pwd
408 virtual_host: '/openstack'
409 local_ip: 192.168.20.20 # br-mesh ip address
410 dvr: False
411 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200412 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100413 metadata:
414 host: 127.0.0.1
415 password: pass
416 backend:
417 engine: ml2
418 tenant_network_types: "flat,vxlan"
419 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400420 ovs:
421 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100422
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300423Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100424
425.. code-block:: yaml
426
427 neutron:
428 compute:
429 enabled: True
430 version: mitaka
431 message_queue:
432 engine: rabbitmq
433 host: 127.0.0.1
434 port: 5672
435 user: openstack
436 password: pwd
437 virtual_host: '/openstack'
438 local_ip: 192.168.20.20 # br-mesh ip address
439 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300440 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100441 backend:
442 engine: ml2
443 tenant_network_types: "flat,vxlan"
444 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400445 ovs:
446 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100447
Aleš Komárek41e82312017-04-11 13:37:44 +0200448Neutron VXLAN tenant networks with Network Nodes with DVR
449---------------------------------------------------------
450
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300451With DVR for East-West and North-South, DVR everywhere, Network
452node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100453
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300454This section describes a network solution that utilises VxLAN
455overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100456Node is used only for SNAT.
457
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300458Neutron Server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100459
460.. code-block:: yaml
461
462 neutron:
463 server:
464 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100465 bind:
466 address: 172.20.0.1
467 port: 9696
468 database:
469 engine: mysql
470 host: 127.0.0.1
471 port: 3306
472 name: neutron
473 user: neutron
474 password: pwd
475 identity:
476 engine: keystone
477 host: 127.0.0.1
478 port: 35357
479 user: neutron
480 password: pwd
481 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200482 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100483 message_queue:
484 engine: rabbitmq
485 host: 127.0.0.1
486 port: 5672
487 user: openstack
488 password: pwd
489 virtual_host: '/openstack'
490 global_physnet_mtu: 9000
491 l3_ha: False
492 dvr: True
493 backend:
494 engine: ml2
495 tenant_network_types= "flat,vxlan"
496 external_mtu: 9000
497 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400498 ovs:
499 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100500
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300501Network Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100502
503.. code-block:: yaml
504
505 neutron:
506 gateway:
507 enabled: True
508 version: mitaka
509 message_queue:
510 engine: rabbitmq
511 host: 127.0.0.1
512 port: 5672
513 user: openstack
514 password: pwd
515 virtual_host: '/openstack'
516 local_ip: 192.168.20.20 # br-mesh ip address
517 dvr: True
518 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200519 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100520 metadata:
521 host: 127.0.0.1
522 password: pass
523 backend:
524 engine: ml2
525 tenant_network_types: "flat,vxlan"
526 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400527 ovs:
528 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100529
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300530Compute Node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100531
532.. code-block:: yaml
533
534 neutron:
535 compute:
536 enabled: True
537 version: mitaka
538 message_queue:
539 engine: rabbitmq
540 host: 127.0.0.1
541 port: 5672
542 user: openstack
543 password: pwd
544 virtual_host: '/openstack'
545 local_ip: 192.168.20.20 # br-mesh ip address
546 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300547 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100548 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200549 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100550 metadata:
551 host: 127.0.0.1
552 password: pass
553 backend:
554 engine: ml2
555 tenant_network_types: "flat,vxlan"
556 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400557 ovs:
558 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100559
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300560Sample Linux network configuration for DVR:
Jiri Broulik74f61112016-11-21 20:23:47 +0100561
562.. code-block:: yaml
563
564 linux:
565 network:
566 bridge: openvswitch
567 interface:
568 eth1:
569 enabled: true
570 type: eth
571 mtu: 9000
572 proto: manual
573 eth2:
574 enabled: true
575 type: eth
576 mtu: 9000
577 proto: manual
578 eth3:
579 enabled: true
580 type: eth
581 mtu: 9000
582 proto: manual
583 br-int:
584 enabled: true
585 mtu: 9000
586 type: ovs_bridge
587 br-floating:
588 enabled: true
589 mtu: 9000
590 type: ovs_bridge
591 float-to-ex:
592 enabled: true
593 type: ovs_port
594 mtu: 65000
595 bridge: br-floating
596 br-mgmt:
597 enabled: true
598 type: bridge
599 mtu: 9000
600 address: ${_param:single_address}
601 netmask: 255.255.255.0
602 use_interfaces:
603 - eth1
604 br-mesh:
605 enabled: true
606 type: bridge
607 mtu: 9000
608 address: ${_param:tenant_address}
609 netmask: 255.255.255.0
610 use_interfaces:
611 - eth2
612 br-ex:
613 enabled: true
614 type: bridge
615 mtu: 9000
616 address: ${_param:external_address}
617 netmask: 255.255.255.0
618 use_interfaces:
619 - eth3
620 use_ovs_ports:
621 - float-to-ex
622
Thom Gerdes3282d072017-05-30 22:06:04 +0000623Additonal VXLAN tenant network settings
624---------------------------------------
625
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300626The default multicast group of ``224.0.0.1`` only multicasts
627to a single subnet. Allow overriding it to allow larger underlay
628network topologies.
Thom Gerdes3282d072017-05-30 22:06:04 +0000629
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300630Neutron Server:
Thom Gerdes3282d072017-05-30 22:06:04 +0000631
632.. code-block:: yaml
633
634 neutron:
635 server:
636 vxlan:
637 group: 239.0.0.0/8
638 vni_ranges: "2:65535"
639
Jiri Broulik74f61112016-11-21 20:23:47 +0100640Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200641-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100642
643VLAN tenant provider
644
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300645Neutron Server only:
Jiri Broulik74f61112016-11-21 20:23:47 +0100646
647.. code-block:: yaml
648
649 neutron:
650 server:
651 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100652 ...
653 global_physnet_mtu: 9000
654 l3_ha: False
655 dvr: True
656 backend:
657 engine: ml2
658 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
659 tenant_vlan_range: "1000:2000"
660 external_vlan_range: "100:200" # Does not have to be defined.
661 external_mtu: 9000
662 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400663 ovs:
664 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100665
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300666Compute node:
Jiri Broulik74f61112016-11-21 20:23:47 +0100667
668.. code-block:: yaml
669
670 neutron:
671 compute:
672 version: mitaka
Jiri Broulik74f61112016-11-21 20:23:47 +0100673 ...
674 dvr: True
675 agent_mode: dvr
676 external_access: False
677 backend:
678 engine: ml2
679 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
680 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400681 ovs:
682 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100683
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400684Neutron with explicit physical networks
685---------------------------------------
Oleg Bondarevada324f2018-06-04 14:55:38 +0400686
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300687Neutron Server only:
Oleg Bondarevada324f2018-06-04 14:55:38 +0400688
689.. code-block:: yaml
690
691 neutron:
692 server:
693 version: ocata
694 ...
695 backend:
696 engine: ml2
697 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
698 ...
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400699 # also need to configure corresponding bridge_mappings on
Oleg Bondarevada324f2018-06-04 14:55:38 +0400700 # compute and gateway nodes
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400701 flat_networks_default: '*' # '*' to allow arbitrary names or '' to disable
Oleg Bondarevddb9af12018-07-02 19:07:57 +0400702 physnets: # only listed physnets will be configured (overrides physnet1/2/3)
703 external:
704 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400705 types:
706 - flat # possible values - 'flat' or 'vlan'
Oleg Bondarevada324f2018-06-04 14:55:38 +0400707 sriov_net:
708 mtu: 9000 # Optional, defaults to 1500
709 vlan_range: '100:200' # Optional
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400710 types:
711 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400712 ext_net2:
713 mtu: 1500
Oleg Bondarev47d9e2d2018-07-03 13:22:26 +0400714 types:
715 - flat
716 - vlan
Oleg Bondarevada324f2018-06-04 14:55:38 +0400717 mechanism:
718 ovs:
719 driver: openvswitch
720
Aleš Komárek41e82312017-04-11 13:37:44 +0200721Advanced Neutron Features (DPDK, SR-IOV)
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400722----------------------------------------
Aleš Komárek41e82312017-04-11 13:37:44 +0200723
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100724Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100725
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300726Enable datapath netdev for neutron openvswitch agent:
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100727
728.. code-block:: yaml
729
730 neutron:
731 server:
732 version: mitaka
733 ...
734 dpdk: True
735 ...
736
737 neutron:
738 compute:
739 version: mitaka
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100740 dpdk: True
Michael Polenchuk52911652018-04-12 22:09:49 +0400741 vhost_mode: client # options: client|server (default)
Oleg Bondarevee7e8302017-10-16 17:20:38 +0400742 vhost_socket_dir: /var/run/openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100743 backend:
744 engine: ml2
745 ...
746 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400747 ovs:
748 driver: openvswitch
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100749
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300750Neutron OVS SR-IOV:
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100751
752.. code-block:: yaml
753
754 neutron:
755 server:
756 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100757 backend:
758 engine: ml2
759 ...
760 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400761 ovs:
762 driver: openvswitch
763 sriov:
764 driver: sriovnicswitch
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400765 # Driver w/ highest number will be placed ahead in the list (default is 0).
766 # It's recommended for SR-IOV driver to set an order >0 to get it
767 # before (for example) the opendaylight one.
768 order: 9
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100769
770 neutron:
771 compute:
772 version: mitaka
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100773 ...
774 backend:
775 engine: ml2
776 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
777 sriov:
778 nic_one:
779 devname: eth1
780 physical_network: physnet3
781 mechanism:
Elena Ezhovad6a080c2017-10-09 15:25:16 +0400782 ovs:
783 driver: openvswitch
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100784
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300785Neutron with VLAN-aware-VMs
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400786---------------------------
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300787
788.. code-block:: yaml
789
790 neutron:
791 server:
792 vlan_aware_vms: true
793 ....
794 compute:
795 vlan_aware_vms: true
796 ....
797 gateway:
798 vlan_aware_vms: true
799
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400800Neutron with BGP VPN (BaGPipe driver)
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300801-------------------------------------
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400802
803.. code-block:: yaml
804
805 neutron:
806 server:
807 version: pike
808 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400809 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400810 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400811 ....
812 compute:
813 version: pike
814 bgp_vpn:
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400815 enabled: true
Michael Polenchuk0b3c5dd2018-06-27 12:04:32 +0400816 driver: bagpipe # Options: bagpipe/opencontrail/opendaylight[_v2]
Oleg Bondarevacb2e532018-03-06 10:43:59 +0400817 bagpipe:
818 local_address: 192.168.20.20 # IP address for mpls/gre tunnels
819 peers: 192.168.20.30 # IP addresses of BGP peers
820 autonomous_system: 64512 # Autonomous System number
821 enable_rtc: True # Enable RT Constraint (RFC4684)
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400822 backend:
Oleg Bondarev878ac462018-04-23 17:48:15 +0400823 ovs_extension: # for OVS agent only, not supported in SRIOV agent
Oleg Bondarevb63d27f2018-02-14 19:21:06 +0400824 bagpipe_bgpvpn:
825 enabled: True
826
Oleksii Chupryn16cb4e02018-02-26 14:20:39 +0200827Neutron with DHCP agent on compute node
828---------------------------------------
829
830.. code-block:: yaml
831
832 neutron:
833 ....
834 compute:
835 dhcp_agent_enabled: true
836 ....
837
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400838Neutron with OVN
839----------------
840
841Control node:
842
843.. code-block:: yaml
844
845 neutron:
846 server:
847 backend:
848 engine: ovn
849 mechanism:
850 ovn:
851 driver: ovn
852 tenant_network_types: "geneve,flat"
Michael Polenchukf59229b2018-06-19 16:24:49 +0400853 ovn:
854 ovn_l3_scheduler: leastloaded # valid options: chance, leastloaded
855 neutron_sync_mode: repair # valid options: log, off, repair
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400856 metadata_enabled: True
Michael Polenchuka3d492b2017-12-27 15:49:43 +0400857 ovn_ctl_opts:
858 db-nb-create-insecure-remote: 'yes'
859 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400860
861Compute node:
862
863.. code-block:: yaml
864
865 neutron:
866 compute:
867 local_ip: 10.2.0.105
868 controller_vip: 10.1.0.101
869 external_access: false
870 backend:
871 engine: ovn
Michael Polenchuk58161ef2018-05-15 18:04:09 +0400872 ovsdb_connection: tcp:127.0.0.1:6640
873 metadata:
874 enabled: true
875 ovsdb_server_iface: ptcp:6640:127.0.0.1
876 host: 10.1.0.101
877 password: unsegreto
878
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400879
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400880Neutron L2 Gateway
881----------------
882
883Control node:
884
885.. code-block:: yaml
886
887 neutron:
888 server:
889 version: pike
890 l2gw:
891 enabled: true
892 periodic_monitoring_interval: 5
893 quota_l2_gateway: 20
894 # service_provider=<service_type>:<name>:<driver>[:default]
895 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
896 backend:
897 engine: ml2
898
899Network/Gateway node:
900
901.. code-block:: yaml
902
903 neutron:
904 gateway:
905 version: pike
906 l2gw:
907 enabled: true
908 debug: true
909 socket_timeout: 20
910 ovsdb_hosts:
911 # <ovsdb_name>: <ip address>:<port>
912 # - ovsdb_name: a user defined symbolic identifier of physical switch
913 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
914 ovsdb1: 10.164.5.33:6632
915 ovsdb2: 10.164.4.33:6632
916
917
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400918OpenDaylight integration
919------------------------
920
921Control node:
922
923.. code-block:: yaml
924
925 neutron:
926 server:
927 backend:
928 opendaylight: true
929 router: odl-router_v2
930 host: 10.20.0.77
931 rest_api_port: 8282
932 user: admin
933 password: admin
934 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300935 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400936 enable_websocket: true
937 enable_dhcp_service: false
938 mechanism:
939 ovs:
940 driver: opendaylight_v2
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400941 order: 1
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400942
943Network/Gateway node:
944
945.. code-block:: yaml
946
947 neutron:
948 gateway:
949 backend:
950 router: odl-router_v2
951 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300952 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400953 opendaylight:
954 ovsdb_server_iface: ptcp:6639:127.0.0.1
955 ovsdb_odl_iface: tcp:10.20.0.77:6640
956 tunnel_ip: 10.1.0.110
957 provider_mappings: physnet1:br-floating
958
959Compute node:
960
961.. code-block:: yaml
962
963 neutron:
964 compute:
965 opendaylight:
966 ovsdb_server_iface: ptcp:6639:127.0.0.1
967 ovsdb_odl_iface: tcp:10.20.0.77:6640
968 tunnel_ip: 10.1.0.105
969 provider_mappings: physnet1:br-floating
970
971
Michael Polenchuk9cccecc2018-09-14 14:54:18 +0400972Service Function Chaining Extension (SFC)
973----------------
974
975.. code-block:: yaml
976
977 neutron:
978 server:
979 sfc:
980 enabled: true
981 sfc_drivers:
982 - ovs # valid options: ovs, odl, ovn (not implemented yet)
983 flow_classifier_drivers:
984 - ovs # valid options: see above
985 ....
986 compute:
987 backend:
988 ovs_extension:
989 sfc:
990 enabled: True
991
992
Aleš Komárek41e82312017-04-11 13:37:44 +0200993Neutron Server
994--------------
995
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300996Neutron Server with OpenContrail:
Jiri Broulik74f61112016-11-21 20:23:47 +0100997
998.. code-block:: yaml
999
1000 neutron:
1001 server:
marcoa4428a32016-06-10 11:50:16 +02001002 backend:
1003 engine: contrail
1004 host: contrail_discovery_host
1005 port: 8082
1006 user: admin
1007 password: password
1008 tenant: admin
1009 token: token
1010
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001011Neutron Server with Midonet:
marcoa4428a32016-06-10 11:50:16 +02001012
1013.. code-block:: yaml
1014
1015 neutron:
1016 server:
1017 backend:
1018 engine: midonet
1019 host: midonet_api_host
1020 port: 8181
1021 user: admin
1022 password: password
1023
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001024Neutron Server with NSX:
Vasyl Saienko4549efe2018-07-26 16:06:04 +00001025
1026.. code-block:: yaml
1027
1028 neutron:
1029 server:
1030 backend:
1031 engine: vmware
1032 core_plugin: vmware_nsxv3
1033 vmware:
1034 nsx:
1035 extension_drivers:
1036 - vmware_nsxv3_dns
1037 v3:
1038 api_password: nsx_password
1039 api_user: nsx_username
1040 api_managers:
1041 01:
1042 scheme: https
1043 host: 192.168.10.120
1044 port: '443'
1045 insecure: true
1046
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001047Neutron Keystone region:
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +01001048
1049.. code-block:: yaml
1050
1051 neutron:
1052 server:
1053 enabled: true
1054 version: kilo
1055 ...
1056 identity:
1057 region: RegionTwo
1058 ...
1059 compute:
1060 region: RegionTwo
1061 ...
1062
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001063Client-side RabbitMQ HA setup:
Jiri Konecny93b19992016-04-12 11:15:39 +02001064
1065.. code-block:: yaml
1066
1067 neutron:
1068 server:
1069 ....
1070 message_queue:
1071 engine: rabbitmq
1072 members:
1073 - host: 10.0.16.1
1074 - host: 10.0.16.2
1075 - host: 10.0.16.3
1076 user: openstack
1077 password: pwd
1078 virtual_host: '/openstack'
1079 ....
1080
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001081Configuring TLS communications
1082------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001083
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001084.. note:: By default, system-wide installed CA certs are used,
1085 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001086
1087- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001088
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001089 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001090
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001091 neutron:
1092 server, gateway, compute:
1093 message_queue:
1094 port: 5671
1095 ssl:
1096 enabled: True
1097 (optional) cacert: cert body if the cacert_file does not exists
1098 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
1099 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001100
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001101- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001102
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001103 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001104
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001105 neutron:
1106 server:
1107 database:
1108 ssl:
1109 enabled: True
1110 (optional) cacert: cert body if the cacert_file does not exists
1111 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001112
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001113- **Openstack HTTPS API**
1114
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001115 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001116
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001117 neutron:
1118 server:
1119 identity:
1120 protocol: https
1121 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001122
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001123Enable auditing filter, ie: CADF:
Petr Michalec61f7ab22016-11-29 16:29:09 +01001124
1125.. code-block:: yaml
1126
1127 neutron:
1128 server:
1129 audit:
1130 enabled: true
1131 ....
1132 filter_factory: 'keystonemiddleware.audit:filter_factory'
1133 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1134 ....
1135 compute:
1136 audit:
1137 enabled: true
1138 ....
1139 filter_factory: 'keystonemiddleware.audit:filter_factory'
1140 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1141 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001142
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001143Neutron with security groups disabled:
Oleg Bondarev98870a32017-05-29 16:53:19 +04001144
1145.. code-block:: yaml
1146
1147 neutron:
1148 server:
1149 security_groups_enabled: False
1150 ....
1151 compute:
1152 security_groups_enabled: False
1153 ....
1154 gateway:
1155 security_groups_enabled: False
1156
Jiri Konecny93b19992016-04-12 11:15:39 +02001157
Aleš Komárek41e82312017-04-11 13:37:44 +02001158Neutron Client
1159--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001160
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001161Neutron networks:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001162
1163.. code-block:: yaml
1164
1165 neutron:
1166 client:
1167 enabled: true
1168 server:
1169 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001170 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001171 network:
1172 inet1:
1173 tenant: demo
1174 shared: False
1175 admin_state_up: True
1176 router_external: True
1177 provider_physical_network: inet
1178 provider_network_type: flat
1179 provider_segmentation_id: 2
1180 subnet:
1181 inet1-subnet1:
1182 cidr: 192.168.90.0/24
1183 enable_dhcp: False
1184 inet2:
1185 tenant: admin
1186 shared: False
1187 router_external: True
1188 provider_network_type: "vlan"
1189 subnet:
1190 inet2-subnet1:
1191 cidr: 192.168.92.0/24
1192 enable_dhcp: False
1193 inet2-subnet2:
1194 cidr: 192.168.94.0/24
1195 enable_dhcp: True
1196 identity1:
1197 network:
1198 ...
1199
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001200Neutron routers:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001201
1202.. code-block:: yaml
1203
1204 neutron:
1205 client:
1206 enabled: true
1207 server:
1208 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001209 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001210 router:
1211 inet1-router:
1212 tenant: demo
1213 admin_state_up: True
1214 gateway_network: inet
1215 interfaces:
1216 - inet1-subnet1
1217 - inet1-subnet2
1218 identity1:
1219 router:
1220 ...
1221
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001222.. TODO implement adding new interfaces to a router while updating it
Jiri Broulik5368cc52017-02-08 18:53:59 +01001223
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001224Neutron security groups:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001225
1226.. code-block:: yaml
1227
1228 neutron:
1229 client:
1230 enabled: true
1231 server:
1232 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001233 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001234 security_group:
1235 security_group1:
1236 tenant: demo
1237 description: security group 1
1238 rules:
1239 - direction: ingress
1240 ethertype: IPv4
1241 protocol: TCP
1242 port_range_min: 1
1243 port_range_max: 65535
1244 remote_ip_prefix: 0.0.0.0/0
1245 - direction: ingress
1246 ethertype: IPv4
1247 protocol: UDP
1248 port_range_min: 1
1249 port_range_max: 65535
1250 remote_ip_prefix: 0.0.0.0/0
1251 - direction: ingress
1252 protocol: ICMP
1253 remote_ip_prefix: 0.0.0.0/0
1254 identity1:
1255 security_group:
1256 ...
1257
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001258.. TODO: implement updating existing security rules (now it adds new rule if
1259 trying to update existing one)
Jiri Broulik5368cc52017-02-08 18:53:59 +01001260
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001261Floating IP addresses:
Jiri Broulikde2e2902017-02-13 15:03:47 +01001262
1263.. code-block:: yaml
1264
1265 neutron:
1266 client:
1267 enabled: true
1268 server:
1269 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001270 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001271 floating_ip:
1272 prx01-instance:
1273 server: prx01.mk22-lab-basic.local
1274 subnet: private-subnet1
1275 network: public-net1
1276 tenant: demo
1277 gtw01-instance:
1278 ...
1279
1280.. note:: The network must have flag router:external set to True.
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001281 Instance port in the stated subnet will be associated
1282 with the dynamically generated floating IP.
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001283
1284Enable Neutron extensions (QoS, DNS, etc.)
1285------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001286
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001287.. code-block:: yaml
1288
1289 neutron:
1290 server:
1291 backend:
1292 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001293 dns:
1294 enabled: True
1295 host: 127.0.0.1
1296 port: 9001
1297 protocol: http
1298 ....
1299 qos
1300 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001301
Oleg Bondarev878ac462018-04-23 17:48:15 +04001302Different Neutron extensions for different agents
1303-------------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001304
Oleg Bondarev878ac462018-04-23 17:48:15 +04001305.. code-block:: yaml
1306
1307 neutron:
1308 server:
1309 backend:
1310 extension: # common extensions for OVS and SRIOV agents
1311 dns:
1312 enabled: True
1313 ...
1314 qos
1315 enabled: True
1316 ovs_extension: # OVS specific extensions
1317 bagpipe_bgpvpn:
1318 enabled: True
1319 sriov_extension: # SRIOV specific extensions
1320 dummy:
1321 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001322
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001323Neutron with Designate
1324-----------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001325
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001326.. code-block:: yaml
1327
1328 neutron:
1329 server:
1330 backend:
1331 extension:
1332 dns:
1333 enabled: True
1334 host: 127.0.0.1
1335 port: 9001
1336 protocol: http
1337
Marek Celoud67ce2062018-01-31 13:44:55 +01001338Enable RBAC for OpenContrail engine
1339-----------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001340
Marek Celoud67ce2062018-01-31 13:44:55 +01001341.. code-block:: yaml
1342
1343 neutron:
1344 server:
1345 backend:
1346 engine: contrail
1347 rbac:
1348 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001349
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001350Enhanced logging with logging.conf
1351----------------------------------
1352
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001353By default ``logging.conf`` is disabled.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001354
1355That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001356
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001357* ``openstack_log_appender``
1358 Set to true to enable ``log_config_append`` for all OpenStack services
1359
1360* ``openstack_fluentd_handler_enabled``
1361 Set to true to enable FluentHandler for all Openstack services
1362
1363* ``openstack_ossyslog_handler_enabled``
1364 Set to true to enable OSSysLogHandler for all Openstack services.
1365
1366Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
1367are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001368
1369Also it is possible to configure this with pillar:
1370
1371.. code-block:: yaml
1372
1373 neutron:
1374 server:
1375 logging:
1376 log_appender: true
1377 log_handlers:
1378 watchedfile:
1379 enabled: true
1380 fluentd:
1381 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001382 ossyslog:
1383 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001384 ....
1385 compute:
1386 logging:
1387 log_appender: true
1388 log_handlers:
1389 watchedfile:
1390 enabled: true
1391 fluentd:
1392 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001393 ossyslog:
1394 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001395 ....
1396 gateway:
1397 logging:
1398 log_appender: true
1399 log_handlers:
1400 watchedfile:
1401 enabled: true
1402 fluentd:
1403 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001404 ossyslog:
1405 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001406
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001407Logging levels pillar example:
1408
1409.. code-block:: yaml
1410
1411 neutron:
1412 server:
1413 logging:
1414 log_appender: true
1415 loggers:
1416 root:
1417 level: 'DEBUG'
1418 neutron:
1419 level: 'DEBUG'
1420 amqplib:
1421 level: 'DEBUG'
1422 sqlalchemy:
1423 level: 'DEBUG'
1424 boto:
1425 level: 'DEBUG'
1426 suds:
1427 level: 'DEBUG'
1428 eventletwsgi:
1429 level: 'DEBUG'
1430 ......
1431
Vasyl Saienkoba420732018-09-07 10:19:32 +00001432Upgrades
1433========
1434
1435Each openstack formula provide set of phases (logical bloks) that will help to
1436build flexible upgrade orchestration logic for particular components. The list
1437of phases might and theirs descriptions are listed in table below:
1438
1439+-------------------------------+------------------------------------------------------+
1440| State | Description |
1441+===============================+======================================================+
1442| <app>.upgrade.service_running | Ensure that all services for particular application |
1443| | are enabled for autostart and running |
1444+-------------------------------+------------------------------------------------------+
1445| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1446| | disabled for autostart and dead |
1447+-------------------------------+------------------------------------------------------+
1448| <app>.upgrade.pkg_latest | Ensure that packages used by particular application |
1449| | are installed to latest available version. |
1450| | This will not upgrade data plane packages like qemu |
1451| | and openvswitch as usually minimal required version |
1452| | in openstack services is really old. The data plane |
1453| | packages should be upgraded separately by `apt-get |
1454| | upgrade` or `apt-get dist-upgrade` |
1455| | Applying this state will not autostart service. |
1456+-------------------------------+------------------------------------------------------+
1457| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1458+-------------------------------+------------------------------------------------------+
1459| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1460| | cloud before running upgrade. |
1461| | Only non destructive actions will be applied during |
1462| | this phase. Perform service built in service check |
1463| | like (keystone-manage doctor and nova-status upgrade)|
1464+-------------------------------+------------------------------------------------------+
1465| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1466| | phase resources will be gracefully removed from |
1467| | current node if it is allowed. Services for upgraded |
1468| | application will be set to admin disabled state to |
1469| | make sure node will not participate in resources |
1470| | scheduling. For example on gtw nodes this will set |
1471| | all agents to admin disable state and will move all |
1472| | routers to other agents. |
1473+-------------------------------+------------------------------------------------------+
1474| <app>.upgrade.upgrade | This state will basically upgrade application on |
1475| | particular target. Stop services, render |
1476| | configuration, install new packages, run offline |
1477| | dbsync (for ctl), start services. Data plane should |
1478| | not be affected, only OpenStack python services. |
1479+-------------------------------+------------------------------------------------------+
1480| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1481+-------------------------------+------------------------------------------------------+
1482| <app>.upgrade.post | This phase should be launched only when upgrade of |
1483| | the cloud is completed. |
1484+-------------------------------+------------------------------------------------------+
1485| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1486| | operations, verify do not have dead network |
1487| | agents/compute services) |
1488+-------------------------------+------------------------------------------------------+
1489
1490
Oleksandr Shyshkof51b94c2018-08-31 16:05:27 +03001491Enable x509 and ssl communication between Neutron and Galera cluster.
1492---------------------
1493By default communication between Neutron and Galera is unsecure.
1494
1495neutron:
1496 server:
1497 database:
1498 x509:
1499 enabled: True
1500
1501You able to set custom certificates in pillar:
1502
1503neutron:
1504 server:
1505 database:
1506 x509:
1507 cacert: (certificate content)
1508 cert: (certificate content)
1509 key: (certificate content)
1510
1511You can read more about it here:
1512 https://docs.openstack.org/security-guide/databases/database-access-control.html
1513
Filip Pytloun20c0a442017-02-02 13:05:13 +01001514Documentation and Bugs
1515======================
1516
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001517* http://salt-formulas.readthedocs.io/
1518 Learn how to install and update salt-formulas
Filip Pytloun20c0a442017-02-02 13:05:13 +01001519
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001520* https://github.com/salt-formulas/salt-formula-neutron/issues
1521 In the unfortunate event that bugs are discovered, report the issue to the
1522 appropriate issue tracker. Use the Github issue tracker for a specific salt
1523 formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001524
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001525* https://launchpad.net/salt-formulas
1526 For feature requests, bug reports, or blueprints affecting the entire
1527 ecosystem, use the Launchpad salt-formulas project
Filip Pytloun20c0a442017-02-02 13:05:13 +01001528
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001529* https://launchpad.net/~salt-formulas-users
1530 Join the salt-formulas-users team and subscribe to mailing list if required
Filip Pytloun20c0a442017-02-02 13:05:13 +01001531
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001532* https://github.com/salt-formulas/salt-formula-neutron
1533 Develop the salt-formulas projects in the master branch and then submit pull
1534 requests against a specific formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001535
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001536* #salt-formulas @ irc.freenode.net
1537 Use this IRC channel in case of any questions or feedback which is always
1538 welcome
Filip Pytloun20c0a442017-02-02 13:05:13 +01001539