blob: 75a2d45e24034b2282ce0a5de4de85e5b49ddf69 [file] [log] [blame]
Rene_Robert9859c932019-08-14 15:49:28 +02001.. This work is licensed under a Creative Commons Attribution 4.0
2 International License.
3.. http://creativecommons.org/licenses/by/4.0
Aric Gardner20f99e52020-04-09 12:42:12 -07004.. _instantiate:
Rene_Robert9859c932019-08-14 15:49:28 +02005
6Instantiate Service, VNF, VF modules and Network
7================================================
8
9
10Overview
11--------
12
13Using VID with A-La-Carte method means that the user needs to performed
deen198522a095b2021-02-24 22:16:57 +010014by himself the instantiation of each object: service, VNF(s), VF module(s),
Rene_Robert9859c932019-08-14 15:49:28 +020015network(s).
16
17ONAP to VIM interactions will occurs when instantiating/deleting VF module(s)
18or Network(s). In case of an Openstack VIM, Heat Stack(s) will
19be created/deleted.
20
21In the following description, the service model in SDC was composed of 1 VF
22and 1 Virtual Link (Generic Neutron Network)
23
ramagp0384ef02020-09-29 13:33:27 +000024.. note::
25 For doing this make sure that while Service Design drag the created VF and Generic NetronNet Virtual Link (under Generic/Network Elemntes list) from the
26 Elements palette to the canvas then connect as mentoned in Create Service section of Service Design under Composition
27
Rene_Robert9859c932019-08-14 15:49:28 +020028To be able to instantiate VF-module or Network object, some data need to be
29declared in ONAP SDNC using SDNC Rest API. It is the place where to put
30the instance specific values such as an IP address value specific
31to the VNF instance for example.
32
33In VID, terminologies are sometimes different than in other components:
34
35VNF in VID = VF in SDC
36
37Node instance = VF in SDC
38
39Network = Virtual Link in SDC
40
41
42Pre-requisites
43--------------
44
deen198522a095b2021-02-24 22:16:57 +010045Pre-instantiation operations must have been performed in AAI and VID,
Rene_Robert9859c932019-08-14 15:49:28 +020046via Rest API, to declare some values for:
47
48- Subscriber Name (= customer in AAI)
49- Service Type or product family (= service subscription in AAI)
50- Project
51- Owning Entity
52- Line Of Business
53- Platform
54- LCP Region (= CloudOwner/RegionId in AAI)
55- Tenant
56
deen198522a095b2021-02-24 22:16:57 +010057See, in the ONAP User Guides, section about adding a CloudSite
Rene_Robert9859c932019-08-14 15:49:28 +020058and section about pre-instantiation Operations
59
ramagp0384ef02020-09-29 13:33:27 +000060.. note::
61 Robot demo script will be used to populate demo models automatically with Demonstration as Subscriber Name in VID by running "demo-k8s.sh onap init"
62
Rene_Robert9859c932019-08-14 15:49:28 +020063Access to VID portal
64--------------------
65
66.. figure:: images/onap-portal.png
67 :align: center
68
69Select the VID icon
70
71.. figure:: images/vid-icon-on-portal.png
72 :align: center
73
74
75Here after, the VID Home page starts
76
77.. figure:: images/home.png
78 :align: center
79
80
81SDNC API selection
82------------------
83
84Select the API for "A-la-carte"
85
86There are two choices:
87
88- VNF_API (old) : VID will use the (old) "VNF" SDNC API
89 to get/check some parameters
90- GR_API (new) : VID will use the "Generic Resource"
91 SDNC API to get/check some parameters
92
93.. figure:: images/API_selection.png
94 :align: center
95
96
97
deen198522a095b2021-02-24 22:16:57 +010098Instantiate Service in "A-la-carte" mode
99----------------------------------------
Rene_Robert9859c932019-08-14 15:49:28 +0200100
101Click Browse SDC Service Models and search for the service to instantiate.
102
103The view show only service models in the DISTRIBUTED state.
104
105.. figure:: images/browse-service-models.png
106 :align: center
107
108
109Select a service and click Deploy.
110
111A dialog box displays.
112
113Complete the fields indicated by the red star and click Confirm.
114
115.. figure:: images/create-service-instance-alacarte.png
116 :align: center
117
deen198522a095b2021-02-24 22:16:57 +0100118A status box appears that shows the ONAP SO instantiation progress
Rene_Robert9859c932019-08-14 15:49:28 +0200119as well as any messages associated with the process.
120
121.. figure:: images/create-service-instance-alacarte-success.png
122 :align: center
123
124A Service object is created in ONAP.
125
126Click Close and next screen should appear.
127It will allow to declare VNF(s) and Network(s)
128that are part of the service model composition.
129
130.. figure:: images/create-service-instance-alacarte-VNF-network.png
131 :align: center
132
133
134Instantiate a VNF
135-----------------
136
137From previous screen, it is possible to declare a VNF: click on
138"Add node instance" and select the VNF you want to instantiate in the list
139
140The following screen should appear:
141
142.. figure:: images/create-vnf-instance-alacarte.png
143 :align: center
144
145Complete the fields indicated by the red star and click Confirm.
146
147A VNF object will be declared in ONAP.
148
149Once, ONAP SO process is finished, click on close button.
150
151The following screen then should appear:
152
153
154.. figure:: images/create-service-instance-alacarte-after-vnf-instantiated.png
155 :align: center
156
157
158Warning: a this step, no VNF instance (e.g. VM) is created on the Cloud Platform.
159
160Click on "i" blue button to obtain VNF instance display information.
161
162From this screen, it will be possible to get:
163
164- the service instance id value
165- the VNF Type value
166
167Those information will be necessary for the "SDNC preload" step
168to instantiate the VF module
169
170Close that screen
171
172
173Instantiate VF Module
174---------------------
175
176It is now possible to declare a VF Module: click on
177"Add VF-Module" and select the VF-module you want to instantiate in the list
178
179The following screen should appear:
180
181.. figure:: images/create-vfmodule-instance-alacarte.png
182 :align: center
183
184From this screen, it will be possible to get:
185
186- "Model Name" value
187
188At this step, with this "A-La-Carte" method, it is necessary to declare
189some information in ONAP SDNC.
190
191SDNC needs to be aware about the VNF before trying to use ONAP SO
192to instantiate the VF-module.
193
194This group of data is usually called "SDNC preload" and will contain:
195
196- vf-module instance Name
197- vnf instance Name
198- service instance id
199- the list of vnf parameters with values, when not using the default values
200
ramagp0384ef02020-09-29 13:33:27 +0000201.. note::
202 Get all the required vnf-parameters values as listed in HEAT package and populate all the key-values in an example SDNC preload curl command to run
203
204Some of the vnf-parameters in SDNC preload are related to openstack.
205Follow the below steps on openstack to get the values and update those values in SDNC preload template accordingly.
206
207- download the image from cloud images (ubuntu-14.04 as per HEAT env) and create an image
208- create the flavor with m1.medium (suggested as per HEAT env)
209- create OAM_NETWORK ID & OAM_SUBNET ID (use subnet range from base_vfw.env file)
210- execute openstack security group rule to open all ports for onap
211
Rene_Robert9859c932019-08-14 15:49:28 +0200212Here is an example of SDNC preload for VNF, using "curl" tool
213to push those data using SDNC Rest API:
214
215::
216
ramagp0384ef02020-09-29 13:33:27 +0000217 curl -k -X POST \
Ittay Sternbe7893c2020-03-03 11:05:54 +0200218 https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-vnf-topology-operation \
Rene_Robert9859c932019-08-14 15:49:28 +0200219 -H 'Accept: application/json' \
220 -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
221 -H 'Content-Type: application/json' \
222 -H 'X-FromAppId: API client' \
223 -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
224 -H 'cache-control: no-cache' \
225 -d '{
226 "input": {
227 "request-information": {
228 "notification-url": "onap.org",
229 "order-number": "1",
230 "order-version": "1",
231 "request-action": "PreloadVNFRequest",
232 "request-id": "test"
233 },
234 "sdnc-request-header": {
235 "svc-action": "reserve",
236 "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify",
237 "svc-request-id": "test"
238 },
239 "vnf-topology-information": {
240 "vnf-assignments": {
241 "availability-zones": [],
242 "vnf-networks": [],
243 "vnf-vms": []
244 },
245 "vnf-parameters": [
246 {
Ittay Sternbe7893c2020-03-03 11:05:54 +0200247 "vnf-parameter-name": "oam_net_id",
248 "vnf-parameter-value": "oam_network_tXWW"
Rene_Robert9859c932019-08-14 15:49:28 +0200249 }
250 ],
251 "vnf-topology-identifier": {
252 "generic-vnf-name": "my-vnf-instance-01",
253 "generic-vnf-type": "Service-model-with-VNF-and-Virtual-Link/FreeRadius_VF 0",
254 "service-type": "09f9ffad-1069-43fa-97e8-da7b9a439601",
255 "vnf-name": "my_vf_module-instance-01",
256 "vnf-type": "FreeradiusVf..base_freeRadius..module-0"
257 }
258 }
259 }
Ittay Sternbe7893c2020-03-03 11:05:54 +0200260 }'
Rene_Robert9859c932019-08-14 15:49:28 +0200261
262
263Data mapping between ONAP SDNC terminology and ONAP SO
264
265- "generic-vnf-name" value must be equal to the VNF instance name value
266 (see VNF instance detail screen)
267- "generic-vnf-type" value must be equal to VNF Type value
268 (see VNF instance detail screen)
269- "service-type" value must be equal to the service instance id value
270 (see VNF instance detail screen)
271- "vnf-name" value must be equal to the VF module instance name value
272- "vnf-type" value must be equal to the "Model Name" value
273 (see create VF module screen)
274
275
276If there is a need for an instance specific value
277of a VNF parameter (for example : an OAM network id value,
278specific to this VNF instance),
279the "vnf-parameters" must be completed with a list of name/value.
280
281Once the "SDNC preload" is completed, send it to SDNC using any Rest API Tool.
282
283Then, continue on VID and complete the fields indicated by the red star
284and click "Confirm".
285
286Warning : be very careful to use exactly the same VF module instance name
287on this screen and in the "SDNC preload"
288
289Wait for success and close the popup screen.
290
291The following screen should appear:
292
293.. figure:: images/create-service-instance-alacarte-after-vfmodule-instantiated.png
294 :align: center
295
296At that point, the VNF is now instantiated in the cloud platform.
297
298
299Instantiate Network
300-------------------
301
302Instantiating a network is quite similar to vf-module instantiation
303(there is also the need for a "SDNC preload")
304
305Click on "Add Network" and select the Network you want
306to instantiate in the list
307
308The following screen should appear:
309
310.. figure:: images/create-network-instance-alacarte.png
311 :align: center
312
313
314Prepare the "SDNC preload" with:
315
316- "network-role": provide any value,
317- "network-technology": use "neutron" as this example will instantiate
318 a network using openstack neutron application
319- "service-type": value must be equal to "Service Name"
320 (=service model name) displayed on VID screen
321- "network-name": value must be equal to the desired network instance name,
322- "network-type": value must be equal to "Model Name""Generic NeutronNet"
323 displayed on VID screen
324
325In addition:
326
327- in "provider-network-information" section, it is possible to indicate
328 some network characteristics
329- it is possible to add a section about "subnets"
330
331Here after, an "SDNC preload" example that can be use for Network
332instantiation.
333
334::
335
ramagp0384ef02020-09-29 13:33:27 +0000336 curl -k -X POST \
337 https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-network-topology-operation \
Rene_Robert9859c932019-08-14 15:49:28 +0200338 -H 'Accept: application/json' \
339 -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
340 -H 'Content-Type: application/json' \
341 -H 'X-FromAppId: API client' \
342 -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
343 -H 'cache-control: no-cache' \
344 -d '{
345 "input": {
346 "request-information": {
347 "request-id": "postman001",
348 "notification-url": "http://so.onap.org",
349 "order-number": "postman001",
350 "request-sub-action": "SUPP",
351 "request-action": "PreloadNetworkRequest",
352 "source": "postman",
353 "order-version": "1.0"
354 },
355 "network-topology-information": {
356 "network-policy": [],
357 "route-table-reference": [],
358 "vpn-bindings": [],
359 "network-topology-identifier": {
360 "network-role": "integration_test_net",
361 "network-technology": "neutron",
362 "service-type": "Service-model-with-VNF-and-Virtual-Link",
363 "network-name": "my-network-instance-001",
364 "network-type": "Generic NeutronNet"
365 },
366 "provider-network-information": {
367 "is-external-network": "false",
368 "is-provider-network": "false",
369 "is-shared-network": "false"
370 },
371 "subnets": [
372 {
373 "subnet-name": "my-sub_network-instance-001",
374 "subnet-role": "OAM",
375 "start-address": "192.168.90.0",
376 "cidr-mask": "24",
377 "ip-version": "4",
378 "dhcp-enabled": "Y",
379 "dhcp-start-address": "",
380 "dhcp-end-address": "",
381 "gateway-address": "192.168.90.1",
382 "host-routes":[]
383 }
384 ]
385 },
386 "sdnc-request-header": {
387 "svc-action": "reserve",
388 "svc-notification-url": "http://so.onap.org",
389 "svc-request-id": "postman001"
390 }
391 }
392 }
393 '
394
395Once the "SDNC preload" is completed, send it to SDNC using any Rest API Tool.
396
397Then, continue on VID and complete the fields indicated by the red star
398and click "Confirm".
399
400Warning : be very careful to use exactly the same network instance name
401on this screen and in the "SDNC preload"
402
403Wait for success and close the popup screen.
404
405The following screen should appear:
406
407.. figure:: images/create-network-instance-alacarte-after-instantiated.png
408 :align: center
409
410At that point, the Network and subnets are now instantiated
411in the cloud platform.
412
413Also, all those network information are available in ONAP AAI,
414under the terminology
415"l3-network", with the "neutron-network-id" and the "neutron-subnet-id"
416provided by
417the openstack platform.
418
419
420Deleting Network, VF module, VNF, Service
421-----------------------------------------
422
423To delete a service instance using VID, it is necessary to delete objects
424in the following sequence:
425
426- delete VF module(s)
427- delete VNF instance(s)
428- delete Network(s)
429- delete service instance
430
431To proceed those deletion, from VID Home screen
432
433- search for existing service instance
434- edit/view the service instance you want to delete
435- click on red button with white cross and confirm for each object