Introduction
This document explains the steps to on-board and instantiate vDNS on Azure
Pre-requisites
- ONAP environment should be available as mentioned here
Demo Video
Refer to the video on how to on-board and instantiate vFW on Azure(E2E) here
The detailed steps are provided below:
Onboarding and Service Design
- Onboard the vDNS VNF using the TOSCA designed using Simple profile nodes. TOSCA csar is available on Github: https://github.com/onapdemo/demo/raw/master/tosca/aria_csars/simple_vdns.csar
- Import the vDNS VSP and create the VNF as shown in the video
- After creating the VNF, use the deployment artifact link to add the Azure specific TOSCA in the OTHER folder.
- Azure specific TOSCA for vDNS is available on Github: https://github.com/onapdemo/demo/raw/master/tosca/aria_csars/aria-vdns.csar
- Using SDC catalog, create the vDNS service by adding two VNFs that were imported.
- Distribute the service to SO and AAi
Service Provisioning
Once the service model gets distributed to SO & AAI, service instantiation can be done using VID UI
Pre-requisites
Refer to vDNS on Azure page
Steps to instantiate
- Login to VID and click on Browse Service Models(Left menu)
- Click on Deploy and then enter the service instance name and other details to create the service.
- Once created, you can see the service instance details with an option to "Add VNF".
- Click on Add VNF and select the VNF module.Enter the VNF name and other details to create the VNF.
- Preload SDNC data by capturing the VNF model data information
POST /restconf/operations/VNF-API:preload-vnf-topology-operation
vDNS Preload Request Body{ "input": { "vnf-topology-information": { "vnf-topology-identifier": { "service-type": "28568e01-94fb-41a5-bc66-dfc7ee87ef90", "vnf-name": "VF_VLB1", "vnf-type": "Simple_vlb0..base_vlb..module-0", "generic-vnf-name": "VNF_VLB1", "generic-vnf-type": "azure-vdns-service/azure-vdns-vsp 0" }, "vnf-assignments": { "availability-zones": [], "vnf-networks": [], "vnf-vms": [] }, "vnf-parameters": [ { "vnf-parameter-name": "vlb_image_name", "vnf-parameter-value": "ubuntu16-ecomp.qcow2" }, { "vnf-parameter-name": "vlb_flavor_name", "vnf-parameter-value": "m1.medium" }, { "vnf-parameter-name": "vlb_private_net_id", "vnf-parameter-value": "vlb_vdns_vsubnet" }, { "vnf-parameter-name": "pktgen_private_net_id", "vnf-parameter-value": "vpg_vlb_vsubnet" }, { "vnf-parameter-name": "onap_private_subnet_id", "vnf-parameter-value": "public_vsubnet" }, { "vnf-parameter-name": "vlb_private_net_cidr", "vnf-parameter-value": "172.23.10.0/24" }, { "vnf-parameter-name": "pktgen_private_net_cidr", "vnf-parameter-value": "172.23.9.0/24" }, { "vnf-parameter-name": "onap_private_net_cidr", "vnf-parameter-value": "172.23.8.0/24" }, { "vnf-parameter-name": "vlb_private_ip_0", "vnf-parameter-value": "172.23.10.111" }, { "vnf-parameter-name": "vlb_private_ip_1", "vnf-parameter-value": "172.23.8.1" }, { "vnf-parameter-name": "vlb_private_ip_2", "vnf-parameter-value": "172.23.9.111" }, { "vnf-parameter-name": "vdns_private_ip_0", "vnf-parameter-value": "172.23.10.211" }, { "vnf-parameter-name": "vdns_private_ip_1", "vnf-parameter-value": "172.23.8.3" }, { "vnf-parameter-name": "vpg_private_ip_0", "vnf-parameter-value": "172.23.9.110" }, { "vnf-parameter-name": "vpg_private_ip_1", "vnf-parameter-value": "172.23.8.2" }, { "vnf-parameter-name": "vlb_name_0", "vnf-parameter-value": "zdfw1lb01lb01" }, { "vnf-parameter-name": "vdns_name_0", "vnf-parameter-value": "zdfw1lb01dns01" }, { "vnf-parameter-name": "vpg_name_0", "vnf-parameter-value": "zdfw1lb01pg01" }, { "vnf-parameter-name": "dcae_collector_ip", "vnf-parameter-value": "127.0.0.1" }, { "vnf-parameter-name": "dcae_collector_port", "vnf-parameter-value": "8080" }, { "vnf-parameter-name": "repo_url_blob", "vnf-parameter-value": "https://raw.githubusercontent.com/onapdemo/onap-scripts/master/usecases" }, { "vnf-parameter-name": "repo_url_artifacts", "vnf-parameter-value": "https://nexus.onap.org/content/groups/staging" }, { "vnf-parameter-name": "demo_artifacts_version", "vnf-parameter-value": "1.2.0" }, { "vnf-parameter-name": "install_script_version", "vnf-parameter-value": "1.1.1" }, { "vnf-parameter-name": "pub_key", "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+nbU5EGLqxaArpZYl5zzLCZaJf+U8ycmUNNHabgIBpngdv77cCVE7lT8ajs/Y6O4amUgAIXKPWcaYolhcV9IfLFY3Wt8LcKd97NSAaq5wlTFinsofC9L65MTqgK7vVQ6gvRWrekmHjeCgsfi20gQWmMKOXJhD+Mz4S0v9JHsWinY6xrxgzabFlDE0giasxFXQzBbmWtZwn9443NrpNkKA2phKjXQM6v7Pi9Th6gOUMPSVo8sxfYJ1WUkLI7Qxrcb+mfPQkHAJpTvxIot+cHdDY61l2QuIDbV4FFO4Cn3P3mFrrBnu99h1fxa8klmPDv7APcpbZoo/O7CyapQt78Jn" }, { "vnf-parameter-name": "cloud_env", "vnf-parameter-value": "azure" } ] }, "request-information": { "request-id": "robot19", "order-version": "1", "notification-url": "openecomp.org", "order-number": "1", "request-action": "PreloadVNFRequest" }, "sdnc-request-header": { "svc-request-id": "robot19", "svc-notification-url": "http://openecomp.org:8080/adapters/rest/SDNCNotify", "svc-action": "reserve" } } }
In preload parameters, repo_url_blob refers to Github link where the modified scripts for vDNS installation are kept.
{ "vnf-parameter-name": "repo_url_blob", "vnf-parameter-value": "https://raw.githubusercontent.com/onapdemo/onap-scripts/master/usecases" }
- Click on Add VF module.Enter the details and submit the request. This will instantiate the PG(Packet Generator), LB(Load Balancer) and DNS VMs on Azure
Testing vDNS Instantiation
- SSH to PG VM.
- ssh ubuntu@vpgtestapp.eastus.cloudapp.azure.com
- Password: Qwertyuiop@@1
- Execute the command: nslookup host1.dnsdemo.onap.org 172.23.9.111
- sudo tcpdump -i eth1
Running vDNS with Robot Framework
This vDNS automation handles model creation and instantiation.
Run the vDNS script as following:
Connect to the Azure VM where ONAP is deployed via SSH and execute the following commands
[root@onap-tanmay:/home/ubuntu/oom/kubernetes/robot]# cd /opt/aee/oom/kubernetes/robot/ [root@onap-tanmay:/home/ubuntu/oom/kubernetes/robot]# ./demo-k8s.sh instantiateAzureVDNS
Output of the Execution-
Console -
Azure Portal -
Log-
Additional information
Based on the preferences, User can modify following files to instantiate vFW on Azure.
- integration_preload_parameters.py
This file is available under /dockerdata-nfs/<namespace>/robot/eteshare/config/ in Azure VM where ONAP is deployed. User can modify preload parameters for vDNS Instantiation under - "azurevdns_preload.template". - integration_robot_properties.py
This file is available under /dockerdata-nfs/<namespace>/robot/eteshare/config/ in Azure VM where ONAP is deployed. User can modify fields such as "AZURE_SUBSCRIPTION_ID" , "AZURE_TENANT_ID" , "AZURE_CLIENT_ID" , "AZURE_CLIENT_SECRET" , "AZURE_CLOUD_OWNER" , "AZURE_CLOUD_REGION"
- integration_preload_parameters.py
Make sure you compile these python file after any modification using command - python <filename>