be3879439485f9b2955f065fc84edd7932fa8a19
[snaps.git] / 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: NotMyPASS!
21     auth_url: http://10.10.10.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           - subnet:
74               project_name: admin
75               network_name: mgr-net
76               subnet_name: mgr-subnet
77           - subnet:
78               project_name: admin
79               network_name: mgr-net
80               subnet_name: mgr-subnet-2
81         interfaces:
82           - port:
83               name: mgr-router-to-site1
84               network_name: site1-net
85               ip_addrs:
86                 - subnet_name: site1-subnet
87                   ip: 192.168.0.10
88     - router:
89         name: site1-router
90         external_gateway: external
91         internal_subnets:
92           - subnet:
93               project_name: admin
94               network_name: site1-net
95               subnet_name: site1-subnet
96     - router:
97         name: site2-router
98         external_gateway: external
99         internal_subnets:
100           - subnet:
101               project_name: admin
102               network_name: site2-net
103               subnet_name: site2-subnet
104     - router:
105         name: site-to-site-router
106         interfaces:
107           - port:
108               name: site1-router-port
109               network_name: site1-net
110               ip_addrs:
111                 - subnet_name: site1-subnet
112                   ip: 192.168.0.100
113           - port:
114               name: site2-router-port
115               network_name: site2-net
116               ip_addrs:
117                 - subnet_name: site2-subnet
118                   ip: 192.169.0.100
119   keypairs:
120     - keypair:
121         name: cmplx-net-kp
122         public_filepath: /tmp/cmplx-net-kp.pub
123         private_filepath: /tmp/cmplx-net-kp
124   instances:
125     - instance:
126         name: mgr-app
127         flavor: m1.small
128         imageName: centos-inst-test
129         keypair_name: cmplx-net-kp
130         vm_boot_timeout: 600
131         vm_delete_timeout: 120
132         ssh_connect_timeout: 120
133         ports:
134           - port:
135               name: mgr-app-port
136               network_name: mgr-net
137               ip_addrs:
138                 - subnet_name: mgr-subnet
139                   ip: 10.0.1.30
140                 - subnet_name: mgr-subnet-2
141                   ip: 10.0.2.30
142         floating_ips:
143 # Add back after validation of multiple floating IP support
144 #          - floating_ip:
145 #              name: fip1
146 #              port_name: mgr-app-port
147 #              subnet_name: mgr-subnet
148 #              router_name: mgr-router
149 #              provisioning: False
150           - floating_ip:
151               name: fip2
152               port_name: mgr-app-port
153               subnet_name: mgr-subnet-2
154               router_name: mgr-router
155     - instance:
156         name: site1-ovs
157         flavor: m1.small
158         imageName: centos-inst-test
159         keypair_name: cmplx-net-kp
160         vm_boot_timeout: 600
161         vm_delete_timeout: 120
162         ssh_connect_timeout: 120
163         ports:
164           - port:
165               name: site1-ovs-mgr-port
166               network_name: mgr-net
167           - port:
168               name: site1-ovs-site1-port
169               network_name: site1-net
170         floating_ips:
171           - floating_ip:
172               name: fip1
173               port_name: site1-ovs-mgr-port
174               router_name: mgr-router
175     - instance:
176         name: site2-ovs
177         flavor: m1.small
178         imageName: Ubuntu-14.04
179         keypair_name: cmplx-net-kp
180         vm_boot_timeout: 600
181         vm_delete_timeout: 120
182         ssh_connect_timeout: 120
183         ports:
184           - port:
185               name: site2-ovs-mgr-port
186               network_name: mgr-net
187           - port:
188               name: site2-ovs-site2-port
189               network_name: site2-net
190         floating_ips:
191           - floating_ip:
192               name: fip1
193               port_name: site2-ovs-mgr-port
194               subnet_name: mgr-subnet-2
195               router_name: mgr-router
196     - instance:
197         name: site2-host
198         flavor: m1.small
199         imageName: Ubuntu-14.04
200         keypair_name: cmplx-net-kp
201         vm_boot_timeout: 600
202         vm_delete_timeout: 120
203         ssh_connect_timeout: 120
204         ports:
205           - port:
206               name: site2-host-port
207               network_name: site2-net
208         floating_ips:
209           - floating_ip:
210               name: fip1
211               port_name: site2-host-port
212               subnet_name: site2-subnet
213               router_name: site2-router
214 # Add a playbook here...
215 #ansible:
216 #    - playbook_location: main.yml
217 #      hosts:
218 #        - mgr-app
219 #        - site1-ovs
220 #        - site2-ovs
221 #        - site2-host
222 #      variables:
223 #        mac1:
224 #          type: port
225 #          vm_name: site1-ovs
226 #          port_name: site1-ovs-site1-port
227 #          port_value: mac_address
228 #        ip1:
229 #          type: port
230 #          vm_name: site1-ovs
231 #          port_name: site1-ovs-mgr-port
232 #          port_value: ip_address
233 #        mac2:
234 #          type: port
235 #          vm_name: site2-ovs
236 #          port_name: site2-ovs-site2-port
237 #          port_value: mac_address
238 #        ip2:
239 #          type: port
240 #          vm_name: site2-ovs
241 #          port_name: site2-ovs-mgr-port
242 #          port_value: ip_address
243 #    - playbook_location: ./main.yml
244 #      hosts:
245 #        - site1-ovs
246 #        - site2-ovs