Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


...

idDesignTime

Introduction

The purpose of this article is to describe the vLB use case distribution in Frankfurt Release.

What's new in Frankfurt Release

The Controller Blueprint Archive CBA is a zip archive that hosts all the service model related artifacts (heat templates, blueprints, vtl templates, workflows, etc ... ) that can enable ONAP to assign and instantiate the service. 


In Frankfurt release, the cds community introduce the following new functionality: 

  • CDS Integration with ONAP Components 
    • SO ControllerExeuctionBB allows the ONAP operator to execute any action into CDS for a given scope of vnf, vfmodule, and pnf. 
    • Policy CDS Actor support allows the ONAP operator to executor any action into CDS for a given scope of vnf, vfmodule and pnf. 


NOTE:

  • Within a single Controller Blueprint Archive (CBA)  package for VLB CDS shall support both E2E Automation and ANY LCM Action such as Scale Out, ConfigModify Use Case etc..
  • The CBA Package is a portable cloud package that enables
    • Declarative cloud provisioning
    • Configuration Life-cycle Management of VNF/PNF/CNF. 
    • Customization to meet service providers/vendor/business needs. 

After building the CBA and Data Dictionary, we can use the CDS UI to add the Data Dictionary to CDS, and to deploy the CBA in CDS.

First, we logon to CDS UI using the url https://<onap_ip_address>:30497.

Choose Controller Blueprint, select file, and update Metadata, the NEXT.

Controller Blueprint - CBA Package Management Screens

Image Removed

Image Removed

Enrich, Save, Publish, and finally Deploy, and you should receive a success notification.

Image Removed

Resource Definition Screen - Controller Data Dictionary 

If we want to add one Dictionary item, we start in the CDS UI home screen, select New Resource.

Image Removed

Paste the Dictionary Definition JSON string and submit.

Image Removed

If we want to add many Dictionary items, we can create a JSON list of all the dictionary items and save them in a file called dd.json, and then run the dd.sh script below in the same folder where dd.json is located.

Deck of Cards
idDesignTime


Card

Controller Design Studio CDS should receive a notification when a new service model is distributed by SDC, and then CDS will download the CBA CSAR file and deploy it.

In El Alto, the distribution of the vLB CDS Service model can now be automated using a Robot Script.

In Frankfurt release, different CBA Package flavors are available to be executed.

CBA Package with complex (parallel node execution)
Card
labelCDS Modeling & Distribution

The CBA and Data Dictionary are explained in the Modelling Concepts page here: Modeling Concepts

CDS will require a main component to be able to build a service instance, Following the instructions below in the following order to onboard the Data Dictionary and CBA Package. 

  1. Load the latest DD.json and run the dd.sh script in rancher. 
  2. Once this is step is completed, access the CDS UI and upload the latest CBA and execute in the following sequence:
    1. Enrich
    2. Save
    3. Deploy
    4. if upload via SDC: Click on Download and use the Enriched CBA Package to onboard via SDC Artifact Deployment for the VF Model.

In Frankfurt release, preloaded the imperative restconf CBA and Data Dictionary into Blueprint processor by running the following bootstrap command:  


Code Block
languagejs
titlebootstrap
curl --location --request POST 'http://${k8s-worker-node}:${blueprintprocesssorhttp-port}/api/v1/blueprint-model/bootstrap' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==' \
--header 'Content-Type: text/plain' \
--data-raw '{
"loadModelType" : true,
"loadResourceDictionary" : true,
"loadCBA" : true
}'

NOTE: Do a kubectl -n onap get service|grep blueprint and expose the NodePort for the blueprint processor http service for ${blueprintprocesssorhttp-port}.


Controller Blueprint Package

[Deploy the cba using CDS UI by following the steps of Enrich, Save, Deploy]

Data Dictionary 
ZIP FILE (Flavor Types)Description
vLB_CDS_Kotlin_NETCONF.zipCBA Package with Kotlin Script to execute NETCONF for post instantiation
VLB_CDS_KOTLIN_REST.zipCBA Package with Kotlin Script to execute RESTCONF for post instantiation
vLB_CBA_Python.zipCBA Package with Python Script to execute NETCONF for post instantiation
TBDCBA Package with simple TOSCA Imperative workflow using and KOTLIN Script to execute RESTCONF
TBDCBA Package with simple TOSCA Imperative workflow using and KOTLIN Script to execute NETCONF
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and KOTLIN Script to execute RESTCONF
TBD

