blob: 4dea365157b4495449396a3448939b10715a5a74 [file] [log] [blame]
Andy Bavierf0405252015-10-06 14:55:44 -04001tosca_definitions_version: tosca_simple_yaml_1_0
2
3description: Setup CORD-related services -- vOLT, vCPE, vBNG.
4
5imports:
6 - custom_types/xos.yaml
7
8topology_template:
9 node_templates:
10 # CORD Services
11 service_volt:
12 type: tosca.nodes.Service
13 requirements:
Scott Baker2516ce32016-02-11 16:56:34 -080014 - vsg_tenant:
Scott Bakerf91e6152016-02-11 12:07:10 -080015 node: service_vsg
Andy Bavierf0405252015-10-06 14:55:44 -040016 relationship: tosca.relationships.TenantOfService
Scott Baker345fbb92015-12-01 00:24:43 -080017 - lan_network:
18 node: lan_network
19 relationship: tosca.relationships.UsesNetwork
20 - wan_network:
21 node: wan_network
22 relationship: tosca.relationships.UsesNetwork
Andy Bavierf0405252015-10-06 14:55:44 -040023 properties:
24 view_url: /admin/cord/voltservice/$id$/
25 kind: vOLT
26
Scott Baker1bd0f382016-02-15 10:00:01 -080027 # set a pool of addresses that we can hand out for the VSG Wan.
Scott Baker6167c922016-02-12 17:31:04 -080028 public_addresses:
29 type: tosca.nodes.AddressPool
30 properties:
31 addresses: 10.123.0.0/24 10.124.0.0/24
32
Scott Bakerf91e6152016-02-11 12:07:10 -080033 service_vsg:
34 type: tosca.nodes.VSGService
Andy Bavierf0405252015-10-06 14:55:44 -040035 requirements:
36 - vbng_tenant:
37 node: service_vbng
38 relationship: tosca.relationships.TenantOfService
39 properties:
Scott Bakerf91e6152016-02-11 12:07:10 -080040 view_url: /admin/cord/vsgservice/$id$/
Andy Bavierf0405252015-10-06 14:55:44 -040041 backend_network_label: hpc_client
42 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050043 private_key_fn: /opt/xos/synchronizers/vcpe/vcpe_private_key
Scott Baker29b284a2016-03-04 12:10:13 -080044# node_label: label_vsg
Andy Bavierf0405252015-10-06 14:55:44 -040045 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050046 pubkey: /opt/xos/synchronizers/vcpe/vcpe_public_key
Andy Bavierf0405252015-10-06 14:55:44 -040047
48 service_vbng:
49 type: tosca.nodes.VBNGService
50 properties:
51 view_url: /admin/cord/vbngservice/$id$/
Scott Baker6e3f34d2015-10-20 21:20:18 -070052# if unspecified, vbng observer will look for an ONOSApp Tenant and
53# generate a URL from its IP address
54# vbng_url: http://10.11.10.24:8181/onos/virtualbng/
Andy Bavier790c0e52015-10-20 11:37:06 -040055
Andy Bavier47aed292015-10-26 14:16:54 -040056 service_ONOS_vBNG:
Andy Bavier790c0e52015-10-20 11:37:06 -040057 type: tosca.nodes.ONOSService
58 requirements:
59 properties:
60 kind: onos
61 view_url: /admin/onos/onosservice/$id$/
62 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
63 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050064 pubkey: /opt/xos/synchronizers/onos/onos_key.pub
Andy Bavier790c0e52015-10-20 11:37:06 -040065
Andy Bavier0154e952015-10-28 17:19:20 -040066#
67# To actually bring up the vBNG app
68# - Set up the dataplane using the ansible script
69# - Log into the vBNG ONOS and run 'devices' to get switch dpID
70# - Change the dpID values in vBNG ONOS app in XOS GUI
71# - (Synchronizer should copy the files to ONOS container immediately)
72# - Log into service_ONOS_vBNG VM and restart ONOS Docker container
73# (Should roll this step into a Synchronizer)
Andy Bavierc66771b2015-11-03 15:57:08 -050074#f
Andy Bavier790c0e52015-10-20 11:37:06 -040075 vBNG_ONOS_app:
76 type: tosca.nodes.ONOSvBNGApp
77 requirements:
78 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -040079 node: service_ONOS_vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -040080 relationship: tosca.relationships.TenantOfService
Scott Baker2cd7c482015-10-20 21:18:45 -070081 - vbng_service:
82 node: service_vbng
83 relationship: tosca.relationships.UsedByService
Andy Bavier790c0e52015-10-20 11:37:06 -040084 properties:
85 dependencies: org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd
Andy Bavier88552a02015-10-26 11:53:22 -040086 config_network-cfg.json: >
Andy Bavier790c0e52015-10-20 11:37:06 -040087 {
Andy Bavier88552a02015-10-26 11:53:22 -040088 "ports" : {
Andy Bavier0154e952015-10-28 17:19:20 -040089 "of:0000000000000001/1" : {
Andy Bavier88552a02015-10-26 11:53:22 -040090 "interfaces" : [
91 {
92 "ips" : [ "10.0.1.253/24" ],
93 "mac" : "00:00:00:00:00:99"
94 }
95 ]
96 },
Andy Bavier0154e952015-10-28 17:19:20 -040097 "of:0000000000000001/2" : {
Andy Bavier88552a02015-10-26 11:53:22 -040098 "interfaces" : [
99 {
Andy Bavier0154e952015-10-28 17:19:20 -0400100 "ips" : [ "10.254.0.2/24" ],
Andy Bavier88552a02015-10-26 11:53:22 -0400101 "mac" : "00:00:00:00:00:98"
102 }
103 ]
104 }
105 }
Andy Bavier790c0e52015-10-20 11:37:06 -0400106 }
Scott Baker3b47c5f2015-12-02 20:00:20 -0800107 config_virtualbng.json: { get_artifact: [ SELF, virtualbng_json, LOCAL_FILE] }
108 artifacts:
109 virtualbng_json: /root/setup/virtualbng.json
Andy Bavier790c0e52015-10-20 11:37:06 -0400110
Andy Bavier47aed292015-10-26 14:16:54 -0400111 service_ONOS_vOLT:
112 type: tosca.nodes.ONOSService
113 requirements:
114 properties:
115 kind: onos
116 view_url: /admin/onos/onosservice/$id$/
117 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
Scott Bakeraa403232015-12-07 23:01:40 -0800118 rest_onos/v1/network/configuration/: >
119 {
120 "devices" : {
121 "of:0000000000000001" : {
122 "accessDevice" : {
123 "uplink" : "2",
124 "vlan" : "222",
125 "defaultVlan" : "1"
126 },
127 "basic" : {
Srikanth Vavilapalli1a1513f2016-01-27 16:49:09 -0500128 "driver" : "pmc-olt"
Scott Bakeraa403232015-12-07 23:01:40 -0800129 }
130 }
131 }
132 }
Andy Bavier47aed292015-10-26 14:16:54 -0400133 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -0500134 pubkey: /opt/xos/synchronizers/onos/onos_key.pub
Andy Bavier47aed292015-10-26 14:16:54 -0400135
Andy Bavierc66771b2015-11-03 15:57:08 -0500136
Andy Bavierfe3b0112015-10-26 12:19:50 -0400137 vOLT_ONOS_app:
138 type: tosca.nodes.ONOSvOLTApp
139 requirements:
140 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -0400141 node: service_ONOS_vOLT
Andy Bavierfe3b0112015-10-26 12:19:50 -0400142 relationship: tosca.relationships.TenantOfService
143 - volt_service:
144 node: service_volt
145 relationship: tosca.relationships.UsedByService
146 properties:
Srikanth Vavilapalli5a1c15e2016-01-22 14:35:50 -0500147 install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
148 dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
149 component_config: >
150 {
151 "org.ciena.onos.ext_notifier.KafkaNotificationBridge":{
152 "rabbit.user": "<rabbit_user>",
153 "rabbit.password": "<rabbit_password>",
154 "rabbit.host": "<rabbit_host>",
Srikanth Vavilapalli7dad1132016-02-11 15:40:07 -0500155 "publish.kafka": "false",
Srikanth Vavilapalli5a1c15e2016-01-22 14:35:50 -0500156 "publish.rabbit": "true",
157 "volt.events.rabbit.topic": "notifications.info",
158 "volt.events.rabbit.exchange": "voltlistener",
159 "volt.events.opaque.info": "{project_id: <keystone_tenant_id>, user_id: <keystone_user_id>}",
160 "publish.volt.events": "true"
161 }
162 }
Scott Bakeraa403232015-12-07 23:01:40 -0800163# config_network-cfg.json: >
164# {
165# "devices" : {
166# "of:0000000000000001" : {
167# "accessDevice" : {
168# "uplink" : "2",
169# "vlan" : "222",
170# "defaultVlan" : "1"
171# },
172# "basic" : {
173# "driver" : "default"
174# }
175# }
176# }
177# }
Andy Bavierfe3b0112015-10-26 12:19:50 -0400178
Andy Bavier790c0e52015-10-20 11:37:06 -0400179 # Network templates
180 Private:
181 type: tosca.nodes.NetworkTemplate
182
Andy Bavier923c61c2015-10-20 14:53:01 -0400183 Public network hack:
184 type: tosca.nodes.NetworkTemplate
185 properties:
186 visibility: private
187 translation: NAT
188 shared_network_name: tun0-net
189
190
Andy Bavier790c0e52015-10-20 11:37:06 -0400191 # Networks required by the CORD setup
192 lan_network:
193 type: tosca.nodes.network.Network
194 properties:
195 ip_version: 4
196 requirements:
197 - network_template:
198 node: Private
199 relationship: tosca.relationships.UsesNetworkTemplate
200 - owner:
Scott Baker2516ce32016-02-11 16:56:34 -0800201 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400202 relationship: tosca.relationships.MemberOfSlice
203 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800204 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400205 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400206 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800207 node: mysite_vsg
Andy Bavier923c61c2015-10-20 14:53:01 -0400208 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier790c0e52015-10-20 11:37:06 -0400209
210 wan_network:
211 type: tosca.nodes.network.Network
212 properties:
213 ip_version: 4
214 requirements:
215 - network_template:
216 node: Private
217 relationship: tosca.relationships.UsesNetworkTemplate
218 - owner:
Scott Baker2516ce32016-02-11 16:56:34 -0800219 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400220 relationship: tosca.relationships.MemberOfSlice
221 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800222 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400223 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400224 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800225 node: mysite_vsg
Andy Bavier923c61c2015-10-20 14:53:01 -0400226 relationship: tosca.relationships.ConnectsToSlice
227
Scott Baker6e5414e2015-12-09 16:51:52 -0800228 Private-Direct:
229 type: tosca.nodes.NetworkTemplate
230 properties:
231 access: direct
232
233 Private-Indirect:
234 type: tosca.nodes.NetworkTemplate
235 properties:
236 access: indirect
237
Andy Bavier923c61c2015-10-20 14:53:01 -0400238 subscriber_network:
239 type: tosca.nodes.network.Network
240 properties:
241 ip_version: 4
242 requirements:
243 - network_template:
244 node: Private
245 relationship: tosca.relationships.UsesNetworkTemplate
246 - owner:
247 node: mysite_volt
248 relationship: tosca.relationships.MemberOfSlice
249 - connection:
250 node: mysite_volt
251 relationship: tosca.relationships.ConnectsToSlice
252 - connection:
253 node: mysite_clients
254 relationship: tosca.relationships.ConnectsToSlice
255
256 public_network:
257 type: tosca.nodes.network.Network
258 properties:
259 requirements:
260 - network_template:
261 node: Public network hack
262 relationship: tosca.relationships.UsesNetworkTemplate
263 - owner:
264 node: mysite_vbng
265 relationship: tosca.relationships.MemberOfSlice
266 - connection:
267 node: mysite_vbng
268 relationship: tosca.relationships.ConnectsToSlice
269
Andy Bavierf0405252015-10-06 14:55:44 -0400270
271 mysite:
272 type: tosca.nodes.Site
273
Scott Baker58dd7c92016-03-04 10:44:41 -0800274 label_vsg:
275 type: tosca.nodes.NodeLabel
Andy Bavier923c61c2015-10-20 14:53:01 -0400276
277 # CORD Slices
Scott Baker2516ce32016-02-11 16:56:34 -0800278 mysite_vsg:
279 description: vSG Controller Slice
Andy Bavierf0405252015-10-06 14:55:44 -0400280 type: tosca.nodes.Slice
281 requirements:
Scott Baker2516ce32016-02-11 16:56:34 -0800282 - vsg_service:
Scott Bakerf91e6152016-02-11 12:07:10 -0800283 node: service_vsg
Andy Bavierf0405252015-10-06 14:55:44 -0400284 relationship: tosca.relationships.MemberOfService
285 - site:
286 node: mysite
287 relationship: tosca.relationships.MemberOfSite
Scott Baker2516ce32016-02-11 16:56:34 -0800288 - vsg_docker_image:
289 node: docker-vsg
Scott Baker345fbb92015-12-01 00:24:43 -0800290 relationship: tosca.relationships.UsesImage
Scott Bakereffb0ce2016-02-02 17:19:07 -0800291# properties:
292# default_isolation: container
Andy Bavierf0405252015-10-06 14:55:44 -0400293
Andy Bavier47aed292015-10-26 14:16:54 -0400294 mysite_onos_vbng:
295 description: ONOS Controller Slice for vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -0400296 type: tosca.nodes.Slice
297 requirements:
298 - ONOS:
Andy Bavier47aed292015-10-26 14:16:54 -0400299 node: service_ONOS_vBNG
300 relationship: tosca.relationships.MemberOfService
301 - site:
302 node: mysite
303 relationship: tosca.relationships.MemberOfSite
304
305 mysite_onos_volt:
306 description: ONOS Controller Slice for vOLT
307 type: tosca.nodes.Slice
308 requirements:
309 - ONOS:
310 node: service_ONOS_vOLT
Andy Bavier790c0e52015-10-20 11:37:06 -0400311 relationship: tosca.relationships.MemberOfService
312 - site:
313 node: mysite
314 relationship: tosca.relationships.MemberOfSite
Andy Bavierf0405252015-10-06 14:55:44 -0400315
Andy Bavier923c61c2015-10-20 14:53:01 -0400316 mysite_vbng:
317 description: slice running OVS controlled by vBNG
318 type: tosca.nodes.Slice
319 requirements:
320 - site:
321 node: mysite
322 relationship: tosca.relationships.MemberOfSite
323
324 mysite_volt:
325 description: OVS controlled by vOLT
326 type: tosca.nodes.Slice
327 requirements:
328 - site:
329 node: mysite
330 relationship: tosca.relationships.MemberOfSite
331
332 mysite_clients:
Andy Bavier88552a02015-10-26 11:53:22 -0400333 description: slice for clients at the subscriber
Andy Bavier923c61c2015-10-20 14:53:01 -0400334 type: tosca.nodes.Slice
335 requirements:
336 - site:
337 node: mysite
338 relationship: tosca.relationships.MemberOfSite
339
340
341 # Virtual machines
342 onos_app_1:
Andy Bavier790c0e52015-10-20 11:37:06 -0400343 type: tosca.nodes.Compute
344 capabilities:
345 # Host container properties
346 host:
347 properties:
348 num_cpus: 1
349 disk_size: 10 GB
350 mem_size: 4 MB
351 # Guest Operating System properties
352 os:
353 properties:
354 # host Operating System image properties
355 architecture: x86_64
356 type: linux
357 distribution: Ubuntu
358 version: 14.10
359 requirements:
360 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400361 node: mysite_onos_vbng
Andy Bavier790c0e52015-10-20 11:37:06 -0400362 relationship: tosca.relationships.MemberOfSlice
Andy Bavierf0405252015-10-06 14:55:44 -0400363
Andy Bavier923c61c2015-10-20 14:53:01 -0400364 onos_app_2:
365 type: tosca.nodes.Compute
366 capabilities:
367 # Host container properties
368 host:
369 properties:
370 num_cpus: 1
371 disk_size: 10 GB
372 mem_size: 4 MB
373 # Guest Operating System properties
374 os:
375 properties:
376 # host Operating System image properties
377 architecture: x86_64
378 type: linux
379 distribution: Ubuntu
380 version: 14.10
381 requirements:
382 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400383 node: mysite_onos_volt
Andy Bavier923c61c2015-10-20 14:53:01 -0400384 relationship: tosca.relationships.MemberOfSlice
385
386 # VM for running the OVS controlled by vBNG
387 ovs_vbng:
388 type: tosca.nodes.Compute
389 capabilities:
390 # Host container properties
391 host:
392 properties:
393 num_cpus: 1
394 disk_size: 10 GB
395 mem_size: 4 MB
396 # Guest Operating System properties
397 os:
398 properties:
399 # host Operating System image properties
400 architecture: x86_64
401 type: linux
402 distribution: ubuntu
403 version: 14.04
404 requirements:
405 - slice:
406 node: mysite_vbng
407 relationship: tosca.relationships.MemberOfSlice
408
409 # VM for running the OVS controlled by vOLT
410 ovs_volt:
411 type: tosca.nodes.Compute
412 capabilities:
413 # Host container properties
414 host:
415 properties:
416 num_cpus: 1
417 disk_size: 10 GB
418 mem_size: 4 MB
419 # Guest Operating System properties
420 os:
421 properties:
422 # host Operating System image properties
423 architecture: x86_64
424 type: linux
425 distribution: ubuntu
426 version: 14.04
427 requirements:
428 - slice:
429 node: mysite_volt
430 relationship: tosca.relationships.MemberOfSlice
431
432 # A subscriber client VM
433 client1:
434 type: tosca.nodes.Compute
435 capabilities:
436 # Host container properties
437 host:
438 properties:
439 num_cpus: 1
440 disk_size: 10 GB
441 mem_size: 4 MB
442 # Guest Operating System properties
443 os:
444 properties:
445 # host Operating System image properties
446 architecture: x86_64
447 type: linux
448 distribution: ubuntu
449 version: 14.04
450 requirements:
451 - slice:
452 node: mysite_clients
453 relationship: tosca.relationships.MemberOfSlice
454
Scott Baker2516ce32016-02-11 16:56:34 -0800455 # docker image for vsg containers
456 docker-vsg:
Scott Baker88fba402015-11-16 23:48:20 -0800457 # TODO: need to attach this to mydeployment
458 type: tosca.nodes.Image
459 properties:
460 kind: container
461 container_format: na
462 disk_format: na
Scott Baker5e505a52015-12-14 10:21:53 -0800463 path: andybavier/docker-vcpe
Andy Bavier1aa49af2015-12-16 14:10:01 -0500464 tag: develop
Scott Baker88fba402015-11-16 23:48:20 -0800465
Scott Baker688c4dd2016-01-27 19:00:06 -0800466 # Let's add a user who can be administrator of the household
467 johndoe@myhouse.com:
468 type: tosca.nodes.User
469 properties:
470 password: letmein
471 firstname: john
472 lastname: doe
473 requirements:
474 - site:
475 node: mysite
476 relationship: tosca.relationships.MemberOfSite
477
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400478 # A subscriber
479 My House:
480 type: tosca.nodes.CORDSubscriber
481 properties:
482 service_specific_id: 123
483 firewall_enable: false
484 cdn_enable: false
485 url_filter_enable: false
486 url_filter_level: R
Scott Baker688c4dd2016-01-27 19:00:06 -0800487 requirements:
488 - house_admin:
489 node: johndoe@myhouse.com
490 relationship: tosca.relationships.AdminPrivilege
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400491
492 Mom's PC:
493 type: tosca.nodes.CORDUser
494 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500495 mac: 01:02:03:04:05:06
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400496 level: PG_13
497 requirements:
498 - household:
499 node: My House
500 relationship: tosca.relationships.SubscriberDevice
501
502 Dad's PC:
503 type: tosca.nodes.CORDUser
504 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500505 mac: 90:E2:BA:82:F9:75
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400506 level: PG_13
507 requirements:
508 - household:
509 node: My House
510 relationship: tosca.relationships.SubscriberDevice
511
512 Jack's Laptop:
513 type: tosca.nodes.CORDUser
514 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500515 mac: 68:5B:35:9D:91:D5
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400516 level: PG_13
517 requirements:
518 - household:
519 node: My House
520 relationship: tosca.relationships.SubscriberDevice
521
522 Jill's Laptop:
523 type: tosca.nodes.CORDUser
524 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500525 mac: 34:36:3B:C9:B6:A6
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400526 level: PG_13
527 requirements:
528 - household:
529 node: My House
530 relationship: tosca.relationships.SubscriberDevice
531
532 My Volt:
533 type: tosca.nodes.VOLTTenant
534 properties:
535 service_specific_id: 123
Scott Baker14d8a0c2015-11-10 12:06:18 -0800536 s_tag: 222
537 c_tag: 432
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400538 requirements:
539 - provider_service:
540 node: service_volt
541 relationship: tosca.relationships.MemberOfService
542 - subscriber:
543 node: My House
544 relationship: tosca.relationships.BelongsToSubscriber