blob: 72509ffddd33f7d89791e6ae25176bb39ccb2f86 [file] [log] [blame]
Zack Williams682450e2016-11-19 09:04:41 -07001tosca_definitions_version: tosca_simple_yaml_1_0
2
3description: Just enough Tosca to get the vSG slice running on the CORD POD, created by platform-install
4
5imports:
6 - custom_types/xos.yaml
Scott Baker3a5dea72017-03-06 23:01:01 -08007 - custom_types/vtr.yaml
Zack Williams682450e2016-11-19 09:04:41 -07008
9topology_template:
10 node_templates:
11
12# site, image, fully created in deployment.yaml
13 {{ site_name }}:
14 type: tosca.nodes.Site
15
16 image#vsg-1.1:
17 type: tosca.nodes.Image
18
19# management networks, fully created in management-net.yaml
20 management:
21 type: tosca.nodes.network.Network.XOS
22 properties:
23 no-create: true
24 no-delete: true
25 no-update: true
26
Zack Williamsa2763112017-01-03 11:38:38 -070027{% if use_management_hosts %}
Zack Williams682450e2016-11-19 09:04:41 -070028 management_hosts:
29 type: tosca.nodes.network.Network.XOS
30 properties:
31 no-create: true
32 no-delete: true
33 no-update: true
Zack Williamsa2763112017-01-03 11:38:38 -070034{% endif %}
Zack Williams682450e2016-11-19 09:04:41 -070035
Scott Baker87207e32017-07-18 10:45:55 -070036 service#rcord:
37 type: tosca.nodes.Service
38
Zack Williams682450e2016-11-19 09:04:41 -070039# ONOS_CORD, fully created in vtn.yaml
40 service#ONOS_CORD:
41 type: tosca.nodes.ONOSService
42 properties:
43 no-delete: true
44 no-create: true
45 no-update: true
46
47# ONOS_Fabric, fully created in fabric.yaml
48 service#ONOS_Fabric:
49 type: tosca.nodes.ONOSService
50 properties:
51 no-delete: true
52 no-create: true
53 no-update: true
54
55# CORD Services
56 service#vtr:
Scott Baker3a5dea72017-03-06 23:01:01 -080057 type: tosca.nodes.VTRService
Zack Williams682450e2016-11-19 09:04:41 -070058 properties:
59 view_url: /admin/vtr/vtrservice/$id$/
60 kind: vTR
61 replaces: service_vtr
62
63 service#volt:
64 type: tosca.nodes.VOLTService
65 requirements:
66 - vsg_tenant:
67 node: service#vsg
68 relationship: tosca.relationships.TenantOfService
69 properties:
70 view_url: /admin/volt/voltservice/$id$/
71 kind: vOLT
72 replaces: service_volt
73 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
74 private_key_fn: /opt/xos/services/volt/keys/volt_rsa
75 artifacts:
Scott Baker57196542017-04-11 15:48:17 -070076 pubkey: /opt/cord_profile/key_import/volt_rsa.pub
Zack Williams682450e2016-11-19 09:04:41 -070077
78 addresses_vsg:
79 type: tosca.nodes.AddressPool
80 properties:
81 addresses: 10.6.1.128/26
82 gateway_ip: 10.6.1.129
83 gateway_mac: 02:42:0a:06:01:01
84
85 addresses_public:
86 type: tosca.nodes.AddressPool
87 properties:
88 addresses: 10.6.1.192/26
89 gateway_ip: 10.6.1.193
90 gateway_mac: 02:42:0a:06:01:01
91
92 label_vsg:
93 type: tosca.nodes.NodeLabel
94
95 service#vsg:
96 type: tosca.nodes.VSGService
97 requirements:
98 - vrouter_tenant:
99 node: service#vrouter
100 relationship: tosca.relationships.TenantOfService
101 properties:
102 view_url: /admin/vsg/vsgservice/$id$/
103 backend_network_label: hpc_client
104 public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
105 private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa
106# node_label: label_vsg
107 replaces: service_vsg
108 artifacts:
Scott Baker57196542017-04-11 15:48:17 -0700109 pubkey: /opt/cord_profile/key_import/vsg_rsa.pub
Zack Williams682450e2016-11-19 09:04:41 -0700110
111 service#vrouter:
112 type: tosca.nodes.VRouterService
113 properties:
114 view_url: /admin/vrouter/vrouterservice/$id$/
115 replaces: service_vrouter
116 requirements:
117 - addresses_vsg:
118 node: addresses_vsg
119 relationship: tosca.relationships.ProvidesAddresses
120 - addresses_public:
121 node: addresses_public
122 relationship: tosca.relationships.ProvidesAddresses
123
124 vRouter_ONOS_app:
125 type: tosca.nodes.ONOSvRouterApp
126 requirements:
127 - onos_tenant:
128 node: service#ONOS_Fabric
129 relationship: tosca.relationships.TenantOfService
130 - vrouter_service:
131 node: service#vrouter
132 relationship: tosca.relationships.UsedByService
133 properties:
134 dependencies: org.onosproject.vrouter
135 autogenerate: vrouter-network-cfg
136
137 template#vsg:
138 type: tosca.nodes.NetworkTemplate
139 properties:
140 visibility: private
141 translation: none
142 vtn_kind: VSG
143
144 # Networks required by the CORD setup
145 {{ site_name }}_vsg-access:
146 type: tosca.nodes.network.Network
147 properties:
148 ip_version: 4
149 requirements:
150 - network_template:
151 node: template#vsg
152 relationship: tosca.relationships.UsesNetworkTemplate
153 - owner:
154 node: {{ site_name }}_vsg
155 relationship: tosca.relationships.MemberOfSlice
156 - connection:
157 node: {{ site_name }}_vsg
158 relationship: tosca.relationships.ConnectsToSlice
159
160 # CORD Slices
161 {{ site_name }}_vsg:
162 description: vSG Controller Slice
163 type: tosca.nodes.Slice
164 properties:
165 network: noauto
166 requirements:
167 - vsg_service:
168 node: service#vsg
169 relationship: tosca.relationships.MemberOfService
170 - site:
171 node: {{ site_name }}
172 relationship: tosca.relationships.MemberOfSite
173 - management:
174 node: management
175 relationship: tosca.relationships.ConnectsToNetwork
Zack Williamsa2763112017-01-03 11:38:38 -0700176{% if use_management_hosts %}
177 - management_hosts:
178 node: management_hosts
179 relationship: tosca.relationships.ConnectsToNetwork
180{% endif %}
Zack Williams682450e2016-11-19 09:04:41 -0700181 - image:
182 node: image#vsg-1.1
183 relationship: tosca.relationships.DefaultImage
184
Scott Baker87207e32017-07-18 10:45:55 -0700185 in#lanside:
186 type: tosca.nodes.InterfaceType
187 properties:
188 direction: in
189
190 out#lanside:
191 type: tosca.nodes.InterfaceType
192 properties:
193 direction: out
194
195 in#wanside:
196 type: tosca.nodes.InterfaceType
197 properties:
198 direction: in
199
200 out#wanside:
201 type: tosca.nodes.InterfaceType
202 properties:
203 direction: out
204
205 volt_lanside:
206 type: tosca.nodes.ServiceInterface
207 requirements:
208 - service:
209 node: service#volt
210 relationship: tosca.relationships.MemberOfService
211 - interface:
212 node: out#lanside
213 relationship: tosca.relationships.IsType
214
215 vsg_lanside:
216 type: tosca.nodes.ServiceInterface
217 requirements:
218 - service:
219 node: service#vsg
220 relationship: tosca.relationships.MemberOfService
221 - interface:
222 node: in#lanside
223 relationship: tosca.relationships.IsType
224
225 vsg_wanside:
226 type: tosca.nodes.ServiceInterface
227 requirements:
228 - service:
229 node: service#vsg
230 relationship: tosca.relationships.MemberOfService
231 - interface:
232 node: out#wanside
233 relationship: tosca.relationships.IsType
234
235 vrouter_wanside:
236 type: tosca.nodes.ServiceInterface
237 requirements:
238 - service:
239 node: service#vrouter
240 relationship: tosca.relationships.MemberOfService
241 - interface:
242 node: in#wanside
243 relationship: tosca.relationships.IsType