Controller Blueprint Package

[Deploy the cba using CDS UI by following the steps of Enrich, Save, Deploy]

Data Dictionary 

In Frankfurt release, different CBA Package flavors are available to be executed.


ZIP FILE (Flavor Types)DescriptionNOTEs
imperative_restconf.zip

CBA Package with simple

TOSCA Imperative workflow using and KOTLIN Script to execute

NETCONF

RESTCONF

TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute RESTCONF
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute NETCONF
TBDCBA Package with KAFKA Messages Bus Entry point for complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute NETCONF
TBDCBA Package with KAFKA Messages Bus Entry point for complex (parallel node execution) TOSCA Imperative workflow using and KOTLIN Script to execute RESTCONF
TBDCBA Package with Ansible Playbook to execute NETCONF for post instantiation
dd El Alto cds ui with source-db.zip
Code Block
languagebash
titlePush Data Dictionaries
#!/bin/bash
# Author: abdelmuhaimen.seaudi@orange.com
# Usage: name this script as dd.sh, and put the data dictionaries list JSON as dd.json in the same directory, and run dd.sh
# dd.sh will read the dictionary list JSON from dd.json, will output to stdout the number of Defintions found, and will start pushing them one by one to CDS DB
l=`jq '.|length' dd.json`
echo "Found $l Dictionary Definition Entries"
i=0
while [ $i -lt $l ]
do
  echo "i = $i"
  d=`jq ".[$i]" dd.json`
  echo $d
  #REPLACE <cds-ui> with the IP Address of ONAP
  curl -k 'https://<cds-ui>:30497/resourcedictionary/save' -v -X POST -H 'Content-type: application/json' -d"$d"
  sleep 1
  echo -e "\n*****************************************\n"
  i=$(( $i + 1 ))
done


CBA Action Catalog:

  • resource-assignment → SDNC calls resource-assignment cds action for cloud parameter resolution as part of the instantiation assign flow. 


  • config-assign → SO using ControllerExeuctionBB triggers cds with config-assign action for vLB base configuration generation. 


  • config-deploy→ SO using ControllerExeuctionBB triggers cds with config-deploy action for vLB base configuration download. 


  • HealthCheck – SO using ControllerExeuctionBB triggers cds with HealthCheck  action for vLB health check as part of the Scale Out  and Scale In use case . 


  • ScaleOutReconfiguration– SO using ControllerExeuctionBB triggers cds with ScaleOutReconfiguration action for reconfiguring the vLB  to add the Scaled Out vdns management ip and private ip address for load balancing support . 


  • ScaleInReconfiguration– SO using ControllerExeuctionBB triggers cds with ScaleInReconfiguration action for reconfiguring the vLB  to remove the Scaled In vdns management ip and private ip address . 


NOTE:

  • In Frankfurt release, a single CBA support both E2E Automation, Scale Out and Scale In capabilities for vLB use cases. 


  • In Frankfurt release, all the custom sdnc vtl templates have been removed for all the cloud parameter templates form vnf, base, vpkg, vlb, vdns, . CDS requires only mapping file for resource resolution which is persisted then in MDSAL.  [Template Elimination Capability/CDS Package Simplification]


Image Added
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and KOTLIN Script to execute RESTCONF [semi_complex_imperative.zip]Image Added
TBDCBA Package with Kotlin Script to execute NETCONF for post instantiation [vLB_CDS_Kotlin_NETCONF.zip]
TBDCBA Package with Kotlin Script to execute RESTCONF for post instantiation [VLB_CDS_KOTLIN_REST.zip]
TBDCBA Package with Python Script to execute NETCONF for post instantiation [vLB_CBA_Python.zip]
TBDCBA Package with simple TOSCA Imperative workflow using and KOTLIN Script to execute NETCONF
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and KOTLIN Script to execute NETCONF
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute RESTCONF
TBDCBA Package with complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute NETCONF
TBDCBA Package with KAFKA Messages Bus Entry point for complex (parallel node execution) TOSCA Imperative workflow using and PYTHON Script to execute NETCONF
TBDCBA Package with KAFKA Messages Bus Entry point for complex (parallel node execution) TOSCA Imperative workflow using and KOTLIN Script to execute RESTCONF
TBDCBA Package with Ansible Playbook to execute NETCONF for post instantiation



