blob: 4f8b9ecbbd6791a4efaebc536073331cb50c70cf [file] [log] [blame]
Scott Baker50421662016-06-27 22:09:48 -07001tosca_definitions_version: tosca_simple_yaml_1_0
2
3description: Just enough Tosca to get the vSG slice running on the CORD POD
4
5imports:
6 - custom_types/xos.yaml
7
8topology_template:
9 node_templates:
10 # CORD Services
11 service#vtr:
12 type: tosca.nodes.Service
13 properties:
14 view_url: /admin/vtr/vtrservice/$id$/
15 kind: vTR
16 replaces: service_vtr
17
18 service#volt:
19 type: tosca.nodes.VOLTService
20 requirements:
21 - vsg_tenant:
22 node: service#vsg
23 relationship: tosca.relationships.TenantOfService
24 properties:
25 view_url: /admin/volt/voltservice/$id$/
26 kind: vOLT
27 replaces: service_volt
28 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
29 private_key_fn: /opt/xos/services/volt/keys/volt_rsa
30 artifacts:
31 pubkey: /opt/xos/services/volt/keys/volt_rsa.pub
32
33 addresses_vsg:
34 type: tosca.nodes.AddressPool
35 properties:
36 addresses: 10.168.0.0/24
37 gateway_ip: 10.168.0.1
38 gateway_mac: 02:42:0a:a8:00:01
39
40 addresses_exampleservice-public:
41 type: tosca.nodes.AddressPool
42 properties:
43 addresses: 10.168.1.0/24
44 gateway_ip: 10.168.1.1
45 gateway_mac: 02:42:0a:a8:00:01
46
47 service#vsg:
48 type: tosca.nodes.VSGService
49 requirements:
50 - vrouter_tenant:
51 node: service#vrouter
52 relationship: tosca.relationships.TenantOfService
53 properties:
54 view_url: /admin/vsg/vsgservice/$id$/
55 backend_network_label: hpc_client
56 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
57 private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa
58# node_label: label_vsg
59 replaces: service_vsg
60 artifacts:
61 pubkey: /opt/xos/services/vsg/keys/vsg_rsa.pub
62
63 service#vrouter:
64 type: tosca.nodes.VRouterService
65 properties:
66 view_url: /admin/vrouter/vrouterservice/$id$/
67 replaces: service_vrouter
68 requirements:
69 - addresses_vsg:
70 node: addresses_vsg
71 relationship: tosca.relationships.ProvidesAddresses
72 - addresses_service1:
73 node: addresses_exampleservice-public
74 relationship: tosca.relationships.ProvidesAddresses
75
76
77 service#ONOS_CORD:
78 type: tosca.nodes.ONOSService
79 properties:
80 no-delete: true
81 no-create: true
82 no-update: true
83
84 service#ONOS_Fabric:
85 type: tosca.nodes.ONOSService
86 properties:
87 no-delete: true
88 no-create: true
89 no-update: true
90
91 vOLT_ONOS_app:
92 type: tosca.nodes.ONOSvOLTApp
93 requirements:
94 - onos_tenant:
95 node: service#ONOS_CORD
96 relationship: tosca.relationships.TenantOfService
97 - volt_service:
98 node: service#volt
99 relationship: tosca.relationships.UsedByService
100 properties:
101 install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
102 dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
103 autogenerate: volt-network-cfg
104
105 vRouter_ONOS_app:
106 type: tosca.nodes.ONOSvRouterApp
107 requirements:
108 - onos_tenant:
109 node: service#ONOS_Fabric
110 relationship: tosca.relationships.TenantOfService
111 - vrouter_service:
112 node: service#vrouter
113 relationship: tosca.relationships.UsedByService
114 properties:
115 dependencies: org.onosproject.vrouter
116 autogenerate: vrouter-network-cfg
117
118 Private:
119 type: tosca.nodes.NetworkTemplate
120
121 management:
122 type: tosca.nodes.network.Network.XOS
123 properties:
124 no-create: true
125 no-delete: true
126 no-update: true
127
128 image#vsg-1.0:
129 type: tosca.nodes.Image
130
131 mysite:
132 type: tosca.nodes.Site
133
134 label_vsg:
135 type: tosca.nodes.NodeLabel
136
137 # Networks required by the CORD setup
138 mysite_vsg-access:
139 type: tosca.nodes.network.Network
140 properties:
141 ip_version: 4
142 requirements:
143 - network_template:
144 node: Private
145 relationship: tosca.relationships.UsesNetworkTemplate
146 - owner:
147 node: mysite_vsg
148 relationship: tosca.relationships.MemberOfSlice
149 - connection:
150 node: mysite_vsg
151 relationship: tosca.relationships.ConnectsToSlice
152
153 # CORD Slices
154 mysite_vsg:
155 description: vSG Controller Slice
156 type: tosca.nodes.Slice
157 properties:
158 network: noauto
159 requirements:
160 - vsg_service:
161 node: service#vsg
162 relationship: tosca.relationships.MemberOfService
163 - site:
164 node: mysite
165 relationship: tosca.relationships.MemberOfSite
166 - management:
167 node: management
168 relationship: tosca.relationships.ConnectsToNetwork
169 - image:
170 node: image#vsg-1.0
171 relationship: tosca.relationships.DefaultImage
172
173 # Let's add a user who can be administrator of the household
174 johndoe@myhouse.com:
175 type: tosca.nodes.User
176 properties:
177 password: letmein
178 firstname: john
179 lastname: doe
180 requirements:
181 - site:
182 node: mysite
183 relationship: tosca.relationships.MemberOfSite
184 - dependency:
185 node: mysite_vsg
186 relationship: tosca.relationships.DependsOn
187
188 # A subscriber
189 My House:
190 type: tosca.nodes.CORDSubscriber
191 properties:
192 service_specific_id: 123
193 firewall_enable: false
194 cdn_enable: false
195 url_filter_enable: false
196 url_filter_level: R
197 requirements:
198 - house_admin:
199 node: johndoe@myhouse.com
200 relationship: tosca.relationships.AdminPrivilege
201
202 Mom's PC:
203 type: tosca.nodes.CORDUser
204 properties:
205 mac: 01:02:03:04:05:06
206 level: PG_13
207 requirements:
208 - household:
209 node: My House
210 relationship: tosca.relationships.SubscriberDevice
211
212 Dad's PC:
213 type: tosca.nodes.CORDUser
214 properties:
215 mac: 90:E2:BA:82:F9:75
216 level: PG_13
217 requirements:
218 - household:
219 node: My House
220 relationship: tosca.relationships.SubscriberDevice
221
222 Jack's Laptop:
223 type: tosca.nodes.CORDUser
224 properties:
225 mac: 68:5B:35:9D:91:D5
226 level: PG_13
227 requirements:
228 - household:
229 node: My House
230 relationship: tosca.relationships.SubscriberDevice
231
232 Jill's Laptop:
233 type: tosca.nodes.CORDUser
234 properties:
235 mac: 34:36:3B:C9:B6:A6
236 level: PG_13
237 requirements:
238 - household:
239 node: My House
240 relationship: tosca.relationships.SubscriberDevice
241
242 My Volt:
243 type: tosca.nodes.VOLTTenant
244 properties:
245 service_specific_id: 123
246 s_tag: 222
247 c_tag: 111
248 requirements:
249 - provider_service:
250 node: service#volt
251 relationship: tosca.relationships.MemberOfService
252 - subscriber:
253 node: My House
254 relationship: tosca.relationships.BelongsToSubscriber
255 - dependency:
256 node: mysite_vsg
257 relationship: tosca.relationships.DependsOn