blob: 23072aee65254246aff39a3681e1efc1fa9578ca [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
11is 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
Ondrej Smola314eee22017-03-08 21:21:16 +010062Neutron lbaas provides on the controller node
63
64.. code-block:: yaml
65
66 neutron:
67 server:
68 lbaas:
69 enabled: true
70 providers:
71 avi_adc:
72 enabled: true
73 engine: avinetworks
74 controller_address: 10.182.129.239
75 controller_user: admin
76 controller_password: Cloudlab2016
77 controller_cloud_name: Default-Cloud
78 avi_adc2:
79 engine: avinetworks
80 ...
81
Aleš Komárek41e82312017-04-11 13:37:44 +020082Note: If you want contrail lbaas then backend is only required. Lbaas in
83pillar should be define only if it should be disabled.
Ondrej Smola314eee22017-03-08 21:21:16 +010084
85.. code-block:: yaml
86
87 neutron:
88 server:
89 lbaas:
90 enabled: disabled
91
Ondrej Smola12ff8192017-04-28 12:39:11 +020092Enable CORS parameters
93
94.. code-block:: yaml
95
96 neutron:
97 server:
98 cors:
99 allowed_origin: https:localhost.local,http:localhost.local
100 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
101 allow_methods: GET,PUT,POST,DELETE,PATCH
102 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
103 allow_credentials: True
104 max_age: 86400
105
106
Aleš Komárek41e82312017-04-11 13:37:44 +0200107Neutron VXLAN tenant networks with Network nodes
108------------------------------------------------
Swann Croiset9407daf2017-02-02 15:27:56 +0100109
Aleš Komárek41e82312017-04-11 13:37:44 +0200110With DVR for East-West and Network node for North-South.
Jiri Broulik74f61112016-11-21 20:23:47 +0100111
112This use case describes a model utilising VxLAN overlay with DVR. The DVR
Aleš Komárek41e82312017-04-11 13:37:44 +0200113routers will only be utilized for traffic that is router within the cloud
114infrastructure and that remains encapsulated. External traffic will be
115routed to via the network nodes.
Jiri Broulik74f61112016-11-21 20:23:47 +0100116
117The intention is that each tenant will require at least two (2) vrouters
118one to be utilised
119
Aleš Komárek41e82312017-04-11 13:37:44 +0200120Neutron Server
marcoa4428a32016-06-10 11:50:16 +0200121
122.. code-block:: yaml
123
124 neutron:
125 server:
Jiri Broulik74f61112016-11-21 20:23:47 +0100126 version: mitaka
127 plugin: ml2
128 bind:
129 address: 172.20.0.1
130 port: 9696
131 database:
132 engine: mysql
133 host: 127.0.0.1
134 port: 3306
135 name: neutron
136 user: neutron
137 password: pwd
138 identity:
139 engine: keystone
140 host: 127.0.0.1
141 port: 35357
142 user: neutron
143 password: pwd
144 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200145 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100146 message_queue:
147 engine: rabbitmq
148 host: 127.0.0.1
149 port: 5672
150 user: openstack
151 password: pwd
152 virtual_host: '/openstack'
153 global_physnet_mtu: 9000
154 l3_ha: False # Which type of router will be created by default
155 dvr: True # disabled for non DVR use case
156 backend:
157 engine: ml2
158 tenant_network_types: "flat,vxlan"
159 external_mtu: 9000
160 mechanism:
161 ovs:
162 driver: openvswitch
163
Aleš Komárek41e82312017-04-11 13:37:44 +0200164Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100165
166.. code-block:: yaml
167
168 neutron:
169 gateway:
170 enabled: True
171 version: mitaka
172 message_queue:
173 engine: rabbitmq
174 host: 127.0.0.1
175 port: 5672
176 user: openstack
177 password: pwd
178 virtual_host: '/openstack'
179 local_ip: 192.168.20.20 # br-mesh ip address
180 dvr: True # disabled for non DVR use case
181 agent_mode: dvr_snat
182 metadata:
183 host: 127.0.0.1
184 password: pass
185 backend:
186 engine: ml2
187 tenant_network_types: "flat,vxlan"
188 mechanism:
189 ovs:
190 driver: openvswitch
191
192Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100193
194.. code-block:: yaml
195
196 neutron:
197 compute:
198 enabled: True
199 version: mitaka
200 message_queue:
201 engine: rabbitmq
202 host: 127.0.0.1
203 port: 5672
204 user: openstack
205 password: pwd
206 virtual_host: '/openstack'
207 local_ip: 192.168.20.20 # br-mesh ip address
208 dvr: True # disabled for non DVR use case
209 agent_mode: dvr
210 external_access: false # Compute node with DVR for east-west only, Network Node has True as default
211 metadata:
212 host: 127.0.0.1
213 password: pass
214 backend:
215 engine: ml2
216 tenant_network_types: "flat,vxlan"
217 mechanism:
218 ovs:
219 driver: openvswitch
Petr Michalec61f7ab22016-11-29 16:29:09 +0100220 audit:
221 enabled: false
Jiri Broulik74f61112016-11-21 20:23:47 +0100222
Aleš Komárek41e82312017-04-11 13:37:44 +0200223
Jiri Broulik74f61112016-11-21 20:23:47 +0100224Neutron VXLAN tenant networks with Network Nodes (non DVR)
Aleš Komárek41e82312017-04-11 13:37:44 +0200225----------------------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100226
227This section describes a network solution that utilises VxLAN overlay
228 networks without DVR with all routers being managed on the network nodes.
229
Aleš Komárek41e82312017-04-11 13:37:44 +0200230Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100231
232.. code-block:: yaml
233
234 neutron:
235 server:
236 version: mitaka
237 plugin: ml2
238 bind:
239 address: 172.20.0.1
240 port: 9696
241 database:
242 engine: mysql
243 host: 127.0.0.1
244 port: 3306
245 name: neutron
246 user: neutron
247 password: pwd
248 identity:
249 engine: keystone
250 host: 127.0.0.1
251 port: 35357
252 user: neutron
253 password: pwd
254 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200255 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100256 message_queue:
257 engine: rabbitmq
258 host: 127.0.0.1
259 port: 5672
260 user: openstack
261 password: pwd
262 virtual_host: '/openstack'
263 global_physnet_mtu: 9000
264 l3_ha: True
265 dvr: False
266 backend:
267 engine: ml2
268 tenant_network_types= "flat,vxlan"
269 external_mtu: 9000
270 mechanism:
271 ovs:
272 driver: openvswitch
273
Aleš Komárek41e82312017-04-11 13:37:44 +0200274Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100275
276.. code-block:: yaml
277
278 neutron:
279 gateway:
280 enabled: True
281 version: mitaka
282 message_queue:
283 engine: rabbitmq
284 host: 127.0.0.1
285 port: 5672
286 user: openstack
287 password: pwd
288 virtual_host: '/openstack'
289 local_ip: 192.168.20.20 # br-mesh ip address
290 dvr: False
291 agent_mode: legacy
Simon Pasquierc03af112017-04-10 10:35:14 +0200292 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100293 metadata:
294 host: 127.0.0.1
295 password: pass
296 backend:
297 engine: ml2
298 tenant_network_types: "flat,vxlan"
299 mechanism:
300 ovs:
301 driver: openvswitch
302
303Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100304
305.. code-block:: yaml
306
307 neutron:
308 compute:
309 enabled: True
310 version: mitaka
311 message_queue:
312 engine: rabbitmq
313 host: 127.0.0.1
314 port: 5672
315 user: openstack
316 password: pwd
317 virtual_host: '/openstack'
318 local_ip: 192.168.20.20 # br-mesh ip address
319 external_access: False
320 dvr: False
321 backend:
322 engine: ml2
323 tenant_network_types: "flat,vxlan"
324 mechanism:
325 ovs:
326 driver: openvswitch
327
Aleš Komárek41e82312017-04-11 13:37:44 +0200328Neutron VXLAN tenant networks with Network Nodes with DVR
329---------------------------------------------------------
330
331With DVR for East-West and North-South, DVR everywhere, Network node for SNAT.
Jiri Broulik74f61112016-11-21 20:23:47 +0100332
333This section describes a network solution that utilises VxLAN
334overlay networks with DVR with North-South and East-West. Network
335Node is used only for SNAT.
336
Aleš Komárek41e82312017-04-11 13:37:44 +0200337Neutron Server
Jiri Broulik74f61112016-11-21 20:23:47 +0100338
339.. code-block:: yaml
340
341 neutron:
342 server:
343 version: mitaka
344 plugin: ml2
345 bind:
346 address: 172.20.0.1
347 port: 9696
348 database:
349 engine: mysql
350 host: 127.0.0.1
351 port: 3306
352 name: neutron
353 user: neutron
354 password: pwd
355 identity:
356 engine: keystone
357 host: 127.0.0.1
358 port: 35357
359 user: neutron
360 password: pwd
361 tenant: service
Dennis Dmitriev37114722017-03-06 16:52:26 +0200362 endpoint_type: internal
Jiri Broulik74f61112016-11-21 20:23:47 +0100363 message_queue:
364 engine: rabbitmq
365 host: 127.0.0.1
366 port: 5672
367 user: openstack
368 password: pwd
369 virtual_host: '/openstack'
370 global_physnet_mtu: 9000
371 l3_ha: False
372 dvr: True
373 backend:
374 engine: ml2
375 tenant_network_types= "flat,vxlan"
376 external_mtu: 9000
377 mechanism:
378 ovs:
379 driver: openvswitch
380
Aleš Komárek41e82312017-04-11 13:37:44 +0200381Network Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100382
383.. code-block:: yaml
384
385 neutron:
386 gateway:
387 enabled: True
388 version: mitaka
389 message_queue:
390 engine: rabbitmq
391 host: 127.0.0.1
392 port: 5672
393 user: openstack
394 password: pwd
395 virtual_host: '/openstack'
396 local_ip: 192.168.20.20 # br-mesh ip address
397 dvr: True
398 agent_mode: dvr_snat
Simon Pasquierc03af112017-04-10 10:35:14 +0200399 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100400 metadata:
401 host: 127.0.0.1
402 password: pass
403 backend:
404 engine: ml2
405 tenant_network_types: "flat,vxlan"
406 mechanism:
407 ovs:
408 driver: openvswitch
409
410Compute Node
Jiri Broulik74f61112016-11-21 20:23:47 +0100411
412.. code-block:: yaml
413
414 neutron:
415 compute:
416 enabled: True
417 version: mitaka
418 message_queue:
419 engine: rabbitmq
420 host: 127.0.0.1
421 port: 5672
422 user: openstack
423 password: pwd
424 virtual_host: '/openstack'
425 local_ip: 192.168.20.20 # br-mesh ip address
426 dvr: True
427 external_access: True
428 agent_mode: dvr
Simon Pasquierc03af112017-04-10 10:35:14 +0200429 availability_zone: az1
Jiri Broulik74f61112016-11-21 20:23:47 +0100430 metadata:
431 host: 127.0.0.1
432 password: pass
433 backend:
434 engine: ml2
435 tenant_network_types: "flat,vxlan"
436 mechanism:
437 ovs:
438 driver: openvswitch
439
440Sample Linux network configuration for DVR
Jiri Broulik74f61112016-11-21 20:23:47 +0100441
442.. code-block:: yaml
443
444 linux:
445 network:
446 bridge: openvswitch
447 interface:
448 eth1:
449 enabled: true
450 type: eth
451 mtu: 9000
452 proto: manual
453 eth2:
454 enabled: true
455 type: eth
456 mtu: 9000
457 proto: manual
458 eth3:
459 enabled: true
460 type: eth
461 mtu: 9000
462 proto: manual
463 br-int:
464 enabled: true
465 mtu: 9000
466 type: ovs_bridge
467 br-floating:
468 enabled: true
469 mtu: 9000
470 type: ovs_bridge
471 float-to-ex:
472 enabled: true
473 type: ovs_port
474 mtu: 65000
475 bridge: br-floating
476 br-mgmt:
477 enabled: true
478 type: bridge
479 mtu: 9000
480 address: ${_param:single_address}
481 netmask: 255.255.255.0
482 use_interfaces:
483 - eth1
484 br-mesh:
485 enabled: true
486 type: bridge
487 mtu: 9000
488 address: ${_param:tenant_address}
489 netmask: 255.255.255.0
490 use_interfaces:
491 - eth2
492 br-ex:
493 enabled: true
494 type: bridge
495 mtu: 9000
496 address: ${_param:external_address}
497 netmask: 255.255.255.0
498 use_interfaces:
499 - eth3
500 use_ovs_ports:
501 - float-to-ex
502
503Neutron VLAN tenant networks with Network Nodes
Aleš Komárek41e82312017-04-11 13:37:44 +0200504-----------------------------------------------
Jiri Broulik74f61112016-11-21 20:23:47 +0100505
506VLAN tenant provider
507
508Neutron Server only
Jiri Broulik74f61112016-11-21 20:23:47 +0100509
510.. code-block:: yaml
511
512 neutron:
513 server:
514 version: mitaka
515 plugin: ml2
516 ...
517 global_physnet_mtu: 9000
518 l3_ha: False
519 dvr: True
520 backend:
521 engine: ml2
522 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
523 tenant_vlan_range: "1000:2000"
524 external_vlan_range: "100:200" # Does not have to be defined.
525 external_mtu: 9000
526 mechanism:
527 ovs:
528 driver: openvswitch
529
530Compute node
Jiri Broulik74f61112016-11-21 20:23:47 +0100531
532.. code-block:: yaml
533
534 neutron:
535 compute:
536 version: mitaka
537 plugin: ml2
538 ...
539 dvr: True
540 agent_mode: dvr
541 external_access: False
542 backend:
543 engine: ml2
544 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
545 mechanism:
546 ovs:
547 driver: openvswitch
548
Aleš Komárek41e82312017-04-11 13:37:44 +0200549Advanced Neutron Features (DPDK, SR-IOV)
550
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100551Neutron OVS DPDK
Jakub Pavlik8f83ccc2017-02-27 11:15:39 +0100552
553Enable datapath netdev for neutron openvswitch agent
554
555.. code-block:: yaml
556
557 neutron:
558 server:
559 version: mitaka
560 ...
561 dpdk: True
562 ...
563
564 neutron:
565 compute:
566 version: mitaka
567 plugin: ml2
568 dpdk: True
569 backend:
570 engine: ml2
571 ...
572 mechanism:
573 ovs:
574 driver: openvswitch
575
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100576Neutron OVS SR-IOV
Jakub Pavlik70555cb2017-02-26 18:48:02 +0100577
578.. code-block:: yaml
579
580 neutron:
581 server:
582 version: mitaka
583 plugin: ml2
584 backend:
585 engine: ml2
586 ...
587 mechanism:
588 ovs:
589 driver: openvswitch
590 sriov:
591 driver: sriovnicswitch
592
593 neutron:
594 compute:
595 version: mitaka
596 plugin: ml2
597 ...
598 backend:
599 engine: ml2
600 tenant_network_types: "flat,vlan" # Can be mixed flat,vlan,vxlan
601 sriov:
602 nic_one:
603 devname: eth1
604 physical_network: physnet3
605 mechanism:
606 ovs:
607 driver: openvswitch
608
Aleš Komárek41e82312017-04-11 13:37:44 +0200609Neutron Server
610--------------
611
Jiri Broulik74f61112016-11-21 20:23:47 +0100612Neutron Server with OpenContrail
Jiri Broulik74f61112016-11-21 20:23:47 +0100613
614.. code-block:: yaml
615
616 neutron:
617 server:
618 plugin: contrail
marcoa4428a32016-06-10 11:50:16 +0200619 backend:
620 engine: contrail
621 host: contrail_discovery_host
622 port: 8082
623 user: admin
624 password: password
625 tenant: admin
626 token: token
627
628Neutron Server with Midonet
629
630.. code-block:: yaml
631
632 neutron:
633 server:
634 backend:
635 engine: midonet
636 host: midonet_api_host
637 port: 8181
638 user: admin
639 password: password
640
Filip Pytlouncd028e42015-10-06 16:28:32 +0200641
Jakub Pavlik6dd5c0a2016-03-09 14:18:15 +0100642Neutron Keystone region
643
644.. code-block:: yaml
645
646 neutron:
647 server:
648 enabled: true
649 version: kilo
650 ...
651 identity:
652 region: RegionTwo
653 ...
654 compute:
655 region: RegionTwo
656 ...
657
Jiri Konecny93b19992016-04-12 11:15:39 +0200658Client-side RabbitMQ HA setup
659
660.. code-block:: yaml
661
662 neutron:
663 server:
664 ....
665 message_queue:
666 engine: rabbitmq
667 members:
668 - host: 10.0.16.1
669 - host: 10.0.16.2
670 - host: 10.0.16.3
671 user: openstack
672 password: pwd
673 virtual_host: '/openstack'
674 ....
675
Petr Michalec61f7ab22016-11-29 16:29:09 +0100676Enable auditing filter, ie: CADF
677
678.. code-block:: yaml
679
680 neutron:
681 server:
682 audit:
683 enabled: true
684 ....
685 filter_factory: 'keystonemiddleware.audit:filter_factory'
686 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
687 ....
688 compute:
689 audit:
690 enabled: true
691 ....
692 filter_factory: 'keystonemiddleware.audit:filter_factory'
693 map_file: '/etc/pycadf/neutron_api_audit_map.conf'
694 ....
Jiri Konecny93b19992016-04-12 11:15:39 +0200695
696
Aleš Komárek41e82312017-04-11 13:37:44 +0200697Neutron Client
698--------------
Jiri Broulik5368cc52017-02-08 18:53:59 +0100699
700Neutron networks
701
702.. code-block:: yaml
703
704 neutron:
705 client:
706 enabled: true
707 server:
708 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100709 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100710 network:
711 inet1:
712 tenant: demo
713 shared: False
714 admin_state_up: True
715 router_external: True
716 provider_physical_network: inet
717 provider_network_type: flat
718 provider_segmentation_id: 2
719 subnet:
720 inet1-subnet1:
721 cidr: 192.168.90.0/24
722 enable_dhcp: False
723 inet2:
724 tenant: admin
725 shared: False
726 router_external: True
727 provider_network_type: "vlan"
728 subnet:
729 inet2-subnet1:
730 cidr: 192.168.92.0/24
731 enable_dhcp: False
732 inet2-subnet2:
733 cidr: 192.168.94.0/24
734 enable_dhcp: True
735 identity1:
736 network:
737 ...
738
Jiri Broulik5368cc52017-02-08 18:53:59 +0100739Neutron routers
740
741.. code-block:: yaml
742
743 neutron:
744 client:
745 enabled: true
746 server:
747 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100748 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100749 router:
750 inet1-router:
751 tenant: demo
752 admin_state_up: True
753 gateway_network: inet
754 interfaces:
755 - inet1-subnet1
756 - inet1-subnet2
757 identity1:
758 router:
759 ...
760
761 TODO: implement adding new interfaces to a router while updating it
762
763
764Neutron security groups
765
766.. code-block:: yaml
767
768 neutron:
769 client:
770 enabled: true
771 server:
772 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100773 endpoint_type: internalURL
Jiri Broulik5368cc52017-02-08 18:53:59 +0100774 security_group:
775 security_group1:
776 tenant: demo
777 description: security group 1
778 rules:
779 - direction: ingress
780 ethertype: IPv4
781 protocol: TCP
782 port_range_min: 1
783 port_range_max: 65535
784 remote_ip_prefix: 0.0.0.0/0
785 - direction: ingress
786 ethertype: IPv4
787 protocol: UDP
788 port_range_min: 1
789 port_range_max: 65535
790 remote_ip_prefix: 0.0.0.0/0
791 - direction: ingress
792 protocol: ICMP
793 remote_ip_prefix: 0.0.0.0/0
794 identity1:
795 security_group:
796 ...
797
798 TODO: implement updating existing security rules (now it adds new rule if trying to update existing one)
799
Jiri Broulikde2e2902017-02-13 15:03:47 +0100800
801Floating IP addresses
802
803.. code-block:: yaml
804
805 neutron:
806 client:
807 enabled: true
808 server:
809 identity:
Richard Felklaac256a2017-03-23 15:43:49 +0100810 endpoint_type: internalURL
Jiri Broulikde2e2902017-02-13 15:03:47 +0100811 floating_ip:
812 prx01-instance:
813 server: prx01.mk22-lab-basic.local
814 subnet: private-subnet1
815 network: public-net1
816 tenant: demo
817 gtw01-instance:
818 ...
819
820.. note:: The network must have flag router:external set to True.
821 Instance port in the stated subnet will be associated with the dynamically generated floating IP.
822
823
Filip Pytloun20c0a442017-02-02 13:05:13 +0100824Documentation and Bugs
825======================
826
827To learn how to install and update salt-formulas, consult the documentation
828available online at:
829
830 http://salt-formulas.readthedocs.io/
831
832In the unfortunate event that bugs are discovered, they should be reported to
833the appropriate issue tracker. Use Github issue tracker for specific salt
834formula:
835
836 https://github.com/salt-formulas/salt-formula-neutron/issues
837
838For feature requests, bug reports or blueprints affecting entire ecosystem,
839use Launchpad salt-formulas project:
840
841 https://launchpad.net/salt-formulas
842
843You can also join salt-formulas-users team and subscribe to mailing list:
844
845 https://launchpad.net/~salt-formulas-users
846
847Developers wishing to work on the salt-formulas projects should always base
848their work on master branch and submit pull request against specific formula.
849
850 https://github.com/salt-formulas/salt-formula-neutron
851
852Any questions or feedback is always welcome so feel free to join our IRC
853channel:
854
855 #salt-formulas @ irc.freenode.net