NOTE:

  • Within a single Controller Blueprint Archive (CBA)  package for VLB CDS shall support both E2E Automation and ANY LCM Action such as Scale Out, ConfigModify Use Case etc..
  • The CBA Package is a portable cloud package that enables
    • Declarative cloud provisioning
    • Configuration Life-cycle Management of VNF/PNF/CNF. 
    • Customization to meet service providers/vendor/business needs. 

All the data dictionary required to run the vLB E2E Automation and Scale Out use case leveraging CDS is preload  in CDS DB: 

CDS Data Dictionary



Card
labelPolicy Naming Modeling

Within the E2E automation provided by CDS, we have a capability that can generate a name for a component, like a VNF or VF Module or CNF. 

This capability runs with ONAP Naming mS & POLICY component, where POLICY has the rule that will be used to generate the names


To check that the naming policy is created and pushed OK, we can run the commands below.

Code Block
languagebash
titleSDNC Naming policy

root@sb00-nfs:~# kubectl -n onap get pod |grep policy
dev-dcae-policy-handler-6db65dd449-p7lmv 2/2 Running 0 5d10h
dev-policy-8674d866d8-mqbpg 2/2 Running 0 3d7h
dev-policy-apex-pdp-0 1/1 Running 0 3d7h
dev-policy-api-bcdd7cc77-j5m6s 1/1 Running 0 3d7h
dev-policy-distribution-84854cd6c7-28cr4 1/1 Running 0 3d7h
dev-policy-mariadb-0 1/1 Running 0 3d7h
dev-policy-xacml-pdp-659bd78bb7-lvz2k 1/1 Running 0 3d7h
root@sb00-nfs:~# kubectl -n onap exec -it dev-policy-xacml-pdp-659bd78bb7-lvz2k bash
bash-5.0$ curl -k --silent -X POST --header 'Content-Type: application/json' --user 'healthcheck:zb!XztG34' -d '{ "ONAPName": "SDNC", "ONAPComponent":"SNDC-component", "ONAPInstance": "SDNC-component-instance", "requestId": "unique-request-sdnc-1", "action": "naming", "resource": { "policy-id": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP"}}' 'https://policy-xacml-pdp:6969/policy/pdpx/v1/decision'
{"policies":{"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP":{"type":"onap.policies.Naming","type_version":"1.0.0","properties":{"naming-models":[{"naming-type":"VNF","naming-recipe":"AIC_CLOUD_REGION|DELIMITER|CONSTANT|DELIMITER|TIMESTAMP","name-operation":"to_lower_case()","naming-properties":[{"property-name":"AIC_CLOUD_REGION"},{"property-name":"CONSTANT","property-value":"onap-nf"},{"property-name":"TIMESTAMP"},{"property-value":"-","property-name":"DELIMITER"}]},{"naming-type":"VNFC","naming-recipe":"VNF_NAME|DELIMITER|NFC_NAMING_CODE|DELIMITER|SEQUENCE","name-operation":"to_lower_case()","naming-properties":[{"property-name":"VNF_NAME"},{"property-name":"SEQUENCE","increment-sequence":{"max":"zzz","scope":"ENTIRETY","start-value":"1","length":"3","increment":"1","sequence-type":"alpha-numeric"}},{"property-name":"NFC_NAMING_CODE"},{"property-value":"-","property-name":"DELIMITER"}]},{"naming-type":"VF-MODULE","naming-recipe":"VNF_NAME|DELIMITER|VF_MODULE_LABEL|DELIMITER|VF_MODULE_TYPE|DELIMITER|SEQUENCE","name-operation":"to_lower_case()","naming-properties":[{"property-name":"VNF_NAME"},{"property-value":"-","property-name":"DELIMITER"},{"property-name":"VF_MODULE_LABEL"},{"property-name":"VF_MODULE_TYPE"},{"property-name":"SEQUENCE","increment-sequence":{"max":"zzz","scope":"PRECEEDING","start-value":"1","length":"3","increment":"1","sequence-type":"alpha-numeric"}}]}],"policy-instance-name":"ONAP_NF_NAMING_TIMESTAMP"},"name":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","version":"1.0.0","metadata":{"policy-id":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","policy-version":"1.0.0"}}}}
bash-5.0$



