blob: c708d8e8cc51a06824c6d8f285ba4e64daa79d33 [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
Scott Baker67687702016-03-06 23:00:09 -080011 service_vtr:
12 type: tosca.nodes.Service
13 properties:
14 view_url: /admin/vtr/vtrservice/$id$/
15 kind: vTR
16
Andy Bavierf0405252015-10-06 14:55:44 -040017 service_volt:
18 type: tosca.nodes.Service
19 requirements:
Scott Baker2516ce32016-02-11 16:56:34 -080020 - vsg_tenant:
Scott Bakerf91e6152016-02-11 12:07:10 -080021 node: service_vsg
Andy Bavierf0405252015-10-06 14:55:44 -040022 relationship: tosca.relationships.TenantOfService
Scott Baker345fbb92015-12-01 00:24:43 -080023 - lan_network:
24 node: lan_network
25 relationship: tosca.relationships.UsesNetwork
26 - wan_network:
27 node: wan_network
28 relationship: tosca.relationships.UsesNetwork
Andy Bavierf0405252015-10-06 14:55:44 -040029 properties:
30 view_url: /admin/cord/voltservice/$id$/
31 kind: vOLT
32
Scott Baker1bd0f382016-02-15 10:00:01 -080033 # set a pool of addresses that we can hand out for the VSG Wan.
Scott Baker6167c922016-02-12 17:31:04 -080034 public_addresses:
35 type: tosca.nodes.AddressPool
36 properties:
37 addresses: 10.123.0.0/24 10.124.0.0/24
38
Scott Bakerf91e6152016-02-11 12:07:10 -080039 service_vsg:
40 type: tosca.nodes.VSGService
Andy Bavierf0405252015-10-06 14:55:44 -040041 requirements:
42 - vbng_tenant:
43 node: service_vbng
44 relationship: tosca.relationships.TenantOfService
45 properties:
Scott Bakerf91e6152016-02-11 12:07:10 -080046 view_url: /admin/cord/vsgservice/$id$/
Andy Bavierf0405252015-10-06 14:55:44 -040047 backend_network_label: hpc_client
48 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050049 private_key_fn: /opt/xos/synchronizers/vcpe/vcpe_private_key
Scott Baker29b284a2016-03-04 12:10:13 -080050# node_label: label_vsg
Andy Bavierf0405252015-10-06 14:55:44 -040051 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050052 pubkey: /opt/xos/synchronizers/vcpe/vcpe_public_key
Andy Bavierf0405252015-10-06 14:55:44 -040053
54 service_vbng:
55 type: tosca.nodes.VBNGService
56 properties:
57 view_url: /admin/cord/vbngservice/$id$/
Scott Baker6e3f34d2015-10-20 21:20:18 -070058# if unspecified, vbng observer will look for an ONOSApp Tenant and
59# generate a URL from its IP address
60# vbng_url: http://10.11.10.24:8181/onos/virtualbng/
Andy Bavier790c0e52015-10-20 11:37:06 -040061
Andy Bavier47aed292015-10-26 14:16:54 -040062 service_ONOS_vBNG:
Andy Bavier790c0e52015-10-20 11:37:06 -040063 type: tosca.nodes.ONOSService
64 requirements:
65 properties:
66 kind: onos
67 view_url: /admin/onos/onosservice/$id$/
68 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
69 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -050070 pubkey: /opt/xos/synchronizers/onos/onos_key.pub
Andy Bavier790c0e52015-10-20 11:37:06 -040071
Andy Bavier0154e952015-10-28 17:19:20 -040072#
73# To actually bring up the vBNG app
74# - Set up the dataplane using the ansible script
75# - Log into the vBNG ONOS and run 'devices' to get switch dpID
76# - Change the dpID values in vBNG ONOS app in XOS GUI
77# - (Synchronizer should copy the files to ONOS container immediately)
78# - Log into service_ONOS_vBNG VM and restart ONOS Docker container
79# (Should roll this step into a Synchronizer)
Andy Bavierc66771b2015-11-03 15:57:08 -050080#f
Andy Bavier790c0e52015-10-20 11:37:06 -040081 vBNG_ONOS_app:
82 type: tosca.nodes.ONOSvBNGApp
83 requirements:
84 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -040085 node: service_ONOS_vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -040086 relationship: tosca.relationships.TenantOfService
Scott Baker2cd7c482015-10-20 21:18:45 -070087 - vbng_service:
88 node: service_vbng
89 relationship: tosca.relationships.UsedByService
Andy Bavier790c0e52015-10-20 11:37:06 -040090 properties:
91 dependencies: org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd
Andy Bavier88552a02015-10-26 11:53:22 -040092 config_network-cfg.json: >
Andy Bavier790c0e52015-10-20 11:37:06 -040093 {
Andy Bavier88552a02015-10-26 11:53:22 -040094 "ports" : {
Andy Bavier0154e952015-10-28 17:19:20 -040095 "of:0000000000000001/1" : {
Andy Bavier88552a02015-10-26 11:53:22 -040096 "interfaces" : [
97 {
98 "ips" : [ "10.0.1.253/24" ],
99 "mac" : "00:00:00:00:00:99"
100 }
101 ]
102 },
Andy Bavier0154e952015-10-28 17:19:20 -0400103 "of:0000000000000001/2" : {
Andy Bavier88552a02015-10-26 11:53:22 -0400104 "interfaces" : [
105 {
Andy Bavier0154e952015-10-28 17:19:20 -0400106 "ips" : [ "10.254.0.2/24" ],
Andy Bavier88552a02015-10-26 11:53:22 -0400107 "mac" : "00:00:00:00:00:98"
108 }
109 ]
110 }
111 }
Andy Bavier790c0e52015-10-20 11:37:06 -0400112 }
Scott Baker3b47c5f2015-12-02 20:00:20 -0800113 config_virtualbng.json: { get_artifact: [ SELF, virtualbng_json, LOCAL_FILE] }
114 artifacts:
115 virtualbng_json: /root/setup/virtualbng.json
Andy Bavier790c0e52015-10-20 11:37:06 -0400116
Andy Bavier47aed292015-10-26 14:16:54 -0400117 service_ONOS_vOLT:
118 type: tosca.nodes.ONOSService
119 requirements:
120 properties:
121 kind: onos
122 view_url: /admin/onos/onosservice/$id$/
123 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
Scott Bakeraa403232015-12-07 23:01:40 -0800124 rest_onos/v1/network/configuration/: >
125 {
126 "devices" : {
127 "of:0000000000000001" : {
128 "accessDevice" : {
129 "uplink" : "2",
130 "vlan" : "222",
131 "defaultVlan" : "1"
132 },
133 "basic" : {
Srikanth Vavilapalli1a1513f2016-01-27 16:49:09 -0500134 "driver" : "pmc-olt"
Scott Bakeraa403232015-12-07 23:01:40 -0800135 }
136 }
137 }
138 }
Andy Bavier47aed292015-10-26 14:16:54 -0400139 artifacts:
Srikanth Vavilapalli562ba492016-01-25 20:06:43 -0500140 pubkey: /opt/xos/synchronizers/onos/onos_key.pub
Andy Bavier47aed292015-10-26 14:16:54 -0400141
Andy Bavierc66771b2015-11-03 15:57:08 -0500142
Andy Bavierfe3b0112015-10-26 12:19:50 -0400143 vOLT_ONOS_app:
144 type: tosca.nodes.ONOSvOLTApp
145 requirements:
146 - onos_tenant:
Andy Bavier47aed292015-10-26 14:16:54 -0400147 node: service_ONOS_vOLT
Andy Bavierfe3b0112015-10-26 12:19:50 -0400148 relationship: tosca.relationships.TenantOfService
149 - volt_service:
150 node: service_volt
151 relationship: tosca.relationships.UsedByService
152 properties:
Srikanth Vavilapalli5a1c15e2016-01-22 14:35:50 -0500153 install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
154 dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
155 component_config: >
156 {
157 "org.ciena.onos.ext_notifier.KafkaNotificationBridge":{
158 "rabbit.user": "<rabbit_user>",
159 "rabbit.password": "<rabbit_password>",
160 "rabbit.host": "<rabbit_host>",
Srikanth Vavilapalli7dad1132016-02-11 15:40:07 -0500161 "publish.kafka": "false",
Srikanth Vavilapalli5a1c15e2016-01-22 14:35:50 -0500162 "publish.rabbit": "true",
163 "volt.events.rabbit.topic": "notifications.info",
164 "volt.events.rabbit.exchange": "voltlistener",
165 "volt.events.opaque.info": "{project_id: <keystone_tenant_id>, user_id: <keystone_user_id>}",
166 "publish.volt.events": "true"
167 }
168 }
Scott Bakeraa403232015-12-07 23:01:40 -0800169# config_network-cfg.json: >
170# {
171# "devices" : {
172# "of:0000000000000001" : {
173# "accessDevice" : {
174# "uplink" : "2",
175# "vlan" : "222",
176# "defaultVlan" : "1"
177# },
178# "basic" : {
179# "driver" : "default"
180# }
181# }
182# }
183# }
Andy Bavierfe3b0112015-10-26 12:19:50 -0400184
Andy Bavier790c0e52015-10-20 11:37:06 -0400185 # Network templates
186 Private:
187 type: tosca.nodes.NetworkTemplate
188
Andy Bavier923c61c2015-10-20 14:53:01 -0400189 Public network hack:
190 type: tosca.nodes.NetworkTemplate
191 properties:
192 visibility: private
193 translation: NAT
194 shared_network_name: tun0-net
195
196
Andy Bavier790c0e52015-10-20 11:37:06 -0400197 # Networks required by the CORD setup
198 lan_network:
199 type: tosca.nodes.network.Network
200 properties:
201 ip_version: 4
202 requirements:
203 - network_template:
204 node: Private
205 relationship: tosca.relationships.UsesNetworkTemplate
206 - owner:
Scott Baker2516ce32016-02-11 16:56:34 -0800207 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400208 relationship: tosca.relationships.MemberOfSlice
209 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800210 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400211 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400212 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800213 node: mysite_vsg
Andy Bavier923c61c2015-10-20 14:53:01 -0400214 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier790c0e52015-10-20 11:37:06 -0400215
216 wan_network:
217 type: tosca.nodes.network.Network
218 properties:
219 ip_version: 4
220 requirements:
221 - network_template:
222 node: Private
223 relationship: tosca.relationships.UsesNetworkTemplate
224 - owner:
Scott Baker2516ce32016-02-11 16:56:34 -0800225 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400226 relationship: tosca.relationships.MemberOfSlice
227 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800228 node: mysite_vsg
Andy Bavier790c0e52015-10-20 11:37:06 -0400229 relationship: tosca.relationships.ConnectsToSlice
Andy Bavier923c61c2015-10-20 14:53:01 -0400230 - connection:
Scott Baker2516ce32016-02-11 16:56:34 -0800231 node: mysite_vsg
Andy Bavier923c61c2015-10-20 14:53:01 -0400232 relationship: tosca.relationships.ConnectsToSlice
233
Scott Baker6e5414e2015-12-09 16:51:52 -0800234 Private-Direct:
235 type: tosca.nodes.NetworkTemplate
236 properties:
237 access: direct
238
239 Private-Indirect:
240 type: tosca.nodes.NetworkTemplate
241 properties:
242 access: indirect
243
Andy Bavier923c61c2015-10-20 14:53:01 -0400244 subscriber_network:
245 type: tosca.nodes.network.Network
246 properties:
247 ip_version: 4
248 requirements:
249 - network_template:
250 node: Private
251 relationship: tosca.relationships.UsesNetworkTemplate
252 - owner:
253 node: mysite_volt
254 relationship: tosca.relationships.MemberOfSlice
255 - connection:
256 node: mysite_volt
257 relationship: tosca.relationships.ConnectsToSlice
258 - connection:
259 node: mysite_clients
260 relationship: tosca.relationships.ConnectsToSlice
261
262 public_network:
263 type: tosca.nodes.network.Network
264 properties:
265 requirements:
266 - network_template:
267 node: Public network hack
268 relationship: tosca.relationships.UsesNetworkTemplate
269 - owner:
270 node: mysite_vbng
271 relationship: tosca.relationships.MemberOfSlice
272 - connection:
273 node: mysite_vbng
274 relationship: tosca.relationships.ConnectsToSlice
275
Andy Bavierf0405252015-10-06 14:55:44 -0400276
277 mysite:
278 type: tosca.nodes.Site
279
Scott Baker58dd7c92016-03-04 10:44:41 -0800280 label_vsg:
281 type: tosca.nodes.NodeLabel
Andy Bavier923c61c2015-10-20 14:53:01 -0400282
283 # CORD Slices
Scott Baker2516ce32016-02-11 16:56:34 -0800284 mysite_vsg:
285 description: vSG Controller Slice
Andy Bavierf0405252015-10-06 14:55:44 -0400286 type: tosca.nodes.Slice
287 requirements:
Scott Baker2516ce32016-02-11 16:56:34 -0800288 - vsg_service:
Scott Bakerf91e6152016-02-11 12:07:10 -0800289 node: service_vsg
Andy Bavierf0405252015-10-06 14:55:44 -0400290 relationship: tosca.relationships.MemberOfService
291 - site:
292 node: mysite
293 relationship: tosca.relationships.MemberOfSite
Scott Baker2516ce32016-02-11 16:56:34 -0800294 - vsg_docker_image:
295 node: docker-vsg
Scott Baker345fbb92015-12-01 00:24:43 -0800296 relationship: tosca.relationships.UsesImage
Scott Bakereffb0ce2016-02-02 17:19:07 -0800297# properties:
298# default_isolation: container
Andy Bavierf0405252015-10-06 14:55:44 -0400299
Andy Bavier47aed292015-10-26 14:16:54 -0400300 mysite_onos_vbng:
301 description: ONOS Controller Slice for vBNG
Andy Bavier790c0e52015-10-20 11:37:06 -0400302 type: tosca.nodes.Slice
303 requirements:
304 - ONOS:
Andy Bavier47aed292015-10-26 14:16:54 -0400305 node: service_ONOS_vBNG
306 relationship: tosca.relationships.MemberOfService
307 - site:
308 node: mysite
309 relationship: tosca.relationships.MemberOfSite
310
311 mysite_onos_volt:
312 description: ONOS Controller Slice for vOLT
313 type: tosca.nodes.Slice
314 requirements:
315 - ONOS:
316 node: service_ONOS_vOLT
Andy Bavier790c0e52015-10-20 11:37:06 -0400317 relationship: tosca.relationships.MemberOfService
318 - site:
319 node: mysite
320 relationship: tosca.relationships.MemberOfSite
Andy Bavierf0405252015-10-06 14:55:44 -0400321
Andy Bavier923c61c2015-10-20 14:53:01 -0400322 mysite_vbng:
323 description: slice running OVS controlled by vBNG
324 type: tosca.nodes.Slice
325 requirements:
326 - site:
327 node: mysite
328 relationship: tosca.relationships.MemberOfSite
329
330 mysite_volt:
331 description: OVS controlled by vOLT
332 type: tosca.nodes.Slice
333 requirements:
334 - site:
335 node: mysite
336 relationship: tosca.relationships.MemberOfSite
337
338 mysite_clients:
Andy Bavier88552a02015-10-26 11:53:22 -0400339 description: slice for clients at the subscriber
Andy Bavier923c61c2015-10-20 14:53:01 -0400340 type: tosca.nodes.Slice
341 requirements:
342 - site:
343 node: mysite
344 relationship: tosca.relationships.MemberOfSite
345
346
347 # Virtual machines
348 onos_app_1:
Andy Bavier790c0e52015-10-20 11:37:06 -0400349 type: tosca.nodes.Compute
350 capabilities:
351 # Host container properties
352 host:
353 properties:
354 num_cpus: 1
355 disk_size: 10 GB
356 mem_size: 4 MB
357 # Guest Operating System properties
358 os:
359 properties:
360 # host Operating System image properties
361 architecture: x86_64
362 type: linux
363 distribution: Ubuntu
364 version: 14.10
365 requirements:
366 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400367 node: mysite_onos_vbng
Andy Bavier790c0e52015-10-20 11:37:06 -0400368 relationship: tosca.relationships.MemberOfSlice
Andy Bavierf0405252015-10-06 14:55:44 -0400369
Andy Bavier923c61c2015-10-20 14:53:01 -0400370 onos_app_2:
371 type: tosca.nodes.Compute
372 capabilities:
373 # Host container properties
374 host:
375 properties:
376 num_cpus: 1
377 disk_size: 10 GB
378 mem_size: 4 MB
379 # Guest Operating System properties
380 os:
381 properties:
382 # host Operating System image properties
383 architecture: x86_64
384 type: linux
385 distribution: Ubuntu
386 version: 14.10
387 requirements:
388 - slice:
Andy Bavier47aed292015-10-26 14:16:54 -0400389 node: mysite_onos_volt
Andy Bavier923c61c2015-10-20 14:53:01 -0400390 relationship: tosca.relationships.MemberOfSlice
391
392 # VM for running the OVS controlled by vBNG
393 ovs_vbng:
394 type: tosca.nodes.Compute
395 capabilities:
396 # Host container properties
397 host:
398 properties:
399 num_cpus: 1
400 disk_size: 10 GB
401 mem_size: 4 MB
402 # Guest Operating System properties
403 os:
404 properties:
405 # host Operating System image properties
406 architecture: x86_64
407 type: linux
408 distribution: ubuntu
409 version: 14.04
410 requirements:
411 - slice:
412 node: mysite_vbng
413 relationship: tosca.relationships.MemberOfSlice
414
415 # VM for running the OVS controlled by vOLT
416 ovs_volt:
417 type: tosca.nodes.Compute
418 capabilities:
419 # Host container properties
420 host:
421 properties:
422 num_cpus: 1
423 disk_size: 10 GB
424 mem_size: 4 MB
425 # Guest Operating System properties
426 os:
427 properties:
428 # host Operating System image properties
429 architecture: x86_64
430 type: linux
431 distribution: ubuntu
432 version: 14.04
433 requirements:
434 - slice:
435 node: mysite_volt
436 relationship: tosca.relationships.MemberOfSlice
437
438 # A subscriber client VM
439 client1:
440 type: tosca.nodes.Compute
441 capabilities:
442 # Host container properties
443 host:
444 properties:
445 num_cpus: 1
446 disk_size: 10 GB
447 mem_size: 4 MB
448 # Guest Operating System properties
449 os:
450 properties:
451 # host Operating System image properties
452 architecture: x86_64
453 type: linux
454 distribution: ubuntu
455 version: 14.04
456 requirements:
457 - slice:
458 node: mysite_clients
459 relationship: tosca.relationships.MemberOfSlice
460
Scott Baker2516ce32016-02-11 16:56:34 -0800461 # docker image for vsg containers
462 docker-vsg:
Scott Baker88fba402015-11-16 23:48:20 -0800463 # TODO: need to attach this to mydeployment
464 type: tosca.nodes.Image
465 properties:
466 kind: container
467 container_format: na
468 disk_format: na
Scott Baker5e505a52015-12-14 10:21:53 -0800469 path: andybavier/docker-vcpe
Andy Bavier1aa49af2015-12-16 14:10:01 -0500470 tag: develop
Scott Baker88fba402015-11-16 23:48:20 -0800471
Scott Baker688c4dd2016-01-27 19:00:06 -0800472 # Let's add a user who can be administrator of the household
473 johndoe@myhouse.com:
474 type: tosca.nodes.User
475 properties:
476 password: letmein
477 firstname: john
478 lastname: doe
479 requirements:
480 - site:
481 node: mysite
482 relationship: tosca.relationships.MemberOfSite
483
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400484 # A subscriber
485 My House:
486 type: tosca.nodes.CORDSubscriber
487 properties:
488 service_specific_id: 123
489 firewall_enable: false
490 cdn_enable: false
491 url_filter_enable: false
492 url_filter_level: R
Scott Baker688c4dd2016-01-27 19:00:06 -0800493 requirements:
494 - house_admin:
495 node: johndoe@myhouse.com
496 relationship: tosca.relationships.AdminPrivilege
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400497
498 Mom's PC:
499 type: tosca.nodes.CORDUser
500 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500501 mac: 01:02:03:04:05:06
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400502 level: PG_13
503 requirements:
504 - household:
505 node: My House
506 relationship: tosca.relationships.SubscriberDevice
507
508 Dad's PC:
509 type: tosca.nodes.CORDUser
510 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500511 mac: 90:E2:BA:82:F9:75
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400512 level: PG_13
513 requirements:
514 - household:
515 node: My House
516 relationship: tosca.relationships.SubscriberDevice
517
518 Jack's Laptop:
519 type: tosca.nodes.CORDUser
520 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500521 mac: 68:5B:35:9D:91:D5
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400522 level: PG_13
523 requirements:
524 - household:
525 node: My House
526 relationship: tosca.relationships.SubscriberDevice
527
528 Jill's Laptop:
529 type: tosca.nodes.CORDUser
530 properties:
Andy Bavier1aa49af2015-12-16 14:10:01 -0500531 mac: 34:36:3B:C9:B6:A6
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400532 level: PG_13
533 requirements:
534 - household:
535 node: My House
536 relationship: tosca.relationships.SubscriberDevice
537
538 My Volt:
539 type: tosca.nodes.VOLTTenant
540 properties:
541 service_specific_id: 123
Scott Baker14d8a0c2015-11-10 12:06:18 -0800542 s_tag: 222
543 c_tag: 432
Andy Bavierc41b5ab2015-10-22 14:27:45 -0400544 requirements:
545 - provider_service:
546 node: service_volt
547 relationship: tosca.relationships.MemberOfService
548 - subscriber:
549 node: My House
550 relationship: tosca.relationships.BelongsToSubscriber