blob: 7cf895b95b38bc6941119056acd667e843cf76a8 [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
Ilya Chukhnakovf4c2bb32017-06-08 02:03:15 +0300628Neutron with VLAN-aware-VMs
629
630.. code-block:: yaml
631
632 neutron:
633 server:
634 vlan_aware_vms: true
635 ....
636 compute:
637 vlan_aware_vms: true
638 ....
639 gateway:
640 vlan_aware_vms: true
641
Aleš Komárek41e82312017-04-11 13:37:44 +0200642Neutron Server
643--------------
644
Jiri Broulik74f61112016-11-21 20:23:47 +0100645Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100646
647.. code-block:: yaml
648
649 neutron:
650 server:
651 plugin: contrail
marcoa4428a32016-06-10 11:50:16 +0200652 backend:
653 engine: contrail
654 host: contrail_discovery_host
655 port: 8082
656 user: admin
657 password: password
658 tenant: admin
659 token: token
660
661Neutron Server with Midonet
662
663.. code-block:: yaml
664
665 neutron:
666 server:
667 backend:
668 engine: midonet
669 host: midonet_api_host
670 port: 8181
671 user: admin
672 password: password
673
Filip Pytlouncd028e42015-10-06 16:28:32 +0200674
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100675Neutron Keystone region
676
677.. code-block:: yaml
678
679 neutron:
680 server:
681 enabled: true
682 version: kilo
683 ...
684 identity:
685 region: RegionTwo
686 ...
687 compute:
688 region: RegionTwo
689 ...
690
Jiri Konecny93b19992016-04-12 11:15:39 +0200691Client-side RabbitMQ HA setup
692
693.. code-block:: yaml
694
695 neutron:
696 server:
697 ....
698 message_queue:
699 engine: rabbitmq
700 members:
701 - host: 10.0.16.1
702 - host: 10.0.16.2
703 - host: 10.0.16.3
704 user: openstack
705 password: pwd
706 virtual_host: '/openstack'
707 ....
708
Petr Michalec61f7ab22016-11-29 16:29:09 +0100709Enable auditing filter, ie: CADF
710
711.. code-block:: yaml
712
713 neutron:
714 server:
715 audit:
716 enabled: true
717 ....
718 filter_factory: 'keystonemiddleware.audit:filter_factory'
719 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
720 ....
721 compute:
722 audit:
723 enabled: true
724 ....
725 filter_factory: 'keystonemiddleware.audit:filter_factory'
726 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
727 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200728
Oleg Bondarev98870a32017-05-29 16:53:19 +0400729Neutron with security groups disabled
730
731.. code-block:: yaml
732
733 neutron:
734 server:
735 security_groups_enabled: False
736 ....
737 compute:
738 security_groups_enabled: False
739 ....
740 gateway:
741 security_groups_enabled: False
742
Jiri Konecny93b19992016-04-12 11:15:39 +0200743
Aleš Komárek41e82312017-04-11 13:37:44 +0200744Neutron Client
745--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100746
747Neutron networks
748
749.. code-block:: yaml
750
751 neutron:
752 client:
753 enabled: true
754 server:
755 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100756 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100757 network:
758 inet1:
759 tenant: demo
760 shared: False
761 admin_state_up: True
762 router_external: True
763 provider_physical_network: inet
764 provider_network_type: flat
765 provider_segmentation_id: 2
766 subnet:
767 inet1-subnet1:
768 cidr: 192.168.90.0/24
769 enable_dhcp: False
770 inet2:
771 tenant: admin
772 shared: False
773 router_external: True
774 provider_network_type: "vlan"
775 subnet:
776 inet2-subnet1:
777 cidr: 192.168.92.0/24
778 enable_dhcp: False
779 inet2-subnet2:
780 cidr: 192.168.94.0/24
781 enable_dhcp: True
782 identity1:
783 network:
784 ...
785
Jiri Broulik5368cc52017-02-08 18:53:59 +0100786Neutron routers
787
788.. code-block:: yaml
789
790 neutron:
791 client:
792 enabled: true
793 server:
794 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100795 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100796 router:
797 inet1-router:
798 tenant: demo
799 admin_state_up: True
800 gateway_network: inet
801 interfaces:
802 - inet1-subnet1
803 - inet1-subnet2
804 identity1:
805 router:
806 ...
807
808 TODO: implement adding new interfaces to a router while updating it
809
810
811Neutron security groups
812
813.. code-block:: yaml
814
815 neutron:
816 client:
817 enabled: true
818 server:
819 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100820 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100821 security_group:
822 security_group1:
823 tenant: demo
824 description: security group 1
825 rules:
826 - direction: ingress
827 ethertype: IPv4
828 protocol: TCP
829 port_range_min: 1
830 port_range_max: 65535
831 remote_ip_prefix: 0.0.0.0/0
832 - direction: ingress
833 ethertype: IPv4
834 protocol: UDP
835 port_range_min: 1
836 port_range_max: 65535
837 remote_ip_prefix: 0.0.0.0/0
838 - direction: ingress
839 protocol: ICMP
840 remote_ip_prefix: 0.0.0.0/0
841 identity1:
842 security_group:
843 ...
844
845 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
846
Jiri Broulikde2e2902017-02-13 15:03:47 +0100847
848Floating IP addresses
849
850.. code-block:: yaml
851
852 neutron:
853 client:
854 enabled: true
855 server:
856 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100857 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +0100858 floating_ip:
859 prx01-instance:
860 server: prx01.mk22-lab-basic.local
861 subnet: private-subnet1
862 network: public-net1
863 tenant: demo
864 gtw01-instance:
865 ...
866
867.. note:: The network must have flag router:external set to True.
868 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
869
870
Filip Pytloun20c0a442017-02-02 13:05:13 +0100871Documentation and Bugs
872======================
873
874To learn how to install and update salt-formulas, consult the documentation
875available online at:
876
877 http://salt-formulas.readthedocs.io/
878
879In the unfortunate event that bugs are discovered, they should be reported to
880the appropriate issue tracker. Use Github issue tracker for specific salt
881formula:
882
883 https://github.com/salt-formulas/salt-formula-neutron/issues
884
885For feature requests, bug reports or blueprints affecting entire ecosystem,
886use Launchpad salt-formulas project:
887
888 https://launchpad.net/salt-formulas
889
890You can also join salt-formulas-users team and subscribe to mailing list:
891
892 https://launchpad.net/~salt-formulas-users
893
894Developers wishing to work on the salt-formulas projects should always base
895their work on master branch and submit pull request against specific formula.
896
897 https://github.com/salt-formulas/salt-formula-neutron
898
899Any questions or feedback is always welcome so feel free to join our IRC
900channel:
901
902 #salt-formulas @ irc.freenode.net