Within the E2E automation provided by CDS, we have a capability that can generate a name for a component, like a VNF or VF Module.

This capability runs with ONAP POLICY component, where POLICY has the rule that will be used to generate the names

The override.yaml file above has an option "preload=true", that will tell the POLICY component to run the push_policies.sh script as the POLICY PAP pod starts up, which will in turn create the Naming Policy and push it.

To check that the naming policy is created and pushed OK, we can run the commands below.

Card
labelSDC Modeling & Distribution

Automated Distribution of vLB CDS Service in SDC Model using Robot

The robot script can help the user automate the creation of the VSP and Service model, and also update the resource assignment properties of the service model to run the vLB_CDS blueprint.

To use this feature follow the steps below:

Code Block
languagebash
titleRobot Distribute vLB CDS Service Model
collapsetrue
root@olc-rancher:~# cd oom/kubernetes/robot/
root@olc-rancher:~/oom/kubernetes/robot# ./demo-k8s.sh onap init
Number of parameters:
2
KEY:
init
++ kubectl --namespace onap get pods
++ grep robot
++ sed 's/ .*//'
+ POD=onap-robot-robot-6998b9988c-cthb7
++ dirname ./demo-k8s.sh
+ DIR=.
+ SCRIPTDIR=scripts/demoscript
+ ETEHOME=/var/opt/ONAP
+ '[' ']'
++ kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- bash -c 'ls -1q /share/logs/ | wc -l'
+ export GLOBAL_BUILD_NUMBER=16
+ GLOBAL_BUILD_NUMBER=16
++ printf %04d 16
+ OUTPUT_FOLDER=0016_demo_init
+ DISPLAY_NUM=106
+ VARIABLEFILES='-V /share/config/robot_properties.py'
+ kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py -d /share/logs/0016_demo_init -i InitDemo --display 106
Starting Xvfb on display :106 with res 1280x1024x24
Executing robot tests at log level TRACE
==============================================================================
Testsuites                                                                    
==============================================================================
Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
==============================================================================
Initialize Customer And Models                                        | PASS |
------------------------------------------------------------------------------
Initialize SO Openstack Identity For V3                               | PASS |
------------------------------------------------------------------------------
Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
==============================================================================
Testsuites                                                            | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
==============================================================================
Output:  /share/logs/0016_demo_init/output.xml
Log:     /share/logs/0016_demo_init/log.html
Report:  /share/logs/0016_demo_init/report.html
root@olc-rancher:~/oom/kubernetes/robot# 


In order to check if the robot is OK, we can check in SDC to check the demoVLB_CDS model exists


Image Added


Also, we can click on the service model and check the resource assignment properties to ensure that blueprint template name and version are updated.

Image Added


Manual Distribution of a VNF CBA 

Login to ONAP as Designer (cs0008/demo123456!), and click on SDC application.

Part 1 - Create a New Virtual Software Product

In SDC, select the ONBOARD button > click on Create New VSP button > fill in the Name, Vendor, Category , Description and select the Network Package for on-boarding procedure as illustrated below.

Once the forum is populated for New Software Product click on Create

Image Added

In Software Product Details Screen in SDC, the users must populate the license information and the software product. For the vLB CDS use case the software product for the heat package is obtain from the following link: vLB CDS HEAT PACKAGE.

Once the for License and Software Product Attachment is populated then click on the Submit button. 

Image Added

Part 2 - Create VF Model and Certify


Image Added


Click on the Import VSP from the HOME page. 

From the list of VSP, select the Specific vLB CDS VSP for IMPORT to create the VF in SDC.

Image Added


We fill in the VF name and description, etc ..., and click "Create".

Image Added


Click on "Deployment Artifact", then "Add other arifacts", and select the vDNS.zip CBA.

Image Added

Image Added


Check the artifact is uploaded OK, and click on "Certify".

Image Added


Add a comment, and submit, you should receive a success notification, and we are back in SDC Home Screen.

Part 3 - Create Service Model, Certify and Distribute

