Changed the links to the CDS documentation
[doc.git] / docs / guides / onap-user / design / parameter_resolution / index.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0
2 .. International License. http://creativecommons.org/licenses/by/4.0
3 .. Copyright 2019 ONAP Contributors. All rights reserved.
4
5 .. _doc_guide_user_des_param_assign:
6
7 VNF Parameter resolution templating
8 ===================================
9
10 Overview
11 --------
12
13 When instantiating a Service composed of connectivity, PNF,
14 VNF or CNF there is the need to set the parameter values for the
15 created instances.
16
17 For example, it may be necessary to provide a VNF management @ip
18 Address or a VNF instance name. Those parameters can be necessary
19 to create cloud resources or to configure the VNF at application level.
20
21 In the first releases of ONAP the operator needed to provide these parameters
22 as preload data via datasheet or API call before instantiating each
23 PNF/VNF/CNF.
24 This was an error-prone manual step that interferes with an automated and
25 scalable service instantiation.
26 As part of the ONAP CDS component introduction
27 in Casablanca release, the user, that wants to instantiate a new VNF/CNF,
28 does not need to get and provide those data.
29
30 Of course the “user” may be a human but may be also an application that uses
31 the “instantiation” API on ONAP NBI or ONAP SO.
32
33 ONAP CDS component is then in charge of resolving those parameters
34 automatically.
35
36 The detailed CDS documentation can be found here: :ref:`cds_main-doc`
37
38 It offers automated solution out of the box by delivering network intent
39 declarative package during design time phase that automated the provisioning
40 and/or network configuration network intent.
41
42 At instantiation time, CDS controller will find (assign) the values
43 according some “recipies” described in a "Controller Blueprint Archive”:
44 a collection of files that CDS controller will use to proceed
45 parameter resolution.
46
47 Thanks to CDS, at instantiation time, the user, that wants to instantiate
48 a new VNF, does not need to get and provide those data himself.
49 Of course the “user” may be a human but may be also
50 an application that uses the “instantiation” API on ONAP NBI or ONAP SO.
51
52 Less effort for the “user”, but more effort for the “designer”
53 that needs to pre-defined all necessary recipies
54 during design time.
55
56 The purpose of the following text is to describe various files and content
57 that are necessary to the CDS controller to resolve any parameters.
58
59 To illustrate the subject, let's take an example: a service composed of
60 an "ubuntu" VNF. That service will be called "ubuntuCDS" in ONAP SDC
61 for that example.
62
63 That VNF will be based on a simple ubuntu image. That VF will be called
64 ubuntuCDS in ONAP SDC for that example.
65
66 WARNING: all operations need to be adapted to your context
67 (platform, service, identifiers...)
68
69 Pre-requisite
70 -------------
71
72 There are two problems with ONAP ElAlto release:
73
74 **wrong Directed Graphs**
75
76 In ONAP Elalto, a problem was detected about Directed Graphs: JIRA_SDNC_949_
77
78 The workaround is to upload/replace the following two Directed Graph in SDNC
79 (via DG Builder UI for example).
80
81 VNF topology assign: DG_VNF_ASSIGN_.
82
83 VF-Module topology assign: DG_VFMODULE_ASSIGN_.
84
85
86 **wrong URL in CDS-UI pod**
87
88 CDS-UI pod needs to communicate with CDS BluePrint processor to perform
89 "enrichment", "publish", "deploy" operations.
90
91 The URL is not correct in the OOM file used to deploy CDS UI.
92
93 If you have permission, you can change the url via:
94
95 ::
96
97    kubectl edit deployment -n onap {{cds ui pod id}}
98
99 API_BLUEPRINT_CONTROLLER_HTTP_BASE_URL parameter must have the following value
100
101 ::
102
103    http://cds-blueprints-processor-http:8080/api/v1
104
105
106 Those problems should be corrected in next ONAP release.
107
108 Design process
109 --------------
110
111     * `Step 1: identify the parameters needed for instantiation`_
112     * `Step 2: identify the parameters needed for post-instantiation`_
113     * `Step 3: identify the resolution method for each parameter`_
114     * `Step 4: add new data definition in CDS resource dictionary`_
115     * `Step 5: write template files`_
116     * `Step 6: write mapping files`_
117     * `Step 7: write scripts`_
118     * `Step 8: write the "blueprint" file`_
119     * `Step 9: build the "Controller Blueprint Archive” (cba)`_
120     * `Step 10: attached the cba to a service definition`_
121     * `Step 11: distribute the service`_
122     * `Step 12: instantiate the service and check`_
123
124
125 Step 1: identify the parameters needed for instantiation
126 --------------------------------------------------------
127
128 To instantiate an "ubuntu" VNF, a Heat Template can be used. Several
129 parameters are defined in that template: vnf_name, image_name,
130 management @ip...
131
132 This Heat Template is a first place to identify the parameters that need
133 to be resolved.
134
135 Our example:
136
137 ::
138
139    parameters:
140    # Metadata required by ONAP
141    vnf_id: ubuntuCDS-VNF
142    vf_module_id: ubuntuCDS-VF-module
143    vnf_name: ubuntuCDS-VNF-name
144
145    # Server parameters, naming required by ONAP
146    ubuntuCDS_image_name: ubuntu-18
147    ubuntuCDS_flavor_name: onap.small
148    ubuntuCDS_pub_key: ssh-rsa AAAAB3VHCx...vVL8l1BrX3BY0R8D imported-openssh-key
149    ubuntuCDS_name_0: ubuntuCDS
150
151    # Network parameters, naming required by ONAP
152    admin_plane_net_name: admin
153
154 Step 2: identify the parameters needed for post-instantiation
155 -------------------------------------------------------------
156
157 Post-instantiation activity will occur after the VNF is instantiated.
158
159 Typically, it can be adding a first firewall rule in a firewall VNF.
160
161 In the ubuntuCDS example, there is no such parameter.
162
163
164 Step 3: identify the resolution method for each parameter
165 ---------------------------------------------------------
166
167 Here after the decision/solution that the designer may take:
168
169 **vnf_name** will be resolved via an input that will be provided
170 in the instantiation request.
171
172 **ubuntuCDS_image_name** will be resolved via an input that will be provided
173 in the instantiation request.
174
175 **ubuntuCDS_flavor_name** will be resolved via an input that will be provided
176 in the instantiation request.
177
178 **ubuntuCDS_pub_key** will be resolved via an input that will be provided
179 in the instantiation request.
180
181 **admin_plane_net_name** will be resolved via an input that will be provided
182 in the instantiation request.
183
184 Service Designer needs also to know that some parameters will be
185 automatically resolved by ONAP SO and/or ONAP SDNC.
186
187 - service-instance-id
188 - vnf-id
189 - vf_module_id
190
191 For each resolution method, Service Designer needs to identify all
192 necessary parameters that must be provided to the resoluton method
193 in order to obtain the resolution.
194
195 Also, Service Designer needs to know that ONAP will instantiate
196 a service, a list of VNF that are composing the service and, for each VNF,
197 a "VF-module" will be instantiated.
198
199
200 Step 4: add new data definition in CDS resource dictionary
201 ----------------------------------------------------------
202
203 In CDS, there is a database that will contain all resource Definitions
204 in order to be able to re-use those resources from one service to an other.
205
206 Service Designer needs to check about existing resource definitions
207 in the dictionary.
208
209 By default, some resources are pre-loaded when installing ONAP platform.
210
211 Preloaded resources (parameter definition): Resources_.
212
213 Be careful: the content of the resource dictionary is not the same from
214 one ONAP release to an other.
215
216 If Service Designer sees that there is an existing parameter
217 that corresponds to the need, he has the possibility to re-use it
218 in the mapping file(s), but maybe with a different name.
219
220 For example, "image_name" is already defined in the resource dictionary but,
221 it is named "freeRadius_image_name" in the Heat files.
222
223 For the ubuntuCDS example, there is no need to add any entry in the
224 data_dictionary
225
226 "curls" requests example to declare a new resource
227 :download:`Here <ubuntu_example/curls_resource_dictionary.txt>`
228
229 Step 5: write template files
230 ----------------------------
231
232 In this Ubuntu example, Designer needs to create 2 "templates" files.
233 Naming of those files is important. For VNF, prefix name must be equal to the
234 VF name in ONAP SDC. For the VFmodule, prefix name must be equal to the name
235 of the Heat template.
236
237 - VNF level :download:`VNF_template_file <ubuntu_example/cba-before-enrichment\
238   /Templates/ubuntuCDS-template.vtl>`
239 - VF-module level :download:`VFmodule_template_file <ubuntu_example/cba-before\
240   -enrichment/Templates/base_ubuntuCDS-template.vtl>`
241
242 CDS makes use of "velocity template" or "Jinja template" files.
243
244 This way, CDS is able to generate the desired datastructure
245 with resolved values, that will then be sent to the target system:
246
247 - openstack when instantiating the Heat stack
248 - instantiated VNF when doing some post-instantiation operation
249
250 There are two sections in each velocity file:
251
252 - "resource-accumulator-resolved-data": a list of all parameters
253 - "capability-data": a list of "capabilities" to process and resolve
254   a parameter
255
256 A capability can be an other way to resolve a parameter,
257 using a directed graph.
258
259 A capability may also be an action to be performed such as modifying
260 a data in ONAP AAI.
261
262 ONAP SDNC provides those "capabilities":
263
264 - generate-name
265 - vlan-tag-assign
266 - netbox-ip-assign
267 - aai-vnf-put
268 - ...
269
270 There is an SDNC Directed Graph associated to each of those "capability".
271
272 Service Designer needs to know about those capabilities with their
273 input/output, in order to re-use them. Especially, Service Designer needs
274 to know inputs because those inputs need to be part of the templates.
275
276 In case Service Designer wants to use a new capability, a solution is
277 to create a Directed Graph and update the self-serve-vnf-assign and/or
278 self-serve-vf-module-assign Directed Graph by adding a new
279 entry in the list of capabilities (node: set ss.capability.execution-order[])
280
281 The "aai-vfmodule-put" capability is important to be part of a vf-module
282 template because it will be used to put the vf-module-name in AAI
283 and ONAP SO will use that value to name the heat stack.
284
285 |image3|
286
287
288 About the name/value of each parameter, Service Designer needs to understand
289 how various information will map between the various files needed by CDS.
290
291 |image5|
292
293 And be very careful with "_" or "-"
294
295 Step 6: write mapping files
296 ---------------------------
297
298 Along with each velocity template, Designer needs to create a
299 "mapping" file.
300
301 This is the place where the Designer explains, for each parameter:
302
303 - value source: the system or database that will provide the value
304 - default value
305
306 At VNF instantiation step, values are often coming from input (in the request
307 sent by the user, in the "instanceParams" section of the vnf).
308
309 At VF module instantion step, values can come form input also in the request
310 sent by the user, in the "instanceParams" section of the vf-module)
311
312 Resolved data are always stored in SDNC database (MDSAL)
313
314 Note1: if service designer wants to re-use for vf-module a
315 parameter/value from VNF "userParams" section,
316 then the source will be from "SDNC" in the vf-module mapping file.
317
318 Note2: service-instance-id, vnf-id and vf_module_id are parameters considered
319 as "input" from CDS point of view but in reality they are resolved by ONAP SO
320 with ONAP AAI. Thus, those parameters are not "input" from ONAP SO
321 point of view: service designer has not need to provide those parameters in
322 service instantiation request (step 12).
323
324 For the ubuntu example, there are then 2 mapping files.
325 File names are important and must be aligned with vtl template names.
326
327 - VNF level :download:`VNF_mapping_file <ubuntu_example/cba-before-enrichment\
328   /Templates/ubuntuCDS-mapping.json>`
329 - VFmodule level :download:`VFmodule_mapping_file <ubuntu_example/cba-before-\
330   enrichment/Templates/base_ubuntuCDS-mapping.json>`
331
332 Step 7: write scripts
333 ---------------------
334
335 Sometimes, it will be necessary to use some scripts (python, kotlin,
336 ansible...) to process some post-configuration operation.
337
338 Those scripts needs to be part of the "Controller Blueprint Archive” (cba).
339
340 No such script for the ubuntuCDS example.
341
342
343 Step 8: write the "blueprint" file
344 --------------------------------------
345
346 The "designer" will then create a "blueprint".
347
348 It is a JSON file and for the ubuntuCDS usecase, it is called
349 ubuntuCDS.json.
350 Name must be aligned with VF name in ONAP SDC.
351
352 This file will be the main entry point for CDS blueprint processor.
353 This processor will use that file to understand what need to
354 be processed and how to process it.
355
356 The content of that file is composed of several sections conforming to TOSCA
357 specifications.
358
359 |image1|
360
361 For the ubuntu example :download:`CDS blueprint <ubuntu_example/cba-before-\
362 enrichment/Definitions/ubuntuCDS.json>` before enrichment.
363
364 This example is the minimum that is required to simply instantiate a
365 VNF.
366
367 Some extension can then be added in order to define additional
368 operations.
369
370 Step 9: build the "Controller Blueprint Archive” (cba)
371 ------------------------------------------------------
372
373 Having created velocity templates, mapping files and a first
374 CDS blueprint version,
375 it is now simple to create the "Controller Blueprint Archive” (cba).
376
377 This is a "zip-like" archive file that will have the following structure
378 and content ("environment", "scripts" and "plans" are optional):
379
380 |image2|
381
382 For the ubuntu example :download:`cba archive <ubuntu_example/cba-before-\
383 enrichment/cba-before-enrichment.zip>` before enrichment.
384
385 To complete that cba, an "enrichment" operation is needed.
386
387 Service Designer can use two methods:
388
389 - using CDS User Interface
390 - using CDS rest API
391
392 Service Designer needs to send the cba to CDS-UI pod and requests
393 the enrichment, then save and then download.
394
395 Result will be that the cba will now contains several new files in "Definition"
396 folder of the cba.
397
398 The "blueprint" file will also be completed.
399
400 The "enriched" cba is now ready to be onboarded in ONAP SDC along with
401 a service definition.
402
403 For the ubuntu example :download:`cba archive <ubuntu_example/cba-after\
404 -enrichment/cba-ubuntuCDS-enriched.zip>` after enrichment.
405
406 Step 10: attached the cba to a service definition
407 -------------------------------------------------
408
409 In SDC, when defining a VF, Designer will attach the cba archive
410 to the VF definition, using the "deployment artifact" section.
411
412 Having define all necessary VF, Service Designer will create a SERVICE in SDC.
413
414 Service Designer will compose the SERVICE with appropriate VF(s) and will have
415 to modify PROPERTIES in the "properties assignement" section.
416
417 Service Designer needs to provide values for sdnc_artifact_name,
418 sdnc_model_name and sdnc_model_verion.
419
420 This will tell SO which blueprint to use for the service model that is being
421 instantiate
422
423 SDC sdnc_artifact_name = CBA blueprint json filename, e.g. “ubuntuCDS”,
424 we will see below that we will have vnf-mapping.json and vnf-template.vtl
425 templates in the blueprint.
426
427 SDC sdnc_model_name = CBA Metadata template_name, e.g. “ubuntuCDS”,
428 we can see in the below screenshot the metadata section showing template name.
429
430 SDC sdnc_model_verion = CBA Metadata template_version, e.g. “1.0.0”,
431 we can see in the below screenshot the metadata section showing
432 template version.
433
434 |image4|
435
436 Step 11: distribute the service
437 -------------------------------
438
439 In SDC, when distributing the service, the CDS controller will be
440 informed that a new cba archive is available.
441
442 CDS controller will then collect the cba archive.
443
444 Step 12: instantiate the service and check
445 ------------------------------------------
446
447 Here is an example of an ONAP SO api request to
448 instantiate the ubuntu service.
449
450 This request is used to instantiate a service using the "Macro" mode.
451
452 Do not try to use that example as-is: you need to adapt all values to your
453 platform/service model.
454
455 In this example, the request contains several "inputs" at VNF level and
456 several "inputs" at VF-module level.
457
458 All various "id" and "version" are some copy/paste information that
459 Service Designer has the possibility to find in the TOSCA service
460 template created in ONAP SDC.
461
462 This request will instantiate a "service", a "VNF" and a "VF-module".
463 That "service" instance is attached to the customer named "JohnDoe" with
464 service subscription named "ubuntCDS"
465 (supposed already declared in your ONAP AAI).
466
467 In case the instantiation fails, a roolback is performed (parameter
468 "suppressRollback" = false)
469
470 For that example, no "homing" and the "cloud" tenant is explicitely
471 provided (supposed already declared in your ONAP AAI)
472
473 ::
474
475    curl -X POST \
476    http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances \
477    -H 'Accept: application/json' \
478    -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
479    -H 'Content-Type: application/json' \
480    -H 'X-ONAP-PartnerName: NBI' \
481    -H 'cache-control: no-cache' \
482    -d '{
483       "requestDetails": {
484          "subscriberInfo": {
485                "globalSubscriberId": "JohnDoe"
486          },
487          "requestInfo": {
488                "suppressRollback": false,
489                "productFamilyId": "Useless_But_Mandatory",
490                "requestorId": "adt",
491                "instanceName": "My_ubuntuCDS_service_instance_001",
492                "source": "VID"
493          },
494          "cloudConfiguration": {
495                "lcpCloudRegionId": "RegionOne",
496                "tenantId": "71cf9d931d9e4b8e9fcca50d97c1cf96",
497                "cloudOwner": "ONAP"
498          },
499          "requestParameters": {
500                "subscriptionServiceType": "ubuntuCDS",
501                "userParams": [
502                   {
503                      "Homing_Solution": "none"
504                   },
505                   {
506                      "service": {
507                            "instanceParams": [],
508                            "instanceName": "My_ubuntuCDS_service_instance_001",
509                            "resources": {
510                               "vnfs": [
511                                  {
512                                        "modelInfo": {
513                                           "modelName": "ubuntuCDS",
514                                           "modelVersionId": "c6a5534e-76d5-4128-97bf-ad3b72208d53",
515                                           "modelInvariantUuid": "ed3064e7-62c0-494c-bb9b-4f56d1ad157e",
516                                           "modelVersion": "1.0",
517                                           "modelCustomizationId": "6a32fb56-191e-4d11-a0cc-44b779aba4fc",
518                                           "modelInstanceName": "ubuntuCDS 0"
519                                        },
520                                        "cloudConfiguration": {
521                                           "lcpCloudRegionId": "RegionOne",
522                                           "tenantId": "71cf9d931d9e4b8e9fcca50d97c1cf96"
523                                        },
524                                        "platform": {
525                                           "platformName": "Useless_But_Mandatory"
526                                        },
527                                        "productFamilyId": "Useless_But_Mandatory",
528                                        "instanceName": "My_VNF_ubuntuCDS_instance_001",
529                                        "instanceParams": [
530                                           {
531                                              "vnf_name": "My_VNF_ubuntuCDS_instance_001"
532                                           }
533                                        ],
534                                        "vfModules": [
535                                           {
536                                              "modelInfo": {
537                                                    "modelName": "Ubuntucds..base_ubuntuCDS..module-0",
538                                                    "modelVersionId": "3025cd36-b170-4667-abb1-2bae1f297844",
539                                                    "modelInvariantUuid": "0101f9e0-7beb-4b58-92c7-ba3324b5a54d",
540                                                    "modelVersion": "1",
541                                                    "modelCustomizationId": "9bca4d4b-e27c-4652-a61e-b1b4ebca503d"
542                                              },
543                                              "instanceName": "My_vfModule_ubuntuCDS_instance_001",
544                                              "instanceParams": [
545                                                    {
546                                                       "vnf_name": "My_VNF_ubuntuCDS_instance_001",
547                                                       "vf_module_name": "My_vfModule_ubuntuCDS_instance_001",
548                                                       "ubuntuCDS_pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY15cdBmIs2XOpe4EiFCsaY6bmUmK/GysMoLl4UG51JCfJwvwoWCoA+6mDIbymZxhxq9IGxilp/yTA6WQ9s/5pBag1cUMJmFuda9PjOkXl04jgqh5tR6I+GZ97AvCg93KAECis5ubSqw1xOCj4utfEUtPoF1OuzqM/lE5mY4N6VKXn+fT7pCD6cifBEs6JHhVNvs5OLLp/tO8Pa3kKYQOdyS0xc3rh+t2lrzvKUSWGZbX+dLiFiEpjsUL3tDqzkEMNUn4pdv69OJuzWHCxRWPfdrY9Wg0j3mJesP29EBht+w+EC9/kBKq+1VKdmsXUXAcjEvjovVL8l1BrX3BY0R8D imported-openssh-key",
549                                                       "ubuntuCDS_image_name": "ubuntu-18.04-daily",
550                                                       "ubuntuCDS_flavor_name": "onap.small",
551                                                       "ubuntuCDS_name_0": "ubuntuCDS-VM-001",
552                                                       "admin_plane_net_name": "admin"
553                                                    }
554                                              ]
555                                           }
556                                        ]
557                                  }
558                               ]
559                            },
560                            "modelInfo": {
561                               "modelVersion": "1.0",
562                               "modelVersionId": "10369444-1e06-4d5d-974b-362bcfd19533",
563                               "modelInvariantId": "32e00b49-eff8-443b-82a8-b75fbb6e3867",
564                               "modelName": "ubuntuCDS",
565                               "modelType": "service"
566                            }
567                      }
568                   }
569                ],
570                "aLaCarte": false,
571                "usePreload": false
572          },
573          "owningEntity": {
574                "owningEntityId": "Useless_But_Mandatory",
575                "owningEntityName": "Useless_But_Mandatory"
576          },
577          "modelInfo": {
578                "modelVersion": "1.0",
579                "modelVersionId": "10369444-1e06-4d5d-974b-362bcfd19533",
580                "modelInvariantId": "32e00b49-eff8-443b-82a8-b75fbb6e3867",
581                "modelName": "ubuntuCDS",
582                "modelType": "service"
583          }
584       }
585    }'
586
587 In response, ONAP SO will immediately provide a requestId and a service
588 instance id.
589
590 The instantiation will take some time. It will be necessary
591 to perform a "GET" on the request to check the result.
592
593 ::
594
595    curl -X GET \
596       http://so.api.simpledemo.onap.org:30277/onap/so/infra/orchestrationRequests/v7/{{requestID}} \
597       -H 'Accept: application/json' \
598       -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
599       -H 'Content-Type: application/json' \
600       -H 'X-FromAppId: AAI' \
601       -H 'X-TransactionId: get_aai_subscr' \
602       -H 'cache-control: no-cache'
603
604
605 To delete the service instance, just add the service_instance_id in the URL and
606 send a DELETE operation.
607
608
609 ::
610
611    curl -X DELETE \
612    http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances/{{service_instance_Id}} \
613    -H 'Accept: application/json' \
614    -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
615    -H 'Content-Type: application/json' \
616    -H 'X-ONAP-PartnerName: NBI' \
617    -H 'cache-control: no-cache' \
618    -d '{
619       "requestDetails": {
620          "subscriberInfo": {
621                "globalSubscriberId": "JohnDoe"
622          },
623          "requestInfo": {
624                "suppressRollback": false,
625                "productFamilyId": "Useless_But_Mandatory",
626                "requestorId": "adt",
627                "instanceName": "My_ubuntuCDS_service_instance_001",
628                "source": "VID"
629          },
630          "cloudConfiguration": {
631                "lcpCloudRegionId": "RegionOne",
632                "tenantId": "71cf9d931d9e4b8e9fcca50d97c1cf96",
633                "cloudOwner": "ONAP"
634          },
635          "requestParameters": {
636                "subscriptionServiceType": "ubuntuCDS",
637                "userParams": [
638                   {
639                      "Homing_Solution": "none"
640                   },
641                   {
642                      "service": {
643                            "instanceParams": [],
644                            "instanceName": "My_ubuntuCDS_service_instance_001",
645                            "resources": {
646                               "vnfs": [
647                                  {
648                                        "modelInfo": {
649                                           "modelName": "ubuntuCDS",
650                                           "modelVersionId": "c6a5534e-76d5-4128-97bf-ad3b72208d53",
651                                           "modelInvariantUuid": "ed3064e7-62c0-494c-bb9b-4f56d1ad157e",
652                                           "modelVersion": "1.0",
653                                           "modelCustomizationId": "6a32fb56-191e-4d11-a0cc-44b779aba4fc",
654                                           "modelInstanceName": "ubuntuCDS 0"
655                                        },
656                                        "cloudConfiguration": {
657                                           "lcpCloudRegionId": "RegionOne",
658                                           "tenantId": "71cf9d931d9e4b8e9fcca50d97c1cf96"
659                                        },
660                                        "platform": {
661                                           "platformName": "Useless_But_Mandatory"
662                                        },
663                                        "productFamilyId": "Useless_But_Mandatory",
664                                        "instanceName": "My_VNF_ubuntuCDS_instance_001",
665                                        "instanceParams": [
666                                           {
667                                              "vnf_name": "My_VNF_ubuntuCDS_instance_001"
668                                           }
669                                        ],
670                                        "vfModules": [
671                                           {
672                                              "modelInfo": {
673                                                    "modelName": "Ubuntucds..base_ubuntuCDS..module-0",
674                                                    "modelVersionId": "3025cd36-b170-4667-abb1-2bae1f297844",
675                                                    "modelInvariantUuid": "0101f9e0-7beb-4b58-92c7-ba3324b5a54d",
676                                                    "modelVersion": "1",
677                                                    "modelCustomizationId": "9bca4d4b-e27c-4652-a61e-b1b4ebca503d"
678                                              },
679                                              "instanceName": "My_vfModule_ubuntuCDS_instance_001",
680                                              "instanceParams": [
681                                                    {
682                                                       "vnf_name": "My_VNF_ubuntuCDS_instance_001",
683                                                       "vf_module_name": "My_vfModule_ubuntuCDS_instance_001",
684                                                       "ubuntuCDS_pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY15cdBmIs2XOpe4EiFCsaY6bmUmK/GysMoLl4UG51JCfJwvwoWCoA+6mDIbymZxhxq9IGxilp/yTA6WQ9s/5pBag1cUMJmFuda9PjOkXl04jgqh5tR6I+GZ97AvCg93KAECis5ubSqw1xOCj4utfEUtPoF1OuzqM/lE5mY4N6VKXn+fT7pCD6cifBEs6JHhVNvs5OLLp/tO8Pa3kKYQOdyS0xc3rh+t2lrzvKUSWGZbX+dLiFiEpjsUL3tDqzkEMNUn4pdv69OJuzWHCxRWPfdrY9Wg0j3mJesP29EBht+w+EC9/kBKq+1VKdmsXUXAcjEvjovVL8l1BrX3BY0R8D imported-openssh-key",
685                                                       "ubuntuCDS_image_name": "ubuntu-18.04-daily",
686                                                       "ubuntuCDS_flavor_name": "onap.small",
687                                                       "ubuntuCDS_name_0": "ubuntuCDS-VM-001",
688                                                       "admin_plane_net_name": "admin"
689                                                    }
690                                              ]
691                                           }
692                                        ]
693                                  }
694                               ]
695                            },
696                            "modelInfo": {
697                               "modelVersion": "1.0",
698                               "modelVersionId": "10369444-1e06-4d5d-974b-362bcfd19533",
699                               "modelInvariantId": "32e00b49-eff8-443b-82a8-b75fbb6e3867",
700                               "modelName": "ubuntuCDS",
701                               "modelType": "service"
702                            }
703                      }
704                   }
705                ],
706                "aLaCarte": false,
707                "usePreload": false
708          },
709          "owningEntity": {
710                "owningEntityId": "Useless_But_Mandatory",
711                "owningEntityName": "Useless_But_Mandatory"
712          },
713          "modelInfo": {
714                "modelVersion": "1.0",
715                "modelVersionId": "10369444-1e06-4d5d-974b-362bcfd19533",
716                "modelInvariantId": "32e00b49-eff8-443b-82a8-b75fbb6e3867",
717                "modelName": "ubuntuCDS",
718                "modelType": "service"
719          }
720       }
721    }'
722
723
724 Trouble shooting
725 ----------------
726
727 Have a look to
728
729 - debug.log in CDS blueprint processor pod
730 - debug.log into SO Bpmn pod
731 - karaf.log into SDNC pod
732
733 .. |image1| image:: ../media/cds-blueprint.png
734 .. |image2| image:: ../media/cba.png
735 .. |image3| image:: ../media/capabilities.png
736 .. |image4| image:: ../media/sdc.png
737 .. |image5| image:: ../media/mapping.png
738 .. _JIRA_SDNC_949: https://jira.onap.org/browse/SDNC-949
739 .. _Resources: https://git.onap.org/ccsdk/cds/tree/components/model-catalog/resource-dictionary/starter-dictionary
740 .. _DG_VNF_ASSIGN: https://gerrit.onap.org/r/gitweb?p=sdnc/oam.git;a=blob_plain;f=platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json;hb=HEAD
741 .. _DG_VFMODULE_ASSIGN: https://gerrit.onap.org/r/gitweb?p=sdnc/oam.git;a=blob_plain;f=platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json;hb=HEAD