blob: 9adbc21451bfe6534fb686b0b51bdc3f950fd0ae [file] [log] [blame]
Aleš Komárek41e82312017-04-11 13:37:44 +02001===============
2Neutron Formula
3===============
Filip Pytlouncd028e42015-10-06 16:28:32 +02004
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02005Neutron is an OpenStack project to provide "networking as a service" between
6interface devices (e.g., vNICs) managed by other Openstack services (e.g.,
7nova).
Filip Pytlouncd028e42015-10-06 16:28:32 +02008
Jakub Pavlik9ecf0262016-05-20 11:20:58 +02009Starting in the Folsom release, Neutron is a core and supported part of the
10OpenStack platform (for Essex, we were an "incubated" project, which means use
Vasyl Saienko2fffc842017-06-14 10:35:26 +030011is suggested only for those who really know what they're doing with Neutron).
Filip Pytlouncd028e42015-10-06 16:28:32 +020012
Aleš Komárek41e82312017-04-11 13:37:44 +020013Sample Pillars
Filip Pytlouncd028e42015-10-06 16:28:32 +020014==============
15
16Neutron Server on the controller node
17
18.. code-block:: yaml
19
20 neutron:
21 server:
22 enabled: true
Jiri Broulik74f61112016-11-21 20:23:47 +010023 version: mitaka
Swann Croiset9407daf2017-02-02 15:27:56 +010024 allow_pagination: true
25 pagination_max_limit: 100
Filip Pytlouncd028e42015-10-06 16:28:32 +020026 bind:
27 address: 172.20.0.1
28 port: 9696
Filip Pytlouncd028e42015-10-06 16:28:32 +020029 database:
30 engine: mysql
31 host: 127.0.0.1
32 port: 3306
33 name: neutron
34 user: neutron
35 password: pwd
36 identity:
37 engine: keystone
38 host: 127.0.0.1
39 port: 35357
40 user: neutron
41 password: pwd
42 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +020043 endpoint_type: internal
Filip Pytlouncd028e42015-10-06 16:28:32 +020044 message_queue:
45 engine: rabbitmq
46 host: 127.0.0.1
47 port: 5672
48 user: openstack
49 password: pwd
50 virtual_host: '/openstack'
51 metadata:
52 host: 127.0.0.1
53 port: 8775
54 password: pass
Petr Michalec61f7ab22016-11-29 16:29:09 +010055 audit:
56 enabled: false
Filip Pytlouncd028e42015-10-06 16:28:32 +020057
Swann Croiset9407daf2017-02-02 15:27:56 +010058Note: The pagination is useful to retrieve a large bunch of resources,
59because a single request may fail (timeout). This is enabled with both
60parameters *allow_pagination* and *pagination_max_limit* as shown above.
61
Dmitry Ukov596ddcf2017-05-04 18:16:16 +040062
63Configuration of policy.json file
64
65.. code-block:: yaml
66
67 neutron:
68 server:
69 ....
70 policy:
71 create_subnet: 'rule:admin_or_network_owner'
72 'get_network:queue_id': 'rule:admin_only'
73 # Add key without value to remove line from policy.json
74 'create_network:shared':
75
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040076Neutron LBaaSv2 enablement
77--------------------------
Ondrej Smola314eee22017-03-08 21:21:16 +010078
79.. code-block:: yaml
80
81 neutron:
82 server:
83 lbaas:
84 enabled: true
85 providers:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040086 octavia:
87 engine: octavia
88 driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
89 base_url: 'http://127.0.0.1:9876'
Ondrej Smola314eee22017-03-08 21:21:16 +010090 avi_adc:
Ondrej Smola314eee22017-03-08 21:21:16 +010091 engine: avinetworks
Elena Ezhovacd67cfe2017-06-16 23:35:07 +040092 driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
Ondrej Smola314eee22017-03-08 21:21:16 +010093 controller_address: 10.182.129.239
94 controller_user: admin
95 controller_password: Cloudlab2016
96 controller_cloud_name: Default-Cloud
97 avi_adc2:
98 engine: avinetworks
99 ...
100
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400101Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
102automatically. In this case lbaas should disabled in pillar:
Ondrej Smola314eee22017-03-08 21:21:16 +0100103
104.. code-block:: yaml
105
106 neutron:
107 server:
108 lbaas:
Elena Ezhovacd67cfe2017-06-16 23:35:07 +0400109 enabled: false
Ondrej Smola314eee22017-03-08 21:21:16 +0100110
Ondrej Smola12ff8192017-04-28 12:39:11 +0200111Enable CORS parameters
112
113.. code-block:: yaml
114
115 neutron:
116 server:
117 cors:
118 allowed_origin: https:localhost.local,http:localhost.local
119 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
120 allow_methods: GET,PUT,POST,DELETE,PATCH
121 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
122 allow_credentials: True
123 max_age: 86400
124
125
Aleš Komárek41e82312017-04-11 13:37:44 +0200126Neutron VXLAN tenant networks with Network nodes
127------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100128
Aleš Komárek41e82312017-04-11 13:37:44 +0200129With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100130
131This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200132routers will only be utilized for traffic that is router within the cloud
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300133infrastructure and that remains encapsulated. External traffic will be
134routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100135
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300136The intention is that each tenant will require at least two (2) vrouters
137one to be utilised
Jiri Broulik74f61112016-11-21 20:23:47 +0100138
Aleš Komárek41e82312017-04-11 13:37:44 +0200139Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200140
141.. code-block:: yaml
142
143 neutron:
144 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100145 version: mitaka
146 plugin: ml2
147 bind:
148 address: 172.20.0.1
149 port: 9696
150 database:
151 engine: mysql
152 host: 127.0.0.1
153 port: 3306
154 name: neutron
155 user: neutron
156 password: pwd
157 identity:
158 engine: keystone
159 host: 127.0.0.1
160 port: 35357
161 user: neutron
162 password: pwd
163 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200164 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100165 message_queue:
166 engine: rabbitmq
167 host: 127.0.0.1
168 port: 5672
169 user: openstack
170 password: pwd
171 virtual_host: '/openstack'
172 global_physnet_mtu: 9000
173 l3_ha: False # Which type of router will be created by default
174 dvr: True # disabled for non DVR use case
175 backend:
176 engine: ml2
177 tenant_network_types: "flat,vxlan"
178 external_mtu: 9000
179 mechanism:
180 ovs:
181 driver: openvswitch
182
Aleš Komárek41e82312017-04-11 13:37:44 +0200183Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100184
185.. code-block:: yaml
186
187 neutron:
188 gateway:
189 enabled: True
190 version: mitaka
191 message_queue:
192 engine: rabbitmq
193 host: 127.0.0.1
194 port: 5672
195 user: openstack
196 password: pwd
197 virtual_host: '/openstack'
198 local_ip: 192.168.20.20 # br-mesh ip address
199 dvr: True # disabled for non DVR use case
200 agent_mode: dvr_snat
201 metadata:
202 host: 127.0.0.1
203 password: pass
204 backend:
205 engine: ml2
206 tenant_network_types: "flat,vxlan"
207 mechanism:
208 ovs:
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300209 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100210
211Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100212
213.. code-block:: yaml
214
215 neutron:
216 compute:
217 enabled: True
218 version: mitaka
219 message_queue:
220 engine: rabbitmq
221 host: 127.0.0.1
222 port: 5672
223 user: openstack
224 password: pwd
225 virtual_host: '/openstack'
226 local_ip: 192.168.20.20 # br-mesh ip address
227 dvr: True # disabled for non DVR use case
228 agent_mode: dvr
229 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
230 metadata:
231 host: 127.0.0.1
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300232 password: pass
Jiri Broulik74f61112016-11-21 20:23:47 +0100233 backend:
234 engine: ml2
235 tenant_network_types: "flat,vxlan"
236 mechanism:
237 ovs:
238 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100239 audit:
240 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100241
Aleš Komárek41e82312017-04-11 13:37:44 +0200242
Jiri Broulik74f61112016-11-21 20:23:47 +0100243Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200244----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100245
246This section describes a network solution that utilises VxLAN overlay
247 networks without DVR with all routers being managed on the network nodes.
248
Aleš Komárek41e82312017-04-11 13:37:44 +0200249Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100250
251.. code-block:: yaml
252
253 neutron:
254 server:
255 version: mitaka
256 plugin: ml2
257 bind:
258 address: 172.20.0.1
259 port: 9696
260 database:
261 engine: mysql
262 host: 127.0.0.1
263 port: 3306
264 name: neutron
265 user: neutron
266 password: pwd
267 identity:
268 engine: keystone
269 host: 127.0.0.1
270 port: 35357
271 user: neutron
272 password: pwd
273 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200274 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100275 message_queue:
276 engine: rabbitmq
277 host: 127.0.0.1
278 port: 5672
279 user: openstack
280 password: pwd
281 virtual_host: '/openstack'
282 global_physnet_mtu: 9000
283 l3_ha: True
284 dvr: False
285 backend:
286 engine: ml2
287 tenant_network_types= "flat,vxlan"
288 external_mtu: 9000
289 mechanism:
290 ovs:
291 driver: openvswitch
292
Aleš Komárek41e82312017-04-11 13:37:44 +0200293Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100294
295.. code-block:: yaml
296
297 neutron:
298 gateway:
299 enabled: True
300 version: mitaka
301 message_queue:
302 engine: rabbitmq
303 host: 127.0.0.1
304 port: 5672
305 user: openstack
306 password: pwd
307 virtual_host: '/openstack'
308 local_ip: 192.168.20.20 # br-mesh ip address
309 dvr: False
310 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200311 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100312 metadata:
313 host: 127.0.0.1
314 password: pass
315 backend:
316 engine: ml2
317 tenant_network_types: "flat,vxlan"
318 mechanism:
319 ovs:
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300320 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100321
322Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100323
324.. code-block:: yaml
325
326 neutron:
327 compute:
328 enabled: True
329 version: mitaka
330 message_queue:
331 engine: rabbitmq
332 host: 127.0.0.1
333 port: 5672
334 user: openstack
335 password: pwd
336 virtual_host: '/openstack'
337 local_ip: 192.168.20.20 # br-mesh ip address
338 external_access: False
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300339 dvr: False
Jiri Broulik74f61112016-11-21 20:23:47 +0100340 backend:
341 engine: ml2
342 tenant_network_types: "flat,vxlan"
343 mechanism:
344 ovs:
345 driver: openvswitch
346
Aleš Komárek41e82312017-04-11 13:37:44 +0200347Neutron VXLAN tenant networks with Network Nodes with DVR
348---------------------------------------------------------
349
350With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100351
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300352This section describes a network solution that utilises VxLAN
353overlay networks with DVR with North-South and East-West. Network
Jiri Broulik74f61112016-11-21 20:23:47 +0100354Node is used only for SNAT.
355
Aleš Komárek41e82312017-04-11 13:37:44 +0200356Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100357
358.. code-block:: yaml
359
360 neutron:
361 server:
362 version: mitaka
363 plugin: ml2
364 bind:
365 address: 172.20.0.1
366 port: 9696
367 database:
368 engine: mysql
369 host: 127.0.0.1
370 port: 3306
371 name: neutron
372 user: neutron
373 password: pwd
374 identity:
375 engine: keystone
376 host: 127.0.0.1
377 port: 35357
378 user: neutron
379 password: pwd
380 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200381 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100382 message_queue:
383 engine: rabbitmq
384 host: 127.0.0.1
385 port: 5672
386 user: openstack
387 password: pwd
388 virtual_host: '/openstack'
389 global_physnet_mtu: 9000
390 l3_ha: False
391 dvr: True
392 backend:
393 engine: ml2
394 tenant_network_types= "flat,vxlan"
395 external_mtu: 9000
396 mechanism:
397 ovs:
398 driver: openvswitch
399
Aleš Komárek41e82312017-04-11 13:37:44 +0200400Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100401
402.. code-block:: yaml
403
404 neutron:
405 gateway:
406 enabled: True
407 version: mitaka
408 message_queue:
409 engine: rabbitmq
410 host: 127.0.0.1
411 port: 5672
412 user: openstack
413 password: pwd
414 virtual_host: '/openstack'
415 local_ip: 192.168.20.20 # br-mesh ip address
416 dvr: True
417 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200418 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100419 metadata:
420 host: 127.0.0.1
421 password: pass
422 backend:
423 engine: ml2
424 tenant_network_types: "flat,vxlan"
425 mechanism:
426 ovs:
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300427 driver: openvswitch
Jiri Broulik74f61112016-11-21 20:23:47 +0100428
429Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100430
431.. code-block:: yaml
432
433 neutron:
434 compute:
435 enabled: True
436 version: mitaka
437 message_queue:
438 engine: rabbitmq
439 host: 127.0.0.1
440 port: 5672
441 user: openstack
442 password: pwd
443 virtual_host: '/openstack'
444 local_ip: 192.168.20.20 # br-mesh ip address
445 dvr: True
Vasyl Saienko2fffc842017-06-14 10:35:26 +0300446 external_access: True
Jiri Broulik74f61112016-11-21 20:23:47 +0100447 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200448 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100449 metadata:
450 host: 127.0.0.1
451 password: pass
452 backend:
453 engine: ml2
454 tenant_network_types: "flat,vxlan"
455 mechanism:
456 ovs:
457 driver: openvswitch
458
459Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100460
461.. code-block:: yaml
462
463 linux:
464 network:
465 bridge: openvswitch
466 interface:
467 eth1:
468 enabled: true
469 type: eth
470 mtu: 9000
471 proto: manual
472 eth2:
473 enabled: true
474 type: eth
475 mtu: 9000
476 proto: manual
477 eth3:
478 enabled: true
479 type: eth
480 mtu: 9000
481 proto: manual
482 br-int:
483 enabled: true
484 mtu: 9000
485 type: ovs_bridge
486 br-floating:
487 enabled: true
488 mtu: 9000
489 type: ovs_bridge
490 float-to-ex:
491 enabled: true
492 type: ovs_port
493 mtu: 65000
494 bridge: br-floating
495 br-mgmt:
496 enabled: true
497 type: bridge
498 mtu: 9000
499 address: ${_param:single_address}
500 netmask: 255.255.255.0
501 use_interfaces:
502 - eth1
503 br-mesh:
504 enabled: true
505 type: bridge
506 mtu: 9000
507 address: ${_param:tenant_address}
508 netmask: 255.255.255.0
509 use_interfaces:
510 - eth2
511 br-ex:
512 enabled: true
513 type: bridge
514 mtu: 9000
515 address: ${_param:external_address}
516 netmask: 255.255.255.0
517 use_interfaces:
518 - eth3
519 use_ovs_ports:
520 - float-to-ex
521
522Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200523-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100524
525VLAN tenant provider
526
527Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100528
529.. code-block:: yaml
530
531 neutron:
532 server:
533 version: mitaka
534 plugin: ml2
535 ...
536 global_physnet_mtu: 9000
537 l3_ha: False
538 dvr: True
539 backend:
540 engine: ml2
541 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
542 tenant_vlan_range: "1000:2000"
543 external_vlan_range: "100:200" # Does not have to be defined.
544 external_mtu: 9000
545 mechanism:
546 ovs:
547 driver: openvswitch
548
549Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100550
551.. code-block:: yaml
552
553 neutron:
554 compute:
555 version: mitaka
556 plugin: ml2
557 ...
558 dvr: True
559 agent_mode: dvr
560 external_access: False
561 backend:
562 engine: ml2
563 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
564 mechanism:
565 ovs:
566 driver: openvswitch
567
Aleš Komárek41e82312017-04-11 13:37:44 +0200568Advanced Neutron Features (DPDK, SR-IOV)
569
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100570Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100571
572Enable datapath netdev for neutron openvswitch agent
573
574.. code-block:: yaml
575
576 neutron:
577 server:
578 version: mitaka
579 ...
580 dpdk: True
581 ...
582
583 neutron:
584 compute:
585 version: mitaka
586 plugin: ml2
587 dpdk: True
588 backend:
589 engine: ml2
590 ...
591 mechanism:
592 ovs:
593 driver: openvswitch
594
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100595Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100596
597.. code-block:: yaml
598
599 neutron:
600 server:
601 version: mitaka
602 plugin: ml2
603 backend:
604 engine: ml2
605 ...
606 mechanism:
607 ovs:
608 driver: openvswitch
609 sriov:
610 driver: sriovnicswitch
611
612 neutron:
613 compute:
614 version: mitaka
615 plugin: ml2
616 ...
617 backend:
618 engine: ml2
619 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
620 sriov:
621 nic_one:
622 devname: eth1
623 physical_network: physnet3
624 mechanism:
625 ovs:
626 driver: openvswitch
627
Aleš Komárek41e82312017-04-11 13:37:44 +0200628Neutron Server
629--------------
630
Jiri Broulik74f61112016-11-21 20:23:47 +0100631Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100632
633.. code-block:: yaml
634
635 neutron:
636 server:
637 plugin: contrail
marcoa4428a32016-06-10 11:50:16 +0200638 backend:
639 engine: contrail
640 host: contrail_discovery_host
641 port: 8082
642 user: admin
643 password: password
644 tenant: admin
645 token: token
646
647Neutron Server with Midonet
648
649.. code-block:: yaml
650
651 neutron:
652 server:
653 backend:
654 engine: midonet
655 host: midonet_api_host
656 port: 8181
657 user: admin
658 password: password
659
Filip Pytlouncd028e42015-10-06 16:28:32 +0200660
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100661Neutron Keystone region
662
663.. code-block:: yaml
664
665 neutron:
666 server:
667 enabled: true
668 version: kilo
669 ...
670 identity:
671 region: RegionTwo
672 ...
673 compute:
674 region: RegionTwo
675 ...
676
Jiri Konecny93b19992016-04-12 11:15:39 +0200677Client-side RabbitMQ HA setup
678
679.. code-block:: yaml
680
681 neutron:
682 server:
683 ....
684 message_queue:
685 engine: rabbitmq
686 members:
687 - host: 10.0.16.1
688 - host: 10.0.16.2
689 - host: 10.0.16.3
690 user: openstack
691 password: pwd
692 virtual_host: '/openstack'
693 ....
694
Petr Michalec61f7ab22016-11-29 16:29:09 +0100695Enable auditing filter, ie: CADF
696
697.. code-block:: yaml
698
699 neutron:
700 server:
701 audit:
702 enabled: true
703 ....
704 filter_factory: 'keystonemiddleware.audit:filter_factory'
705 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
706 ....
707 compute:
708 audit:
709 enabled: true
710 ....
711 filter_factory: 'keystonemiddleware.audit:filter_factory'
712 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
713 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200714
Oleg Bondarev98870a32017-05-29 16:53:19 +0400715Neutron with security groups disabled
716
717.. code-block:: yaml
718
719 neutron:
720 server:
721 security_groups_enabled: False
722 ....
723 compute:
724 security_groups_enabled: False
725 ....
726 gateway:
727 security_groups_enabled: False
728
Jiri Konecny93b19992016-04-12 11:15:39 +0200729
Aleš Komárek41e82312017-04-11 13:37:44 +0200730Neutron Client
731--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100732
733Neutron networks
734
735.. code-block:: yaml
736
737 neutron:
738 client:
739 enabled: true
740 server:
741 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100742 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100743 network:
744 inet1:
745 tenant: demo
746 shared: False
747 admin_state_up: True
748 router_external: True
749 provider_physical_network: inet
750 provider_network_type: flat
751 provider_segmentation_id: 2
752 subnet:
753 inet1-subnet1:
754 cidr: 192.168.90.0/24
755 enable_dhcp: False
756 inet2:
757 tenant: admin
758 shared: False
759 router_external: True
760 provider_network_type: "vlan"
761 subnet:
762 inet2-subnet1:
763 cidr: 192.168.92.0/24
764 enable_dhcp: False
765 inet2-subnet2:
766 cidr: 192.168.94.0/24
767 enable_dhcp: True
768 identity1:
769 network:
770 ...
771
Jiri Broulik5368cc52017-02-08 18:53:59 +0100772Neutron routers
773
774.. code-block:: yaml
775
776 neutron:
777 client:
778 enabled: true
779 server:
780 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100781 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100782 router:
783 inet1-router:
784 tenant: demo
785 admin_state_up: True
786 gateway_network: inet
787 interfaces:
788 - inet1-subnet1
789 - inet1-subnet2
790 identity1:
791 router:
792 ...
793
794 TODO: implement adding new interfaces to a router while updating it
795
796
797Neutron security groups
798
799.. code-block:: yaml
800
801 neutron:
802 client:
803 enabled: true
804 server:
805 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100806 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100807 security_group:
808 security_group1:
809 tenant: demo
810 description: security group 1
811 rules:
812 - direction: ingress
813 ethertype: IPv4
814 protocol: TCP
815 port_range_min: 1
816 port_range_max: 65535
817 remote_ip_prefix: 0.0.0.0/0
818 - direction: ingress
819 ethertype: IPv4
820 protocol: UDP
821 port_range_min: 1
822 port_range_max: 65535
823 remote_ip_prefix: 0.0.0.0/0
824 - direction: ingress
825 protocol: ICMP
826 remote_ip_prefix: 0.0.0.0/0
827 identity1:
828 security_group:
829 ...
830
831 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
832
Jiri Broulikde2e2902017-02-13 15:03:47 +0100833
834Floating IP addresses
835
836.. code-block:: yaml
837
838 neutron:
839 client:
840 enabled: true
841 server:
842 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100843 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +0100844 floating_ip:
845 prx01-instance:
846 server: prx01.mk22-lab-basic.local
847 subnet: private-subnet1
848 network: public-net1
849 tenant: demo
850 gtw01-instance:
851 ...
852
853.. note:: The network must have flag router:external set to True.
854 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
855
856
Filip Pytloun20c0a442017-02-02 13:05:13 +0100857Documentation and Bugs
858======================
859
860To learn how to install and update salt-formulas, consult the documentation
861available online at:
862
863 http://salt-formulas.readthedocs.io/
864
865In the unfortunate event that bugs are discovered, they should be reported to
866the appropriate issue tracker. Use Github issue tracker for specific salt
867formula:
868
869 https://github.com/salt-formulas/salt-formula-neutron/issues
870
871For feature requests, bug reports or blueprints affecting entire ecosystem,
872use Launchpad salt-formulas project:
873
874 https://launchpad.net/salt-formulas
875
876You can also join salt-formulas-users team and subscribe to mailing list:
877
878 https://launchpad.net/~salt-formulas-users
879
880Developers wishing to work on the salt-formulas projects should always base
881their work on master branch and submit pull request against specific formula.
882
883 https://github.com/salt-formulas/salt-formula-neutron
884
885Any questions or feedback is always welcome so feel free to join our IRC
886channel:
887
888 #salt-formulas @ irc.freenode.net