Now, let's create a new service model, and add the newly created VF (including CBA artifact) to the new service model. Click on "Add Service"

Image Added


Add service name and description, and click on "Create". Choose Instantiation Type: Macro.

Image Added


Click on "Composition", and drag the VF we created from the palette on the left onto the canvas in the middle.

Then, click on "Submit for Testing".

Image Added


Click on Properties Assignments, then click on the service name, e.g. "CDS-VNF-TEST" from the right bar.

Type "sdnc" in the filter box, and add the sdnc_model_name, sdnc_model_version, and sdnc_artifact_name, and click "Save".

Image Added


Type "con" in the filter box, and set "skip post instantiation" to FALSE and controller_actor to "CDS" then click "Save".


Image Added


Distribute the service model once the service is certified. 

Image Added


Click on "Monitor" to check the progress of the distribution, and check that all ONAP components were notified, and downloaded the artifacts, and deployed OK.

Image Added

Check SDNC distribution concerning CDS

SDNC to find CDS SDNC database should be now populated with CDS model identification.

Code Block
languagebash
titlecds link in sdnc database
kubectl exec -n onap onap-mariadb-galera-mariadb-galera-0 -it -- sh
mysql -uroot -psecretpassword -D sdnctl
MariaDB [sdnctl]> select sdnc_model_name, sdnc_model_version, sdnc_artifact_name from VF_MODEL WHERE customization_uuid = '88e0e9a7-5bd2-4689-ae9e-7fc167d685a2';
+
Card
labelPolicy Naming Modeling
Code Block
languagebash
titleSDNC Naming policy
bash-4.4$ curl -k --silent -X POST \
--header 'Content-Type: application/json' \
--header 'ClientAuth: cHl0aG9uOnRlc3Q=' \
--header 'Authoment: TEST' \
-d '{ "policyName": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP.1.xml"}' \
'https://pdp:8081/pdp/api/getConfig'     


[{"policyConfigMessage":"Config Retrieved! ",
"policyConfigStatus":"CONFIG_RETRIEVED",
"type":"JSON",
"config":"{\"service\":\"SDNC-GenerateName\",\"version\":\"CSIT\",\"content\":{\"policy-instance-name\":\"ONAP_VNF_NAMING_TIMESTAMP\",\"naming-models\":[{\"naming-properties\":[{\"property-name\":\"AIC_CLOUD_REGION\"},{\"property-name\":\"CONSTANT\",\"property-value\":\"ONAP-NF\"},{\"property-name\":\"TIMESTAMP\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNF\",\"naming-recipe\":\"AIC_CLOUD_REGION|DELIMITER|CONSTANT|DELIMITER|TIMESTAMP\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"ENTIRETY\",\"start-value\":\"001\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}},{\"property-name\":\"NFC_NAMING_CODE\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNFC\",\"naming-recipe\":\"VNF_NAME|DELIMITER|NFC_NAMING_CODE|DELIMITER|SEQUENCE\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"},{\"property-name\":\"VF_MODULE_LABEL\"},{\"property-name\":\"VF_MODULE_TYPE\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"PRECEEDING\",\"start-value\":\"01\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}}],\"naming-type\":\"VF-MODULE\",\"naming-recipe\":\"VNF_NAME|DELIMITER|VF_MODULE_LABEL|DELIMITER|VF_MODULE_TYPE|DELIMITER|SEQUENCE\"}]}}",
"policyName":"SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP.1.xml",
"policyType":"MicroService",
"policyVersion":"1",
"matchingConditions":{"ECOMPName":"SDNC","ONAPName":"SDNC","service":"SDNC-GenerateName"},
"responseAttributes":{},
"property":null}]

In case the policy is missing, we can manually create and push the SDNC Naming policy using the commands below.

