blob: f108a5b0fd45dff23f3e54a3908985d4f538df23 [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 Polenchuka3d492b2017-12-27 15:49:43 +0400856 ovn_ctl_opts:
857 db-nb-create-insecure-remote: 'yes'
858 db-sb-create-insecure-remote: 'yes'
Oleg Bondarev0575ae42017-07-28 16:36:25 +0400859
860Compute node:
861
862.. code-block:: yaml
863
864 neutron:
865 compute:
866 local_ip: 10.2.0.105
867 controller_vip: 10.1.0.101
868 external_access: false
869 backend:
870 engine: ovn
871
Michael Polenchukcccd1a52018-02-02 17:41:16 +0400872Neutron L2 Gateway
873----------------
874
875Control node:
876
877.. code-block:: yaml
878
879 neutron:
880 server:
881 version: pike
882 l2gw:
883 enabled: true
884 periodic_monitoring_interval: 5
885 quota_l2_gateway: 20
886 # service_provider=<service_type>:<name>:<driver>[:default]
887 service_provider: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
888 backend:
889 engine: ml2
890
891Network/Gateway node:
892
893.. code-block:: yaml
894
895 neutron:
896 gateway:
897 version: pike
898 l2gw:
899 enabled: true
900 debug: true
901 socket_timeout: 20
902 ovsdb_hosts:
903 # <ovsdb_name>: <ip address>:<port>
904 # - ovsdb_name: a user defined symbolic identifier of physical switch
905 # - ip address: the address or dns name for the OVSDB server (i.e. pointer to the switch)
906 ovsdb1: 10.164.5.33:6632
907 ovsdb2: 10.164.4.33:6632
908
909
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400910OpenDaylight integration
911------------------------
912
913Control node:
914
915.. code-block:: yaml
916
917 neutron:
918 server:
919 backend:
920 opendaylight: true
921 router: odl-router_v2
922 host: 10.20.0.77
923 rest_api_port: 8282
924 user: admin
925 password: admin
926 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300927 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400928 enable_websocket: true
929 enable_dhcp_service: false
930 mechanism:
931 ovs:
932 driver: opendaylight_v2
Michael Polenchuk0bf59a72018-06-19 18:06:56 +0400933 order: 1
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400934
935Network/Gateway node:
936
937.. code-block:: yaml
938
939 neutron:
940 gateway:
941 backend:
942 router: odl-router_v2
943 ovsdb_connection: tcp:127.0.0.1:6639
Oleksii Chuprynfed79572018-07-20 14:11:35 +0300944 ovsdb_interface: native
Michael Polenchuk87d2b742017-06-29 12:05:25 +0400945 opendaylight:
946 ovsdb_server_iface: ptcp:6639:127.0.0.1
947 ovsdb_odl_iface: tcp:10.20.0.77:6640
948 tunnel_ip: 10.1.0.110
949 provider_mappings: physnet1:br-floating
950
951Compute node:
952
953.. code-block:: yaml
954
955 neutron:
956 compute:
957 opendaylight:
958 ovsdb_server_iface: ptcp:6639:127.0.0.1
959 ovsdb_odl_iface: tcp:10.20.0.77:6640
960 tunnel_ip: 10.1.0.105
961 provider_mappings: physnet1:br-floating
962
963
Michael Polenchuk9cccecc2018-09-14 14:54:18 +0400964Service Function Chaining Extension (SFC)
965----------------
966
967.. code-block:: yaml
968
969 neutron:
970 server:
971 sfc:
972 enabled: true
973 sfc_drivers:
974 - ovs # valid options: ovs, odl, ovn (not implemented yet)
975 flow_classifier_drivers:
976 - ovs # valid options: see above
977 ....
978 compute:
979 backend:
980 ovs_extension:
981 sfc:
982 enabled: True
983
984
Aleš Komárek41e82312017-04-11 13:37:44 +0200985Neutron Server
986--------------
987
OlgaGusarenko838c9fd2018-07-31 00:22:44 +0300988Neutron Server with OpenContrail:
Jiri Broulik74f61112016-11-21 20:23:47 +0100989
990.. code-block:: yaml
991
992 neutron:
993 server:
marcoa4428a32016-06-10 11:50:16 +0200994 backend:
995 engine: contrail
996 host: contrail_discovery_host
997 port: 8082
998 user: admin
999 password: password
1000 tenant: admin
1001 token: token
1002
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001003Neutron Server with Midonet:
marcoa4428a32016-06-10 11:50:16 +02001004
1005.. code-block:: yaml
1006
1007 neutron:
1008 server:
1009 backend:
1010 engine: midonet
1011 host: midonet_api_host
1012 port: 8181
1013 user: admin
1014 password: password
1015
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001016Neutron Server with NSX:
Vasyl Saienko4549efe2018-07-26 16:06:04 +00001017
1018.. code-block:: yaml
1019
1020 neutron:
1021 server:
1022 backend:
1023 engine: vmware
1024 core_plugin: vmware_nsxv3
1025 vmware:
1026 nsx:
1027 extension_drivers:
1028 - vmware_nsxv3_dns
1029 v3:
1030 api_password: nsx_password
1031 api_user: nsx_username
1032 api_managers:
1033 01:
1034 scheme: https
1035 host: 192.168.10.120
1036 port: '443'
1037 insecure: true
1038
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001039Neutron Keystone region:
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +01001040
1041.. code-block:: yaml
1042
1043 neutron:
1044 server:
1045 enabled: true
1046 version: kilo
1047 ...
1048 identity:
1049 region: RegionTwo
1050 ...
1051 compute:
1052 region: RegionTwo
1053 ...
1054
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001055Client-side RabbitMQ HA setup:
Jiri Konecny93b19992016-04-12 11:15:39 +02001056
1057.. code-block:: yaml
1058
1059 neutron:
1060 server:
1061 ....
1062 message_queue:
1063 engine: rabbitmq
1064 members:
1065 - host: 10.0.16.1
1066 - host: 10.0.16.2
1067 - host: 10.0.16.3
1068 user: openstack
1069 password: pwd
1070 virtual_host: '/openstack'
1071 ....
1072
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001073Configuring TLS communications
1074------------------------------
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001075
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001076.. note:: By default, system-wide installed CA certs are used,
1077 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001078
1079- **RabbitMQ TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001080
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001081 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001082
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001083 neutron:
1084 server, gateway, compute:
1085 message_queue:
1086 port: 5671
1087 ssl:
1088 enabled: True
1089 (optional) cacert: cert body if the cacert_file does not exists
1090 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
1091 (optional) version: TLSv1_2
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001092
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001093- **MySQL TLS**
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001094
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001095 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001096
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001097 neutron:
1098 server:
1099 database:
1100 ssl:
1101 enabled: True
1102 (optional) cacert: cert body if the cacert_file does not exists
1103 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001104
Kirill Bespalovdd748b62017-11-21 10:42:57 +03001105- **Openstack HTTPS API**
1106
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001107 .. code-block:: yaml
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001108
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001109 neutron:
1110 server:
1111 identity:
1112 protocol: https
1113 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov8fffe022017-08-03 17:55:02 +03001114
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001115Enable auditing filter, ie: CADF:
Petr Michalec61f7ab22016-11-29 16:29:09 +01001116
1117.. code-block:: yaml
1118
1119 neutron:
1120 server:
1121 audit:
1122 enabled: true
1123 ....
1124 filter_factory: 'keystonemiddleware.audit:filter_factory'
1125 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1126 ....
1127 compute:
1128 audit:
1129 enabled: true
1130 ....
1131 filter_factory: 'keystonemiddleware.audit:filter_factory'
1132 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
1133 ....
Jiri Konecny93b19992016-04-12 11:15:39 +02001134
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001135Neutron with security groups disabled:
Oleg Bondarev98870a32017-05-29 16:53:19 +04001136
1137.. code-block:: yaml
1138
1139 neutron:
1140 server:
1141 security_groups_enabled: False
1142 ....
1143 compute:
1144 security_groups_enabled: False
1145 ....
1146 gateway:
1147 security_groups_enabled: False
1148
Jiri Konecny93b19992016-04-12 11:15:39 +02001149
Aleš Komárek41e82312017-04-11 13:37:44 +02001150Neutron Client
1151--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +01001152
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001153Neutron networks:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001154
1155.. code-block:: yaml
1156
1157 neutron:
1158 client:
1159 enabled: true
1160 server:
1161 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001162 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001163 network:
1164 inet1:
1165 tenant: demo
1166 shared: False
1167 admin_state_up: True
1168 router_external: True
1169 provider_physical_network: inet
1170 provider_network_type: flat
1171 provider_segmentation_id: 2
1172 subnet:
1173 inet1-subnet1:
1174 cidr: 192.168.90.0/24
1175 enable_dhcp: False
1176 inet2:
1177 tenant: admin
1178 shared: False
1179 router_external: True
1180 provider_network_type: "vlan"
1181 subnet:
1182 inet2-subnet1:
1183 cidr: 192.168.92.0/24
1184 enable_dhcp: False
1185 inet2-subnet2:
1186 cidr: 192.168.94.0/24
1187 enable_dhcp: True
1188 identity1:
1189 network:
1190 ...
1191
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001192Neutron routers:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001193
1194.. code-block:: yaml
1195
1196 neutron:
1197 client:
1198 enabled: true
1199 server:
1200 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001201 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001202 router:
1203 inet1-router:
1204 tenant: demo
1205 admin_state_up: True
1206 gateway_network: inet
1207 interfaces:
1208 - inet1-subnet1
1209 - inet1-subnet2
1210 identity1:
1211 router:
1212 ...
1213
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001214.. TODO implement adding new interfaces to a router while updating it
Jiri Broulik5368cc52017-02-08 18:53:59 +01001215
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001216Neutron security groups:
Jiri Broulik5368cc52017-02-08 18:53:59 +01001217
1218.. code-block:: yaml
1219
1220 neutron:
1221 client:
1222 enabled: true
1223 server:
1224 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001225 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +01001226 security_group:
1227 security_group1:
1228 tenant: demo
1229 description: security group 1
1230 rules:
1231 - direction: ingress
1232 ethertype: IPv4
1233 protocol: TCP
1234 port_range_min: 1
1235 port_range_max: 65535
1236 remote_ip_prefix: 0.0.0.0/0
1237 - direction: ingress
1238 ethertype: IPv4
1239 protocol: UDP
1240 port_range_min: 1
1241 port_range_max: 65535
1242 remote_ip_prefix: 0.0.0.0/0
1243 - direction: ingress
1244 protocol: ICMP
1245 remote_ip_prefix: 0.0.0.0/0
1246 identity1:
1247 security_group:
1248 ...
1249
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001250.. TODO: implement updating existing security rules (now it adds new rule if
1251 trying to update existing one)
Jiri Broulik5368cc52017-02-08 18:53:59 +01001252
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001253Floating IP addresses:
Jiri Broulikde2e2902017-02-13 15:03:47 +01001254
1255.. code-block:: yaml
1256
1257 neutron:
1258 client:
1259 enabled: true
1260 server:
1261 identity:
Richard Felklaac256a2017-03-23 15:43:49 +01001262 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +01001263 floating_ip:
1264 prx01-instance:
1265 server: prx01.mk22-lab-basic.local
1266 subnet: private-subnet1
1267 network: public-net1
1268 tenant: demo
1269 gtw01-instance:
1270 ...
1271
1272.. note:: The network must have flag router:external set to True.
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001273 Instance port in the stated subnet will be associated
1274 with the dynamically generated floating IP.
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001275
1276Enable Neutron extensions (QoS, DNS, etc.)
1277------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001278
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001279.. code-block:: yaml
1280
1281 neutron:
1282 server:
1283 backend:
1284 extension:
Oleg Iurchenkoac17f4f2017-10-06 11:24:27 +03001285 dns:
1286 enabled: True
1287 host: 127.0.0.1
1288 port: 9001
1289 protocol: http
1290 ....
1291 qos
1292 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001293
Oleg Bondarev878ac462018-04-23 17:48:15 +04001294Different Neutron extensions for different agents
1295-------------------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001296
Oleg Bondarev878ac462018-04-23 17:48:15 +04001297.. code-block:: yaml
1298
1299 neutron:
1300 server:
1301 backend:
1302 extension: # common extensions for OVS and SRIOV agents
1303 dns:
1304 enabled: True
1305 ...
1306 qos
1307 enabled: True
1308 ovs_extension: # OVS specific extensions
1309 bagpipe_bgpvpn:
1310 enabled: True
1311 sriov_extension: # SRIOV specific extensions
1312 dummy:
1313 enabled: True
Oleg Iurchenkode71cc22017-09-18 17:58:56 +03001314
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001315Neutron with Designate
1316-----------------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001317
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001318.. code-block:: yaml
1319
1320 neutron:
1321 server:
1322 backend:
1323 extension:
1324 dns:
1325 enabled: True
1326 host: 127.0.0.1
1327 port: 9001
1328 protocol: http
1329
Marek Celoud67ce2062018-01-31 13:44:55 +01001330Enable RBAC for OpenContrail engine
1331-----------------------------------
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001332
Marek Celoud67ce2062018-01-31 13:44:55 +01001333.. code-block:: yaml
1334
1335 neutron:
1336 server:
1337 backend:
1338 engine: contrail
1339 rbac:
1340 enabled: True
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001341
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001342Enhanced logging with logging.conf
1343----------------------------------
1344
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001345By default ``logging.conf`` is disabled.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001346
1347That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001348
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001349* ``openstack_log_appender``
1350 Set to true to enable ``log_config_append`` for all OpenStack services
1351
1352* ``openstack_fluentd_handler_enabled``
1353 Set to true to enable FluentHandler for all Openstack services
1354
1355* ``openstack_ossyslog_handler_enabled``
1356 Set to true to enable OSSysLogHandler for all Openstack services.
1357
1358Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
1359are available.
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001360
1361Also it is possible to configure this with pillar:
1362
1363.. code-block:: yaml
1364
1365 neutron:
1366 server:
1367 logging:
1368 log_appender: true
1369 log_handlers:
1370 watchedfile:
1371 enabled: true
1372 fluentd:
1373 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001374 ossyslog:
1375 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001376 ....
1377 compute:
1378 logging:
1379 log_appender: true
1380 log_handlers:
1381 watchedfile:
1382 enabled: true
1383 fluentd:
1384 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001385 ossyslog:
1386 enabled: true
Dmitry Kalashnik35dd0e02017-12-07 14:16:25 +04001387 ....
1388 gateway:
1389 logging:
1390 log_appender: true
1391 log_handlers:
1392 watchedfile:
1393 enabled: true
1394 fluentd:
1395 enabled: true
Oleksii Chupryn156c5f42018-02-07 10:06:50 +02001396 ossyslog:
1397 enabled: true
Oleg Iurchenko8cf6cf52017-09-18 15:44:03 +03001398
Oleksii Grudevfe73ee52018-05-14 14:08:11 +03001399Logging levels pillar example:
1400
1401.. code-block:: yaml
1402
1403 neutron:
1404 server:
1405 logging:
1406 log_appender: true
1407 loggers:
1408 root:
1409 level: 'DEBUG'
1410 neutron:
1411 level: 'DEBUG'
1412 amqplib:
1413 level: 'DEBUG'
1414 sqlalchemy:
1415 level: 'DEBUG'
1416 boto:
1417 level: 'DEBUG'
1418 suds:
1419 level: 'DEBUG'
1420 eventletwsgi:
1421 level: 'DEBUG'
1422 ......
1423
Vasyl Saienkoba420732018-09-07 10:19:32 +00001424Upgrades
1425========
1426
1427Each openstack formula provide set of phases (logical bloks) that will help to
1428build flexible upgrade orchestration logic for particular components. The list
1429of phases might and theirs descriptions are listed in table below:
1430
1431+-------------------------------+------------------------------------------------------+
1432| State | Description |
1433+===============================+======================================================+
1434| <app>.upgrade.service_running | Ensure that all services for particular application |
1435| | are enabled for autostart and running |
1436+-------------------------------+------------------------------------------------------+
1437| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1438| | disabled for autostart and dead |
1439+-------------------------------+------------------------------------------------------+
1440| <app>.upgrade.pkg_latest | Ensure that packages used by particular application |
1441| | are installed to latest available version. |
1442| | This will not upgrade data plane packages like qemu |
1443| | and openvswitch as usually minimal required version |
1444| | in openstack services is really old. The data plane |
1445| | packages should be upgraded separately by `apt-get |
1446| | upgrade` or `apt-get dist-upgrade` |
1447| | Applying this state will not autostart service. |
1448+-------------------------------+------------------------------------------------------+
1449| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1450+-------------------------------+------------------------------------------------------+
1451| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1452| | cloud before running upgrade. |
1453| | Only non destructive actions will be applied during |
1454| | this phase. Perform service built in service check |
1455| | like (keystone-manage doctor and nova-status upgrade)|
1456+-------------------------------+------------------------------------------------------+
1457| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1458| | phase resources will be gracefully removed from |
1459| | current node if it is allowed. Services for upgraded |
1460| | application will be set to admin disabled state to |
1461| | make sure node will not participate in resources |
1462| | scheduling. For example on gtw nodes this will set |
1463| | all agents to admin disable state and will move all |
1464| | routers to other agents. |
1465+-------------------------------+------------------------------------------------------+
1466| <app>.upgrade.upgrade | This state will basically upgrade application on |
1467| | particular target. Stop services, render |
1468| | configuration, install new packages, run offline |
1469| | dbsync (for ctl), start services. Data plane should |
1470| | not be affected, only OpenStack python services. |
1471+-------------------------------+------------------------------------------------------+
1472| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1473+-------------------------------+------------------------------------------------------+
1474| <app>.upgrade.post | This phase should be launched only when upgrade of |
1475| | the cloud is completed. |
1476+-------------------------------+------------------------------------------------------+
1477| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1478| | operations, verify do not have dead network |
1479| | agents/compute services) |
1480+-------------------------------+------------------------------------------------------+
1481
1482
Oleksandr Shyshkof51b94c2018-08-31 16:05:27 +03001483Enable x509 and ssl communication between Neutron and Galera cluster.
1484---------------------
1485By default communication between Neutron and Galera is unsecure.
1486
1487neutron:
1488 server:
1489 database:
1490 x509:
1491 enabled: True
1492
1493You able to set custom certificates in pillar:
1494
1495neutron:
1496 server:
1497 database:
1498 x509:
1499 cacert: (certificate content)
1500 cert: (certificate content)
1501 key: (certificate content)
1502
1503You can read more about it here:
1504 https://docs.openstack.org/security-guide/databases/database-access-control.html
1505
Filip Pytloun20c0a442017-02-02 13:05:13 +01001506Documentation and Bugs
1507======================
1508
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001509* http://salt-formulas.readthedocs.io/
1510 Learn how to install and update salt-formulas
Filip Pytloun20c0a442017-02-02 13:05:13 +01001511
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001512* https://github.com/salt-formulas/salt-formula-neutron/issues
1513 In the unfortunate event that bugs are discovered, report the issue to the
1514 appropriate issue tracker. Use the Github issue tracker for a specific salt
1515 formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001516
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001517* https://launchpad.net/salt-formulas
1518 For feature requests, bug reports, or blueprints affecting the entire
1519 ecosystem, use the Launchpad salt-formulas project
Filip Pytloun20c0a442017-02-02 13:05:13 +01001520
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001521* https://launchpad.net/~salt-formulas-users
1522 Join the salt-formulas-users team and subscribe to mailing list if required
Filip Pytloun20c0a442017-02-02 13:05:13 +01001523
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001524* https://github.com/salt-formulas/salt-formula-neutron
1525 Develop the salt-formulas projects in the master branch and then submit pull
1526 requests against a specific formula
Filip Pytloun20c0a442017-02-02 13:05:13 +01001527
OlgaGusarenko838c9fd2018-07-31 00:22:44 +03001528* #salt-formulas @ irc.freenode.net
1529 Use this IRC channel in case of any questions or feedback which is always
1530 welcome
Filip Pytloun20c0a442017-02-02 13:05:13 +01001531