blob: b4d7529a8741deceb7fad90daef43d7c10e685d6 [file] [log] [blame]
Zack Williams2da41af2018-01-10 17:48:23 -07001---
Andy Bavier3ade4a52017-12-20 10:40:16 -07002{#
3Copyright 2017-present Open Networking Foundation
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16#}
17
Andy Bavier3ade4a52017-12-20 10:40:16 -070018tosca_definitions_version: tosca_simple_yaml_1_0
19
Zack Williams2da41af2018-01-10 17:48:23 -070020description: Just enough Tosca to get the vSG slice running on the CORD POD, created by rcord profile
Andy Bavier3ade4a52017-12-20 10:40:16 -070021
22imports:
23 - custom_types/addressmanagerservice.yaml
24 - custom_types/addresspool.yaml
25 - custom_types/image.yaml
26 - custom_types/network.yaml
27 - custom_types/networkslice.yaml
28 - custom_types/networktemplate.yaml
29 - custom_types/nodelabel.yaml
30 - custom_types/onosapp.yaml
31 - custom_types/onosservice.yaml
32 - custom_types/site.yaml
33 - custom_types/service.yaml
34 - custom_types/servicedependency.yaml
35 - custom_types/serviceinstanceattribute.yaml
36 - custom_types/serviceinstancelink.yaml
37 - custom_types/slice.yaml
38 - custom_types/voltservice.yaml
39 - custom_types/vrouterservice.yaml
40 - custom_types/vsgservice.yaml
41 - custom_types/vtrservice.yaml
42
43topology_template:
44 node_templates:
45
46 {{ site_name }}:
47 type: tosca.nodes.Site
48 properties:
49 name: {{ site_name }}
50 must-exist: true
51
52 image#vsg-1.1:
53 type: tosca.nodes.Image
54 properties:
55 name: vsg-1.1
56
57# management networks, fully created in management-net.yaml
58 management:
59 type: tosca.nodes.Network
60 properties:
61 name: management
62 must-exist: true
63
Zack Williams2da41af2018-01-10 17:48:23 -070064{% if use_vtn_net_management_host %}
65 management_host:
Andy Bavier3ade4a52017-12-20 10:40:16 -070066 type: tosca.nodes.Network
67 properties:
Zack Williams2da41af2018-01-10 17:48:23 -070068 name: management_host
Andy Bavier3ade4a52017-12-20 10:40:16 -070069 must-exist: true
70{% endif %}
71
72 service#rcord:
73 type: tosca.nodes.Service
74 properties:
75 name: rcord
76
77 rcord_volt:
78 type: tosca.nodes.ServiceDependency
79 properties:
80 connect_method: None
81 requirements:
82 - subscriber_service:
83 node: service#rcord
84 relationship: tosca.relationships.BelongsToOne
85 - provider_service:
86 node: service#volt
87 relationship: tosca.relationships.BelongsToOne
88
89# ONOS_CORD, fully created in vtn.yaml
90 service#ONOS_CORD:
91 type: tosca.nodes.ONOSService
92 properties:
93 name: ONOS_CORD
94 must-exist: true
95
96# ONOS_Fabric, fully created in fabric.yaml
97 service#ONOS_Fabric:
98 type: tosca.nodes.ONOSService
99 properties:
100 name: ONOS_Fabric
101 must-exist: true
102
103# CORD Services
104 service#vtr:
105 type: tosca.nodes.VTRService
106 properties:
107 name: vtr
108 kind: rcord
109
110 service#volt:
111 type: tosca.nodes.VOLTService
112 properties:
113 name: volt
114 kind: rcord
115 public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/volt_rsa.pub') }}
116 private_key_fn: /opt/xos/services/volt/keys/volt_rsa
Scott Baker02e731a2018-05-01 17:46:53 -0700117 voltha_url: http://does.not.exist/
Matteo Scandolo4e9d7a22018-05-07 13:38:19 -0700118 onos_voltha_url: http://does.not.exist/
Andy Bavier3ade4a52017-12-20 10:40:16 -0700119
120 volt_vsg:
121 type: tosca.nodes.ServiceDependency
122 properties:
123 connect_method: None
124 requirements:
125 - subscriber_service:
126 node: service#volt
127 relationship: tosca.relationships.BelongsToOne
128 - provider_service:
129 node: service#vsg
130 relationship: tosca.relationships.BelongsToOne
131
Zack Williams2da41af2018-01-10 17:48:23 -0700132
Andy Bavier3ade4a52017-12-20 10:40:16 -0700133 addresses_vsg:
134 type: tosca.nodes.AddressPool
135 properties:
136 name: addresses_vsg
Zack Williams2da41af2018-01-10 17:48:23 -0700137 addresses: {{ addresspool_vsg_cidr }}
138 gateway_ip: {{ addresspool_vsg_cidr | ipaddr('1') | ipaddr('address') }}
Zack Williamsec79bac2018-02-06 18:00:05 -0700139 gateway_mac: {{ fabric_gateway_hwaddr }}
Andy Bavier3ade4a52017-12-20 10:40:16 -0700140 requirements:
141 - service:
142 node: service#addressmanager
143 relationship: tosca.relationships.BelongsToOne
144
145 addresses_public:
146 type: tosca.nodes.AddressPool
147 properties:
148 name: addresses_public
Zack Williams2da41af2018-01-10 17:48:23 -0700149 addresses: {{ addresspool_public_cidr }}
150 gateway_ip: {{ addresspool_public_cidr | ipaddr('1') | ipaddr('address') }}
Zack Williamsec79bac2018-02-06 18:00:05 -0700151 gateway_mac: {{ fabric_gateway_hwaddr }}
Andy Bavier3ade4a52017-12-20 10:40:16 -0700152 requirements:
153 - service:
154 node: service#addressmanager
155 relationship: tosca.relationships.BelongsToOne
156
157 label_vsg:
158 type: tosca.nodes.NodeLabel
159 properties:
160 name: label_vsg
161
162 service#vsg:
163 type: tosca.nodes.VSGService
164 properties:
165 name: vsg
166 # backend_network_label: hpc_client # what is this? can we drop it?
167 public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/vsg_rsa.pub') }}
168 private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa
169 # node_label: label_vsg
170
171 vsg_vrouter:
172 type: tosca.nodes.ServiceDependency
173 properties:
174 connect_method: None
175 requirements:
176 - subscriber_service:
177 node: service#vsg
178 relationship: tosca.relationships.BelongsToOne
179 - provider_service:
180 node: service#vrouter
181 relationship: tosca.relationships.BelongsToOne
182
183 vsg_addressmanager:
184 type: tosca.nodes.ServiceDependency
185 properties:
186 connect_method: None
187 requirements:
188 - subscriber_service:
189 node: service#vsg
190 relationship: tosca.relationships.BelongsToOne
191 - provider_service:
192 node: service#addressmanager
193 relationship: tosca.relationships.BelongsToOne
194
195 service#addressmanager:
196 type: tosca.nodes.AddressManagerService
197 properties:
198 name: addressmanager
199
200 service#vrouter:
201 type: tosca.nodes.VRouterService
202 properties:
203 name: vrouter
Andy Bavier3ade4a52017-12-20 10:40:16 -0700204
205 vRouter_ONOS_app:
206 type: tosca.nodes.ONOSApp
207 requirements:
208 - owner:
209 node: service#ONOS_Fabric
210 relationship: tosca.relationships.BelongsToOne
211 properties:
212 name: vRouter_ONOS_app
213 dependencies: org.onosproject.fpm
214
215 vRouter_ONOS_app_autogenerate:
216 type: tosca.nodes.ServiceInstanceAttribute
217 requirements:
218 - service_instance:
219 node: vRouter_ONOS_app
220 relationship: tosca.relationships.BelongsToOne
221 properties:
222 name: autogenerate
223 value: vrouter-network-cfg
224
225 vRouter_ONOS_app_ONOS_CORD:
226 type: tosca.nodes.ServiceInstanceLink
227 requirements:
228 - provider_service_instance:
229 node: vRouter_ONOS_app
230 relationship: tosca.relationships.BelongsToOne
231 - subscriber_service:
232 node: service#vrouter
233 relationship: tosca.relationships.BelongsToOne
234
Zack Williams2da41af2018-01-10 17:48:23 -0700235 vsg_template:
Andy Bavier3ade4a52017-12-20 10:40:16 -0700236 type: tosca.nodes.NetworkTemplate
237 properties:
Zack Williams2da41af2018-01-10 17:48:23 -0700238 name: vsg_template
Andy Bavier3ade4a52017-12-20 10:40:16 -0700239 visibility: private
240 translation: none
241 vtn_kind: VSG
242
243 # Networks required by the CORD setup
244 {{ site_name }}_vsg-access:
245 type: tosca.nodes.Network
246 properties:
247 name: {{ site_name }}_vsg-access
248 # ip_version: 4
249 requirements:
250 - template:
Zack Williams2da41af2018-01-10 17:48:23 -0700251 node: vsg_template
Andy Bavier3ade4a52017-12-20 10:40:16 -0700252 relationship: tosca.relationships.BelongsToOne
253 - owner:
254 node: {{ site_name }}_vsg
255 relationship: tosca.relationships.BelongsToOne
256
257 networkslice#{{ site_name }}_vsg-access_to_{{ site_name }}_vsg:
258 type: tosca.nodes.NetworkSlice
259 requirements:
260 - network:
261 node: {{ site_name }}_vsg-access
262 relationship: tosca.relationships.BelongsToOne
263 - slice:
264 node: {{ site_name }}_vsg
265 relationship: tosca.relationships.BelongsToOne
266
267 # CORD Slices
268 {{ site_name }}_vsg:
269 description: vSG Controller Slice
270 type: tosca.nodes.Slice
271 properties:
272 network: noauto
273 name: {{ site_name }}_vsg
Zack Williams2da41af2018-01-10 17:48:23 -0700274 requirements:
Andy Bavier3ade4a52017-12-20 10:40:16 -0700275 - service:
276 node: service#vsg
277 relationship: tosca.relationships.BelongsToOne
278 - site:
279 node: {{ site_name }}
280 relationship: tosca.relationships.BelongsToOne
281 - default_image:
282 node: image#vsg-1.1
283 relationship: tosca.relationships.BelongsToOne
284
285 networkslice#management_to_{{ site_name }}_vsg:
286 type: tosca.nodes.NetworkSlice
287 requirements:
288 - network:
289 node: management
290 relationship: tosca.relationships.BelongsToOne
291 - slice:
292 node: {{ site_name }}_vsg
293 relationship: tosca.relationships.BelongsToOne
294
Zack Williams2da41af2018-01-10 17:48:23 -0700295{% if use_vtn_net_management_host %}
296 networkslice#management_host_to_{{ site_name }}_vsg:
Andy Bavier3ade4a52017-12-20 10:40:16 -0700297 type: tosca.nodes.NetworkSlice
298 requirements:
299 - network:
Zack Williams2da41af2018-01-10 17:48:23 -0700300 node: management_host
Andy Bavier3ade4a52017-12-20 10:40:16 -0700301 relationship: tosca.relationships.BelongsToOne
302 - slice:
Zack Williams2da41af2018-01-10 17:48:23 -0700303 node: {{ site_name }}_vsg
304 relationship: tosca.relationships.BelongsToOne
Andy Bavier3ade4a52017-12-20 10:40:16 -0700305{% endif %}
Zack Williams2da41af2018-01-10 17:48:23 -0700306
Andy Bavier3ade4a52017-12-20 10:40:16 -0700307 # TODO: migrate interfaces when we'll start using them
Matteo Scandolo4e9d7a22018-05-07 13:38:19 -0700308
Andy Bavier3ade4a52017-12-20 10:40:16 -0700309 # in#lanside:
310 # type: tosca.nodes.InterfaceType
311 # properties:
312 # direction: in
313
314 # out#lanside:
315 # type: tosca.nodes.InterfaceType
316 # properties:
317 # direction: out
318
319 # in#wanside:
320 # type: tosca.nodes.InterfaceType
321 # properties:
322 # direction: in
323
324 # out#wanside:
325 # type: tosca.nodes.InterfaceType
326 # properties:
327 # direction: out
328
329 # volt_lanside:
330 # type: tosca.nodes.ServiceInterface
331 # requirements:
332 # - service:
333 # node: service#volt
334 # relationship: tosca.relationships.MemberOfService
335 # - interface:
336 # node: out#lanside
337 # relationship: tosca.relationships.IsType
338
339 # vsg_lanside:
340 # type: tosca.nodes.ServiceInterface
341 # requirements:
342 # - service:
343 # node: service#vsg
344 # relationship: tosca.relationships.MemberOfService
345 # - interface:
346 # node: in#lanside
347 # relationship: tosca.relationships.IsType
348
349 # vsg_wanside:
350 # type: tosca.nodes.ServiceInterface
351 # requirements:
352 # - service:
353 # node: service#vsg
354 # relationship: tosca.relationships.MemberOfService
355 # - interface:
356 # node: out#wanside
357 # relationship: tosca.relationships.IsType
358
359 # addressmanager_wanside:
360 # type: tosca.nodes.ServiceInterface
361 # requirements:
362 # - service:
363 # node: service#addressmanager
364 # relationship: tosca.relationships.MemberOfService
365 # - interface:
366 # node: in#wanside
Zack Williams2da41af2018-01-10 17:48:23 -0700367 # relationship: tosca.relationships.IsType
368