Code Block
languagebash
titleCreate and Push SDNC Naming Policy
#########################################Create SDNC Naming Policies##########################################
echo "Create Generic SDNC Naming Policy for VNF"
sleep 2
echo "Create SDNC vFW Naming Policy"
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
    "configBody": "{ \"service\": \"SDNC-GenerateName\", \"version\": \"CSIT\", \"content\": { \"policy-instance-name\": \"ONAP_VNF_NAMING_TIMESTAMP\", \"naming-models\": [ { \"naming-properties\": [ { \"property-name\": \"AIC_CLOUD_REGION\" }, { \"property-name\": \"CONSTANT\",\"property-value\": \"ONAP-NF\"}, { \"property-name\": \"TIMESTAMP\" }, { \"property-value\": \"_\", \"property-name\": \"DELIMITER\" } ], \"naming-type\": \"VNF\", \"naming-recipe\": \"AIC_CLOUD_REGION|DELIMITER|CONSTANT|DELIMITER|TIMESTAMP\" }, { \"naming-properties\": [ { \"property-name\": \"VNF_NAME\" }, { \"property-name\": \"SEQUENCE\", \"increment-sequence\": { \"max\": \"zzz\", \"scope\": \"ENTIRETY\", \"start-value\": \"001\", \"length\": \"3\", \"increment\": \"1\", \"sequence-type\": \"alpha-numeric\" } }, { \"property-name\": \"NFC_NAMING_CODE\" }, { \"property-value\": \"_\", \"property-name\": \"DELIMITER\" } ], \"naming-type\": \"VNFC\", \"naming-recipe\": \"VNF_NAME|DELIMITER|NFC_NAMING_CODE|DELIMITER|SEQUENCE\" }, { \"naming-properties\": [ { \"property-name\": \"VNF_NAME\" }, { \"property-value\": \"_\", \"property-name\": \"DELIMITER\" }, { \"property-name\": \"VF_MODULE_LABEL\" }, { \"property-name\": \"VF_MODULE_TYPE\" }, { \"property-name\": \"SEQUENCE\", \"increment-sequence\": { \"max\": \"zzz\", \"scope\": \"PRECEEDING\", \"start-value\": \"01\", \"length\": \"3\", \"increment\": \"1\", \"sequence-type\": \"alpha-numeric\" } } ], \"naming-type\": \"VF-MODULE\", \"naming-recipe\": \"VNF_NAME|DELIMITER|VF_MODULE_LABEL|DELIMITER|VF_MODULE_TYPE|DELIMITER|SEQUENCE\" } ] } }",
    "policyName": "SDNC_Policy.ONAP_VNF_NAMING_TIMESTAMP",
    "policyConfigType": "MicroService",
    "onapName": "SDNC",
    "riskLevel": "4",
    "riskType": "test",
    "guard": "false",
    "priority": "4",
    "description": "ONAP_VNF_NAMING_TIMESTAMP"
}' 'https://pdp:8081/pdp/api/createPolicy'
#########################################Pushing SDNC Naming Policies##########################################
echo "Pushing SDNC Naming Policies"
sleep 2
echo "pushPolicy : PUT : SDNC_Policy.ONAP_VNF_NAMING_TIMESTAMP"
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
  "pdpGroup": "default",
  "policyName": "SDNC_Policy.ONAP_VNF_NAMING_TIMESTAMP",
  "policyType": "MicroService"
}' 'https://pdp:8081/pdp/api/pushPolicy'
Card
labelSDC Modeling & Distribution

Introduction

The purpose of this article is to describe the vLB use case distribution in El Alto Release.

What's new in El Alto

The Controller Blueprint Archive CBA is a zip archive that hosts all the service model related artifacts (heat templates, blueprints, vtl templates, workflows, etc ... ) that can enable ONAP to assign and instantiate the service. 

Controller Design Studio CDS should receive a notification when a new service model is distributed by SDC, and then CDS will download the CBA CSAR file and deploy it.

In El Alto, the distribution of the vLB CDS Service model can now be automated using a Robot Script.

Automated Distribution of vLB CDS Service in SDC Model using Robot

The robot script can help the user automate the creation of the VSP and Service model, and also update the resource assignment properties of the service model to run the vLB_CDS blueprint.

To use this feature follow the steps below:

