Initial patch with all code from CableLabs repository.
[snaps.git] / docs / examples / complex-network / deploy-complex-network.yaml
1 # Copyright (c) 2016 Cable Television Laboratories, Inc. ("CableLabs")
2 #                    and others.  All rights reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 ---
16 openstack:
17   connection:
18     # Note - when http_proxy is set, you must also configure ssh for proxy tunneling on your host.
19     username: admin
20     password: cable123
21     auth_url: http://10.197.103.50:5000/v2.0/
22     project_name: admin
23     http_proxy: localhost:3128
24   images:
25     - image:
26         name: centos-inst-test
27         format: qcow2
28         image_user: centos
29         download_url: http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
30         nic_config_pb_loc: provisioning/ansible/centos-network-setup/playbooks/configure_host.yml
31     - image:
32         name: Ubuntu-14.04
33         format: qcow2
34         image_user: ubuntu
35         download_url: http://uec-images.ubuntu.com/releases/trusty/14.04/ubuntu-14.04-server-cloudimg-amd64-disk1.img
36         nic_config_pb_loc: provisioning/ansible/ubuntu-network-setup/playbooks/configure_host.yml
37   networks:
38     - network:
39         name: mgr-net
40         subnets:
41           - subnet:
42               name: mgr-subnet
43               cidr: 10.0.1.0/24
44               dns_nameservers: [8.8.8.8]
45           - subnet:
46               name: mgr-subnet-2
47               cidr: 10.0.2.0/24
48               dns_nameservers: [8.8.8.8]
49     - network:
50         name: site1-net
51         subnets:
52           - subnet:
53               name: site1-subnet
54               cidr: 192.168.0.0/24
55               gateway_ip: 192.168.0.1
56           - subnet:
57               name: site1-subnet-2
58               cidr: 192.168.1.0/24
59               gateway_ip: 192.168.1.1
60     - network:
61         name: site2-net
62         subnets:
63           - subnet:
64               name: site2-subnet
65               cidr: 192.169.0.0/24
66               gateway_ip: 192.169.0.1
67   routers:
68   # Note: Routers between internal networks not being used but put in here as an example on how to do that.
69     - router:
70         name: mgr-router
71         external_gateway: external
72         internal_subnets:
73           - mgr-subnet
74           - mgr-subnet-2
75         interfaces:
76           - port:
77               name: mgr-router-to-site1
78               network_name: site1-net
79               ip_addrs:
80                 - subnet_name: site1-subnet
81                   ip: 192.168.0.10
82     - router:
83         name: site1-router
84         external_gateway: external
85         internal_subnets:
86           - site1-subnet
87     - router:
88         name: site2-router
89         external_gateway: external
90         internal_subnets:
91           - site2-subnet
92     - router:
93         name: site-to-site-router
94         interfaces:
95           - port:
96               name: site1-router-port
97               network_name: site1-net
98               ip_addrs:
99                 - subnet_name: site1-subnet
100                   ip: 192.168.0.100
101           - port:
102               name: site2-router-port
103               network_name: site2-net
104               ip_addrs:
105                 - subnet_name: site2-subnet
106                   ip: 192.169.0.100
107   keypairs:
108     - keypair:
109         name: cmplx-net-kp
110         public_filepath: /tmp/cmplx-net-kp.pub
111         private_filepath: /tmp/cmplx-net-kp
112   instances:
113     - instance:
114         name: mgr-app
115         flavor: m1.small
116         imageName: centos-inst-test
117         keypair_name: cmplx-net-kp
118         vm_boot_timeout: 600
119         vm_delete_timeout: 120
120         ssh_connect_timeout: 120
121         ports:
122           - port:
123               name: mgr-app-port
124               network_name: mgr-net
125               ip_addrs:
126                 - subnet_name: mgr-subnet
127                   ip: 10.0.1.30
128                 - subnet_name: mgr-subnet-2
129                   ip: 10.0.2.30
130         floating_ips:
131 # TODO - Why is only one of these floating IPs not working and why does it vary which one?
132 #          - floating_ip:
133 #              name: fip1
134 #              port_name: mgr-app-port
135 #              subnet_name: mgr-subnet
136 #              router_name: mgr-router
137 #              provisioning: False
138           - floating_ip:
139               name: fip2
140               port_name: mgr-app-port
141               subnet_name: mgr-subnet-2
142               router_name: mgr-router
143     - instance:
144         name: site1-ovs
145         flavor: m1.small
146         imageName: centos-inst-test
147         keypair_name: cmplx-net-kp
148         vm_boot_timeout: 600
149         vm_delete_timeout: 120
150         ssh_connect_timeout: 120
151         ports:
152           - port:
153               name: site1-ovs-mgr-port
154               network_name: mgr-net
155           - port:
156               name: site1-ovs-site1-port
157               network_name: site1-net
158         floating_ips:
159           - floating_ip:
160               name: fip1
161               port_name: site1-ovs-mgr-port
162               router_name: mgr-router
163     - instance:
164         name: site2-ovs
165         flavor: m1.small
166         imageName: Ubuntu-14.04
167         keypair_name: cmplx-net-kp
168         vm_boot_timeout: 600
169         vm_delete_timeout: 120
170         ssh_connect_timeout: 120
171         ports:
172           - port:
173               name: site2-ovs-mgr-port
174               network_name: mgr-net
175           - port:
176               name: site2-ovs-site2-port
177               network_name: site2-net
178         floating_ips:
179           - floating_ip:
180               name: fip1
181               port_name: site2-ovs-mgr-port
182               subnet_name: mgr-subnet-2
183               router_name: mgr-router
184     - instance:
185         name: site2-host
186         flavor: m1.small
187         imageName: Ubuntu-14.04
188         keypair_name: cmplx-net-kp
189         vm_boot_timeout: 600
190         vm_delete_timeout: 120
191         ssh_connect_timeout: 120
192         ports:
193           - port:
194               name: site2-host-port
195               network_name: site2-net
196         floating_ips:
197           - floating_ip:
198               name: fip1
199               port_name: site2-host-port
200               subnet_name: site2-subnet
201               router_name: site2-router
202 # TODO - Add a playbook here...
203 #ansible:
204 #    - playbook_location: main.yml
205 #      hosts:
206 #        - mgr-app
207 #        - site1-ovs
208 #        - site2-ovs
209 #        - site2-host
210 #      variables:
211 #        mac1:
212 #          type: port
213 #          vm_name: site1-ovs
214 #          port_name: site1-ovs-site1-port
215 #          port_value: mac_address
216 #        ip1:
217 #          type: port
218 #          vm_name: site1-ovs
219 #          port_name: site1-ovs-mgr-port
220 #          port_value: ip_address
221 #        mac2:
222 #          type: port
223 #          vm_name: site2-ovs
224 #          port_name: site2-ovs-site2-port
225 #          port_value: mac_address
226 #        ip2:
227 #          type: port
228 #          vm_name: site2-ovs
229 #          port_name: site2-ovs-mgr-port
230 #          port_value: ip_address
231 #    - playbook_location: ./main.yml
232 #      hosts:
233 #        - site1-ovs
234 #        - site2-ovs