You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

This document explains the steps to on-board and instantiate vFW on Azure

Pre-requisites

  1. ONAP environment on Azure as explained here

Demo Video 

Refer to the video on how to on-board and instantiate vFW on Azure(E2E)

Error rendering macro 'multimedia'

com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'vfw_on_azure.mp4'

The detailed steps are provided below:

Onboarding and Service Design

  1. Onboard the vSINC 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_vfw_vSNC.csar
  2. Onboard the vPG 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_vfw_vPG.csar
  3. Import the vSINC VSP and create the VNF as shown in the video
  4. After creating the VNF, use the deployment artifact link to add the Azure specific TOSCA in the OTHER folder.
    1. Azure specific TOSCA for vSINC is available on Github: https://github.com/onapdemo/demo/raw/master/tosca/aria_csars/aria-vsink-fw.csar
  5. Similarly, import the vPG VSP and add the Azure specific TOSCA
    1. Azure specific TOSCA for vPG is available on Github: https://github.com/onapdemo/demo/raw/master/tosca/aria_csars/aria-vpkg.csar
  6. Using SDC catalog, create the vFW service by adding two VNFs that were imported.
  7. 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 pre-requisites page.

Steps to instantiate

  1. Login to VID and click on Browse Service Models(Left menu)
  2. Click on Deploy and then enter the service instance name and other details to create the service.
  3. Once created, you can see the service instance details with an option to "Add VNF".
  4. Click on Add VNF and select the VNF module related to vSINC.Enter the VNF name and other details to create the VNF for vSINC.
  5. Preload SDNC data by capturing the VNF model data information
    1. POST /restconf/operations/VNF-API:preload-vnf-topology-operation

      vSINC Preload Request Body
      {
      	"input": {
      		"vnf-topology-information": {
      			"vnf-topology-identifier": {
      				"service-type": "{{so_service-instance-id}}",
      				"vnf-name": "VF_VSINC1",
      				"vnf-type": "SimpleVsinc..base_vfw..module-0",
      				"generic-vnf-name": "VNF_SINC1",
      				"generic-vnf-type": "azure-vfw-service/azure-vfw-vsp 0"
      			},
      			"vnf-assignments": {
      				"availability-zones": [],
      				"vnf-networks": [],
      				"vnf-vms": []
      			},
      			"vnf-parameters": [  {
                          "vnf-parameter-name": "image_name",   
                          "vnf-parameter-value": "UbuntuServer"
                      },
      				{
                          "vnf-parameter-name": "flavor_name",   
                          "vnf-parameter-value": "Standard_D2"
                      },
                      {
                          "vnf-parameter-name": "public_net_id",   
                          "vnf-parameter-value": "private_vnet"
                      },
      				{
                          "vnf-parameter-name": "onap_private_subnet_id",   
                          "vnf-parameter-value": "private_vsubnet"
                      },
      				{
                          "vnf-parameter-name": "unprotected_private_net_cidr",   
                          "vnf-parameter-value": "172.23.0.0/24"
                      },
      				{
                          "vnf-parameter-name": "protected_private_net_cidr",   
                          "vnf-parameter-value": "172.23.1.0/24"
                      },
      				{
                          "vnf-parameter-name": "onap_private_net_cidr",   
                          "vnf-parameter-value": "172.23.3.0/24"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_0",   
                          "vnf-parameter-value": "172.23.0.150"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_1",   
                          "vnf-parameter-value": "172.23.1.50"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_2",   
                          "vnf-parameter-value": "10.0.100.1"
                      },
      				{
                          "vnf-parameter-name": "vsn_private_ip_0",   
                          "vnf-parameter-value": "172.23.1.100"
                      },
      				{
                          "vnf-parameter-name": "vsn_private_ip_1",   
                          "vnf-parameter-value": "172.23.3.50"
                      },
      				{
                          "vnf-parameter-name": "vfw_name_0",   
                          "vnf-parameter-value": "zdfw1fwl01vfw01"
                      },
      				{
                          "vnf-parameter-name": "vsn_name_0",   
                          "vnf-parameter-value": "zdfw1fwl01vsinc01"
                      },
      				{
                          "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/public"
                      },
                      {
                          "vnf-parameter-name": "demo_artifacts_version",   
                          "vnf-parameter-value": "1.1.1"
                      },
                      {
                          "vnf-parameter-name": "install_script_version",   
                          "vnf-parameter-value": "1.1.1"
                      },
      				{
                          "vnf-parameter-name": "pub_key",   
                          "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD5zrmH1dHgXbNwP2qbNVySScnFVcEP25HBd2VJu2PiJLDhwgHj44Lj9ZvLyRFCetqd8CAKnLV5qy37rwaCtlH/t8Qb36cUGPhegxpF2++uTY0b6K7Zb6hEMBNw3J1z+GU7OoVwZJhsNAw4t8/7WWmJA4Owo99TJkEKvhCYjBCLoC5sIvG/lJsaFIG8A5MjnBlwgSZ3FsUU+aY1KYZUztodkyv7laDMOinwSvJggKrCugsqZdVo5bhmcSFbqrZa/a/wgqeok+79W0/DLh5Tlf7By46ASDKGnFlwDshPu++I3KMU3eRz0rJLOKeIUCz7k80X0WJ6BrSS7l+IrpDXV1M5 ubuntu@aria"
                      },
                      {
                          "vnf-parameter-name": "cloud_env",   
                          "vnf-parameter-value": "openstack"
                      }  
                      ]
      		},
      		"request-information": {
      			"request-id": "robot9",
      			"order-version": "1",
      			"notification-url": "openecomp.org",
      			"order-number": "1",
      			"request-action": "PreloadVNFRequest"
      		},
      		"sdnc-request-header": {
      			"svc-request-id": "robot9",
      			"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 vSINC and vFW installation are kept.

      {
      "vnf-parameter-name": "repo_url_blob",
      "vnf-parameter-value": "https://raw.githubusercontent.com/onapdemo/onap-scripts/master/usecases"
      }
  6. Click on Add VF module.Enter the details and submit the request. This will instantiate the FW and SINC VMs on Azure
  7. Similarly,follow step 4(select vPG module related to vPG) and  create the VNF for vPG.
  8. Preload SDNC data by capturing the VNF model data information
    1. POST /restconf/operations/VNF-API:preload-vnf-topology-operation

      vPG Preload Request Body
      {
      	"input": {
      		"vnf-topology-information": {
      			"vnf-topology-identifier": {
      				"service-type": "{{so_service-instance-id}}",
      				"vnf-name": "VF_VPG1",
      				"vnf-type": "SimpleVpg..base_vpkg..module-0",
      				"generic-vnf-name": "VNF_VPG1",
      				"generic-vnf-type": "azure-vfw-service/azure-vfw-vpg-vsp 0"
      			},
      			"vnf-assignments": {
      				"availability-zones": [],
      				"vnf-networks": [],
      				"vnf-vms": []
      			},
      			"vnf-parameters": [ 
      				{
                          "vnf-parameter-name": "image_name",   
                          "vnf-parameter-value": "UbuntuServer"
                      },
      				{
                          "vnf-parameter-name": "flavor_name",   
                          "vnf-parameter-value": "Standard_D2"
                      },
                      {
                          "vnf-parameter-name": "public_net_id",   
                          "vnf-parameter-value": "private_vnet"
                      },
      				{
                          "vnf-parameter-name": "onap_private_subnet_id",   
                          "vnf-parameter-value": "private_vsubnet"
                      },
      				{
                          "vnf-parameter-name": "unprotected_private_net_cidr",   
                          "vnf-parameter-value": "172.23.0.0/24"
                      },
      				{
                          "vnf-parameter-name": "protected_private_net_cidr",   
                          "vnf-parameter-value": "172.23.1.0/24"
                      },
      				{
                          "vnf-parameter-name": "onap_private_net_cidr",   
                          "vnf-parameter-value": "172.23.3.0/24"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_0",   
                          "vnf-parameter-value": "172.23.0.150"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_1",   
                          "vnf-parameter-value": "172.23.1.50"
                      },
      				{
                          "vnf-parameter-name": "vfw_private_ip_2",   
                          "vnf-parameter-value": "10.0.100.1"
                      },
      				{
                          "vnf-parameter-name": "vpg_private_ip_1",   
                          "vnf-parameter-value": "10.0.100.2"
                      },
      				{
                          "vnf-parameter-name": "vsn_private_ip_0",   
                          "vnf-parameter-value": "172.23.1.100"
                      },
      				{
                          "vnf-parameter-name": "vpg_name_0",   
                          "vnf-parameter-value": "zdfw1fwl01pgn01"
                      },
      				{
                          "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/public"
                      },
                      {
                          "vnf-parameter-name": "demo_artifacts_version",   
                          "vnf-parameter-value": "1.1.1"
                      },
                      {
                          "vnf-parameter-name": "install_script_version",   
                          "vnf-parameter-value": "1.1.1"
                      },
      				{
                          "vnf-parameter-name": "pub_key",   
                          "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD5zrmH1dHgXbNwP2qbNVySScnFVcEP25HBd2VJu2PiJLDhwgHj44Lj9ZvLyRFCetqd8CAKnLV5qy37rwaCtlH/t8Qb36cUGPhegxpF2++uTY0b6K7Zb6hEMBNw3J1z+GU7OoVwZJhsNAw4t8/7WWmJA4Owo99TJkEKvhCYjBCLoC5sIvG/lJsaFIG8A5MjnBlwgSZ3FsUU+aY1KYZUztodkyv7laDMOinwSvJggKrCugsqZdVo5bhmcSFbqrZa/a/wgqeok+79W0/DLh5Tlf7By46ASDKGnFlwDshPu++I3KMU3eRz0rJLOKeIUCz7k80X0WJ6BrSS7l+IrpDXV1M5 ubuntu@aria"
                      },
                      {
                          "vnf-parameter-name": "cloud_env",   
                          "vnf-parameter-value": "openstack"
                      },
                      {
                          "vnf-parameter-name": "vpkg_unprotected_private_ip",   
                          "vnf-parameter-value": "172.23.0.50"
                      }  
                      ]
      		},
      		"request-information": {
      			"request-id": "robot9",
      			"order-version": "1",
      			"notification-url": "openecomp.org",
      			"order-number": "1",
      			"request-action": "PreloadVNFRequest"
      		},
      		"sdnc-request-header": {
      			"svc-request-id": "robot9",
      			"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 vPG installation are kept.

      {
      "vnf-parameter-name": "repo_url_blob",
      "vnf-parameter-value": "https://raw.githubusercontent.com/onapdemo/onap-scripts/master/usecases"
      }



  9. Click on Add VF module.Enter the details and submit the request. This will instantiate PG on Azure.

Traffic flow test

Open the browser and enter the URL: http://vsnctestapp.eastus.cloudapp.azure.com:667

This will show the graph with the packets coming to SINC vm



Running vFW with Robot Framework

This vFW automation handles model creation and instantiation.

Run the vFW 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 instantiateAzureVFW

Output of the Execution-

Console -

Azure Portal - 

Log-

vFW on Azure

Additional information

Based on the preferences, User can modify following files to instantiate vFW on Azure.

    1. 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 vFW Instantiation under - "azurevfwsnk_preload.template" and "azurevpkg_preload.template".
    2. 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"

Make sure you compile these python file after any modification using command - python <filename>

  • No labels