Code Block
languagebash
titleRobot Distribute vLB CDS Service Model
collapsetrue
root@olc-rancher:~# cd oom/kubernetes/robot/
root@olc-rancher:~/oom/kubernetes/robot# ./demo-k8s.sh onap init
Number of parameters:
2
KEY:
init
++ kubectl --namespace onap get pods
++ grep robot
++ sed 's/ .*//'
+ POD=onap-robot-robot-6998b9988c-cthb7
++ dirname ./demo-k8s.sh
+ DIR=.
+ SCRIPTDIR=scripts/demoscript
+ ETEHOME=/var/opt/ONAP
+ '[' ']'
++ kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- bash -c 'ls -1q /share/logs/ | wc -l'
+ export GLOBAL_BUILD_NUMBER=16
+ GLOBAL_BUILD_NUMBER=16
++ printf %04d 16
+ OUTPUT_FOLDER=0016_demo_init
+ DISPLAY_NUM=106
+ VARIABLEFILES='-V /share/config/robot_properties.py'
+ kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py -d /share/logs/0016_demo_init -i InitDemo --display 106
Starting Xvfb on display :106 with res 1280x1024x24
Executing robot tests at log level TRACE
==============================================================================
Testsuites                                                                    
==============================================================================
Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
==============================================================================
Initialize Customer And Models                                        | PASS |
--------------------------------+--------------------+--------------------------
Initialize SO Openstack Identity For V3                               | PASS |
+
| sdnc_model_name | sdnc_model_version | sdnc_artifact_name |
+-----------------+--------------------+-----------------------------------------
Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
==============================================================================
Testsuites                                                            | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
==============================================================================
Output:  /share/logs/0016_demo_init/output.xml
Log:     /share/logs/0016_demo_init/log.html
Report:  /share/logs/0016_demo_init/report.html
root@olc-rancher:~/oom/kubernetes/robot# 

In order to check if the robot is OK, we can check in SDC to check the demoVLB_CDS model exists

Image Removed

Also, we can click on the service model and check the resource assignment properties to ensure that blueprint template name and version are updated.

Image Removed

Manual Distribution of a VNF CBA 

Login to ONAP as Designer (cs0008/demo123456!), and click on SDC application.

Part 1 - Create a New Virtual Software Product

In SDC, select the ONBOARD button > click on Create New VSP button > fill in the Name, Vendor, Category , Description and select the Network Package for on-boarding procedure as illustrated below.

Once the forum is populated for New Software Product click on Create

Image Removed

In Software Product Details Screen in SDC, the users must populate the license information and the software product. For the vLB CDS use case the software product for the heat package is obtain from the following link: vLB CDS HEAT PACKAGE.

Once the for License and Software Product Attachment is populated then click on the Submit button. 

Image Removed

Part 2 - Create VF Model and Certify

Image Removed

Click on the Import VSP from the HOME page. 

From the list of VSP, select the Specific vLB CDS VSP for IMPORT to create the VF in SDC.

Image Removed

We fill in the VF name and description, etc ..., and click "Create".

Image Removed

Click on "Deployment Artifact", then "Add other arifacts", and select the vDNS.zip CBA.

Image Removed

Image Removed

Check the artifact is uploaded OK, and click on "Certify".

Image Removed

Add a comment, and submit, you should receive a success notification, and we are back in SDC Home Screen.

Part 3 - Create Service Model, Certify and Distribute

Now, let's create a new service model, and add the newly created VF (including CBA artifact) to the new service model. Click on "Add Service"

Image Removed

Add service name and description, and click on "Create". Choose Instantiation Type: Macro.

Image Removed

Click on "Composition", and drag the VF we created from the palette on the left onto the canvas in the middle.

Then, click on "Submit for Testing".

Image Removed

Click on Properties Assignments, then click on the service name, e.g. "CDS-VNF-TEST" from the right bar.

Type "sdnc" in the filter box, and add the sdnc_model_name, sdnc_model_version, and sdnc_artifact_version, and click "Save".

Image Removed

Type "skip" in the filter box, and set "skip post instantiation" to FALSE, then click "Save".

Image Removed

Login as Tester (jm0007/demo123456!) and accept the new service.

Image Removed

Login as Governor (gv0001/demo123456!) and approve for distribution.

Image Removed

Login as Operator (op0001/demo123456!) and click on "Distribute".

Image Removed

Click on "Monitor" to check the progress of the distribution, and check that all ONAP components were notified, and downloaded the artifacts, and deployed OK.

Image Removed
+
| test            | 1.0.0              | cds-vnf-template   |
+-----------------+--------------------+--------------------+
1 row in set (0.00 sec)

# Where customization_uuid is the modelCustomizationUuid of the VNf (serviceVnfs response in 2nd postman call from SO Catalog DB)