diff options
56 files changed, 810 insertions, 0 deletions
diff --git a/docs/guides/onap-user/index.rst b/docs/guides/onap-user/index.rst index 02d56f2b8..6ffccaeaf 100644 --- a/docs/guides/onap-user/index.rst +++ b/docs/guides/onap-user/index.rst @@ -41,6 +41,8 @@ Tutorials :maxdepth: 1 vFW Design Tutorial <./vfw-design-tutorial/index.rst> + vFW Deployment Tutorial <./vfw-deployment-tutorial/index.rst> + vFWCL Design Tutorial <./vfwcl-design-tutorial/index.rst> Verified Use Cases ------------------ diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/index.rst b/docs/guides/onap-user/vfw-deployment-tutorial/index.rst new file mode 100644 index 000000000..8fce21d01 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/index.rst @@ -0,0 +1,557 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. http://creativecommons.org/licenses/by/4.0 +.. Copyright © 2017-2020 Aarna Networks, Inc. + +vFW Service Deployment Tutorial +############################### + +In this tutorial, we will deploy the service created in the previous Service Design tutorial onto OpenStack. +We will do so by using the VID GUI from the ONAP Portal. Login as user demo. + +In this section, you will learn the following through VID GUI + +* How to Instantiate a Service +* How to Instantiate a VNF +* How to Instantiate VF Module +* How to Instantiate Network + +Let us start by running Robot init script + +1. Run Robot init script to populate demo models. + +.. code-block:: + + cd ~/oom/kubernetes/robot + ./demo-k8s.sh onap init + + Result: + All tests must pass, below is sample output. + + Number of parameters: + 2 + KEY: + init + ++ kubectl --namespace onap get pods + ++ sed 's/ .*//' + ++ grep robot + + POD=dev-robot-578b965f4d-vlk8b + ++ dirname ./demo-k8s.sh + + DIR=. + + SCRIPTDIR=scripts/demoscript + + ETEHOME=/var/opt/ONAP + + '[' ']' + ++ kubectl --namespace onap exec dev-robot-578b965f4d-vlk8b -- bash -c 'ls -1q /share/logs/ | wc -l' + + export GLOBAL_BUILD_NUMBER=3 + + GLOBAL_BUILD_NUMBER=3 + ++ printf %04d 3 + + OUTPUT_FOLDER=0003_demo_init + + DISPLAY_NUM=93 + + VARIABLEFILES='-V /share/config/robot_properties.py' + + kubectl --namespace onap exec dev-robot-578b965f4d-vlk8b -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py + -d /share/logs/0003_demo_init -i InitDemo --display 93 + Starting Xvfb on display :93 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/0003_demo_init/output.xml + Log: /share/logs/0003_demo_init/log.html + Report: /share/logs/0003_demo_init/report.html + +2. Create vFW_demo_service Instance + + A. Login into the ONAP portal as user demo / demo123456! + + |image4| + + B. Go to Home and select Virtual Infrastructure Deployment (VID) application + + |image11| + +If you see VID reporting a Security failure, and the browser does not give option to Allow Exception button as below + +|image22| + +Apply the below workaround for the above issue + +Copy the vid.api.simpledemo.onap.org:30200 from the above window, open new tab and paste the copied URL +as https://vid.api.simpledemo.onap.org:30200 and click on Advanced then click on Accept the Risk and Continue tab + +|image13| + +Then Close the tab, go to the ONAP Home page and load the VID UI again, you will see VID home page + +|image17| + + C. Select Test API for A-la-carte as VNF_API(old) then click Browse SDC Service Models (Left side panel) + + |image10| + + D. Search for the service to instantiate, select a service (vfw_demo_service) distributed in SDC and click Deploy + + |image1| + + E. Complete the fields indicated by the red star and click Confirm + + * Instance Name = vFW_service_00 + * Subscriber Name = Demonstration + * Service Type = vFW + * Owning Entity = OE-Demonstration + + |image24| + + F. Select Confirm Button + + We should see the “Service instance was created successfully” message + + |image15| + + G. Click Close and the next screen should appear. It will allow you to declare VNF(s) and Network(s) + that are part of the service model composition + + |image29| + +3. Instantiate a VNF + + A. click on “Add node instance” and select the VNF you want to instantiate in the list + + |image9| + + B. Complete the fields indicated by the red star and click Confirm + + * Instance Name = vFW_demo_VNF + * Product Family = vFW + * Region = RegionOne(CLOUDOWNER) + * Tenant = admin + * Line Of Business = LOB-Demonstration + * Platform = Platform-Demonstration + + |image6| + +You will get a status complete dialog message + +|image18| + + C. Click on close button, the following screen then should appear + + |image16| + +4. Instantiate VF Module + + Note: Before creating VF module get the required parameter values to prepare SDNC preload data + + A. Copy the following VNF attributes from VNF instance detail screen + + * generic-vnf-name = vFW_demo_VNF (value must be equal to the VNF instance name value) + + |image25| + + * generic-vnf-type = vFW_demo_service/vFW_demo 0 (value must be equal to VNF Type value) + + |image20| + + * service-type = f7c80167-ed06-48ef-a991-61b43196f98f (value must be equal to the service instance id value) + + |image26| + + B. Copy the following attributes From Create VF Module screen + + * vnf-name = lfn_vf_module (value must be equal to the VF module instance name value) + * vnf-type = VfwDemo..base_vfw..module-0 (value must be equal to the “Model Name” value - see create VF module screen) + + |image27| + + C. Get the required vnf-parameters values from Heat env file imported while SDC design + (refer https://github.com/onap/demo/blob/master/heat/vFW/base_vfw.env) + + Login to Openstack and execute the below commands and get the required openstack related parameter values + to update in SDNC preload data + + * download the image ubuntu-14.04 from cloud images & create an image with "ubuntu-14-04-cloud-amd6" name + * create the flavor with m1.medium + * create OAM_NETWORK ID & OAM_SUBNET ID (use subnet range from base_vfw.env file) + * execute openstack security group rule to open all ports for onap + + D. Run the SDNC preload curl command + Below is the sample curl command updated with all the required parameters + + .. code-block:: + + curl -k -X POST \ + https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-vnf-topology-operation \ + -H 'Accept: application/json' \ + -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \ + -H 'Content-Type: application/json' \ + -H 'X-FromAppId: API client' \ + -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \ + -H 'cache-control: no-cache' \ + -d '{ + "input": { + "request-information": { + "notification-url": "onap.org", + "order-number": "1", + "order-version": "1", + "request-action": "PreloadVNFRequest", + "request-id": "test" + }, + "sdnc-request-header": { + "svc-action": "reserve", + "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify", + "svc-request-id": "test" + }, + "vnf-topology-information": { + "vnf-assignments": { + "availability-zones": [], + "vnf-networks": [], + "vnf-vms": [] + }, + "vnf-parameters": [{ + "vnf-parameter-name": "vfw_image_name", + "vnf-parameter-value": "ubuntu-14-04-cloud-amd6" + }, + { + "vnf-parameter-name": "vfw_flavor_name", + "vnf-parameter-value": "m1.medium" + }, + { + "vnf-parameter-name": "vfw_name_0", + "vnf-parameter-value": "zdfw1fwl01fwl01" + }, + { + "vnf-parameter-name": "vfw_int_unprotected_private_ip_0", + "vnf-parameter-value": "192.168.10.101" + }, + { + "vnf-parameter-name": "vfw_int_protected_private_ip_0", + "vnf-parameter-value": "192.168.20.101" + }, + { + "vnf-parameter-name": "vfw_onap_private_ip_0", + "vnf-parameter-value": "10.0.100.5" + }, + { + "vnf-parameter-name": "vfw_int_protected_private_floating_ip", + "vnf-parameter-value": "192.168.10.200" + }, + { + "vnf-parameter-name": "vpg_int_unprotected_private_ip_0", + "vnf-parameter-value": "192.168.10.201" + }, + { + "vnf-parameter-name": "vpg_image_name", + "vnf-parameter-value": "ubuntu-14-04-cloud-amd6" + }, + { + "vnf-parameter-name": "vpg_flavor_name", + "vnf-parameter-value": "m1.medium" + }, + { + "vnf-parameter-name": "vpg_name_0", + "vnf-parameter-value": "zdfw1fwl01pgn01" + }, + { + "vnf-parameter-name": "vpg_onap_private_ip_0", + "vnf-parameter-value": "10.0.100.6" + }, + { + "vnf-parameter-name": "vsn_image_name", + "vnf-parameter-value": "ubuntu-14-04-cloud-amd6" + }, + { + "vnf-parameter-name": "vsn_flavor_name", + "vnf-parameter-value": "m1.medium" + }, + { + "vnf-parameter-name": "vsn_name_0", + "vnf-parameter-value": "zdfw1fwl01snk01" + }, + { + "vnf-parameter-name": "vsn_int_protected_private_ip_0", + "vnf-parameter-value": "192.168.20.251" + }, + { + "vnf-parameter-name": "vsn_onap_private_ip_0", + "vnf-parameter-value": "10.0.100.7" + }, + { + "vnf-parameter-name": "public_net_id", + "vnf-parameter-value": "07e85197-0f0a-45ca-8a6e-8eee47cec56b" + }, + { + "vnf-parameter-name": "unprotected_private_net_id", + "vnf-parameter-value": "zdfw1fwl01_unprotected" + }, + { + "vnf-parameter-name": "unprotected_private_net_cidr", + "vnf-parameter-value": "192.168.10.0/24" + }, + { + "vnf-parameter-name": "protected_private_net_id", + "vnf-parameter-value": "zdfw1fwl01_protected" + }, + { + "vnf-parameter-name": "protected_private_net_cidr", + "vnf-parameter-value": "192.168.20.0/24" + }, + { + "vnf-parameter-name": "onap_private_net_id", + "vnf-parameter-value": "OAM_NETWORK" + }, + { + "vnf-parameter-name": "onap_private_subnet_id", + "vnf-parameter-value": "OAM_SUBNET" + }, + { + "vnf-parameter-name": "onap_private_net_cidr", + "vnf-parameter-value": "10.0.0.0/16" + }, + { + "vnf-parameter-name": "vfw_name", + "vnf-parameter-value": "vFW_demo_VNF" + }, + { + "vnf-parameter-name": "vnf_id:", + "vnf-parameter-value": "vFirewall_demo_app" + }, + { + "vnf-parameter-name": "vf_module_id:", + "vnf-parameter-value": "vFirewall" + }, + { + "vnf-parameter-name": "dcae_collector_ip", + "vnf-parameter-value": "10.43.134.33" + }, + { + "vnf-parameter-name": "dcae_collector_port", + "vnf-parameter-value": "30417" + }, + { + "vnf-parameter-name": "demo_artifacts_version", + "vnf-parameter-value": "1.6.0-SNAPSHOT" + }, + { + "vnf-parameter-name": "install_script_version", + "vnf-parameter-value": "1.6.0-SNAPSHOT" + }, + { + "vnf-parameter-name": "key_name", + "vnf-parameter-value": "vfw_key" + }, + { + "vnf-parameter-name": "pub_key", + "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCofPKCypUIALLlSAa/INJZpnz6dPnTKuKkqO5Wxkv35PnHpXVmKit1iXNcy85+ceoMUrMre8O7SjIhdRklnOckW68WmkM9A+pFIFhxoKRfO0WR2/qZyXxM9WuQ5ESdXuBj5ydx7XlWWDtGTWF3wWxrFwob2EkWm+EXFrx18bNs8OqJF+1DDJfjLcC8kKgCwSKNcuRelDSBBaIrIDROdHi1r2AbdL/REZ4sprUTICVAhezX9mPowMX8Mr3ZuTxV9HpU43nlxfWxm9vDstyhiUMpYYCOWUfA/Gzxz/F1pli9L4MfpDsiwGaJtnnQ3vWiYRPZBTv+6h1miYlw4Fm7vJq9 aarna-onap" + }, + { + "vnf-parameter-name": "cloud_env", + "vnf-parameter-value": "openstack" + }, + { + "vnf-parameter-name": "sec_group", + "vnf-parameter-value": "default" + }, + { + "vnf-parameter-name": "nexus_artifact_repo", + "vnf-parameter-value": "https://nexus.onap.org" + } + ], + "vnf-topology-identifier": { + "generic-vnf-name": "vFW_demo_VNF", + "generic-vnf-type": "vFW_demo_service/vFW_demo 0", + "service-type": "f7c80167-ed06-48ef-a991-61b43196f98f", + "vnf-name": "lfn_vf_module", + "vnf-type": "VfwDemo..base_vfw..module-0" + } + } + } + }' + + Output looks somthing like below + {"output":{"svc-request-id":"test","response-code":"200","ack-final-indicator":"Y"}} + + E. Now click on Add VF-Module with the same name as updated through SDNC preload, click on SDN-C Preload + check box then press confirm + + |image28| + +You will get a status complete dialog message + +|image2| + + F. Click on close, now the following screen should appear + + |image19| + +5. Instantiate Network + + A. Prepare the “SDNC preload” data before creating network instance + + * network-role = integration_test_net (provide any value) + * network-technology = neutron (use “neutron” as this example will instantiate a network using openstack neutron application) + * service-type = vFW_demo_service (value must be equal to “Service Name” (=service model name) displayed on VID screen) + + |image5| + + * network-name = lfn_nwt_001 (value must be equal to the desired network instance name) + + |image7| + + * network-type = Generic NeutronNet (value must be equal to “Model Name”“Generic NeutronNet” displayed on VID screen) + + |image8| + + B. Run the below SDNC preload curl command + + .. code-block:: + + curl -k -X POST \ + https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-network-topology-operation \ + -H 'Accept: application/json' \ + -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \ + -H 'Content-Type: application/json' \ + -H 'X-FromAppId: API client' \ + -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \ + -H 'cache-control: no-cache' \ + -d '{ + "input": { + "request-information": { + "request-id": "postman001", + "notification-url": "http://so.onap.org", + "order-number": "postman001", + "request-sub-action": "SUPP", + "request-action": "PreloadNetworkRequest", + "source": "postman", + "order-version": "1.0" + }, + "network-topology-information": { + "network-policy": [], + "route-table-reference": [], + "vpn-bindings": [], + "network-topology-identifier": { + "network-role": "integration_test_net", + "network-technology": "neutron", + "service-type": "vFW_demo_service", + "network-name": "lfn_nwt_001", + "network-type": "Generic NeutronNet" + }, + "provider-network-information": { + "is-external-network": "false", + "is-provider-network": "false", + "is-shared-network": "false" + }, + "subnets": [ + { + "subnet-name": "test-subnet-001", + "subnet-role": "OAM", + "start-address": "10.0.0.11", + "cidr-mask": "16", + "ip-version": "4", + "dhcp-enabled": "Y", + "dhcp-start-address": "", + "dhcp-end-address": "", + "gateway-address": "10.0.0.1", + "host-routes":[] + } + ] + }, + "sdnc-request-header": { + "svc-action": "reserve", + "svc-notification-url": "http://so.onap.org", + "svc-request-id": "postman001" + } + } + } + ' + + Output looks something like below + {"output":{"svc-request-id":"postman001","response-code":"200","ack-final-indicator":"Y"}} + + C. Click on “Add Network” and select the Network you want to instantiate in the list + + |image12| + + D. Click Confirm, We will get a status complete dialog message + + |image14| + + E. Click close, the following screen should appear + + |image3| + + At this point, the Network and subnets are now instantiated in the cloud platform + +6. Now login to OpenStack Horizon dashboard, see stacks created in Openstack + + A. Go to Project → Orchestration → Stacks + We can see the VF module and Network stacks status + + |image23| + + B. Now we can go to Admin → Compute → Instances to check the instances status + + |image21| + + +.. |image4| image:: media/image4.png +.. |image11| image:: media/image11.png +.. |image22| image:: media/image22.png +.. |image13| image:: media/image13.png +.. |image17| image:: media/image17.png +.. |image10| image:: media/image10.png +.. |image1| image:: media/image1.png +.. |image24| image:: media/image24.png +.. |image15| image:: media/image15.png +.. |image29| image:: media/image29.png +.. |image9| image:: media/image9.png +.. |image6| image:: media/image6.png +.. |image18| image:: media/image18.png +.. |image16| image:: media/image16.png +.. |image25| image:: media/image25.png +.. |image20| image:: media/image20.png +.. |image26| image:: media/image26.png +.. |image27| image:: media/image27.png +.. |image28| image:: media/image28.png +.. |image2| image:: media/image2.png +.. |image19| image:: media/image19.png +.. |image5| image:: media/image5.png +.. |image7| image:: media/image7.png +.. |image8| image:: media/image8.png +.. |image12| image:: media/image12.png +.. |image14| image:: media/image14.png +.. |image3| image:: media/image3.png +.. |image23| image:: media/image23.png +.. |image21| image:: media/image21.png + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png Binary files differnew file mode 100644 index 000000000..9a436a562 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image1.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png Binary files differnew file mode 100644 index 000000000..570ad8cd9 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image10.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png Binary files differnew file mode 100644 index 000000000..9e7b8415d --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image11.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png Binary files differnew file mode 100644 index 000000000..ace4b578e --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image12.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png Binary files differnew file mode 100644 index 000000000..58052a16b --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image13.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png Binary files differnew file mode 100644 index 000000000..10802bb1c --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image14.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png Binary files differnew file mode 100644 index 000000000..2421422a9 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image15.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png Binary files differnew file mode 100644 index 000000000..41402574a --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image16.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png Binary files differnew file mode 100644 index 000000000..f3cd0551c --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image17.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png Binary files differnew file mode 100644 index 000000000..202870d17 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image18.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png Binary files differnew file mode 100644 index 000000000..588bdf9a4 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image19.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png Binary files differnew file mode 100644 index 000000000..3c473a492 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image2.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png Binary files differnew file mode 100644 index 000000000..e0a518868 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image20.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png Binary files differnew file mode 100644 index 000000000..deee9b45c --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image21.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png Binary files differnew file mode 100644 index 000000000..b757cd2de --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image22.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png Binary files differnew file mode 100644 index 000000000..b46209a98 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image23.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png Binary files differnew file mode 100644 index 000000000..35f60af5a --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image24.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png Binary files differnew file mode 100644 index 000000000..c80cf7ace --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image25.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png Binary files differnew file mode 100644 index 000000000..0057a5742 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image26.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png Binary files differnew file mode 100644 index 000000000..864809ef5 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image27.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png Binary files differnew file mode 100644 index 000000000..971ab49ed --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image28.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png Binary files differnew file mode 100644 index 000000000..3f70ea3b3 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image29.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png Binary files differnew file mode 100644 index 000000000..5dd1626ba --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image3.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png Binary files differnew file mode 100644 index 000000000..2fd589510 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image4.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png Binary files differnew file mode 100644 index 000000000..acf13703f --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image5.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png Binary files differnew file mode 100644 index 000000000..b15d9eb8f --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image6.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png Binary files differnew file mode 100644 index 000000000..08212e5c6 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image7.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png Binary files differnew file mode 100644 index 000000000..8a8f5ebf0 --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image8.png diff --git a/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png b/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png Binary files differnew file mode 100644 index 000000000..8c8691c0f --- /dev/null +++ b/docs/guides/onap-user/vfw-deployment-tutorial/media/image9.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/index.rst b/docs/guides/onap-user/vfwcl-design-tutorial/index.rst new file mode 100644 index 000000000..db68382e0 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/index.rst @@ -0,0 +1,251 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. http://creativecommons.org/licenses/by/4.0 +.. Copyright © 2017-2020 Aarna Networks, Inc. + +vFWCL Design Tutorial +##################### + +The instructions in this section will enable you to design the vFW Control Loop. The prerequisite for this tutorial is that the +vFW_service design/deployment/instantiation should be completed. + +Control Loop Flow +================= + +This section describes the vFW control loop flow and the modules involved. Following is the list of modules +that are involved in designing and deploying the vFW CL + + 1) SDC: The first step of the procedure is to distribute the DCAE (TCA microservice) blueprint. That is done through ONAP SDC. + 2) CLAMP: This is a tool for designing the policy and configuring the TCA threshold. CLAMP, along with DCAE, can also be used + to manage the lifecycle of CLs + 3) DCAE (platform and micro services): Multiple components of the DCAE module get involved in the overall lifecycle of the CL. + 4) TCA: The CDAP threshold controlling application is a DCAE microservice. + 5) ONAP Policy engine: The output of DCAE is sent to the Policy engine as an input event. We will use the DROOLS Policy engine. + 6) APPC : The last hop in the CL, which takes the config action on the vPG on the output of the Policy engine. + +Distribute DCAE blueprints +========================== + +In order to distribute the DCAE microservice blueprints we need to create a dummy service. The DCAE blueprint will be added as an artifact +to the VF inside the service during service composition time. + +Follow the below steps to upload the blueprint for the TCA (Threshold Checking Application) DCAE microservice and Distribute the service to the CLAMP + +The following screenshot of the setup shows where “dcae_service” has been created and is in the composition phase. + +.. note:: + The service name should not contain any spaces. The DCAE policy fails to fetch the service from PDP if the name has a space. + For example ‘dcae1’ will work and ‘dcae 1’ will not. + +1. Login as DESIGNER (cs0008) and create the service, checkin and certify + +|image16| + +2. Add any VNF (ex: vfw_pg) that was already created during the SDC design phase + +In the composition canvas drag and drop a resource of type VF from the abstract section in the Elements section (left hand side panel) + +|image15| + +3. Download the required DCAE MS blueprint to be attached to the service + +Use the sample TCA blueprint located here: +https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-tcagen2-clampnode.yaml + +.. note:: + * Check if the version of the plugin used in the blueprint is different from existing, then update the blueprint import to match + * To check the version run this: `cfy plugins list | grep k8splugin` + +4. Now upload the Control Loop Artifact. The procedure to upload the artifact is + + * Click on the VF, as in the picture above the ‘vsp_pg 0’ is selected + * Click on ‘DEPLOYMENT ARTIFACTS’ and then click on “Add Artifact” + + |image5| + + * Fill the details and in the type select DCAE_INVENTORY_BLUEPRINT, then click on Done as in the picture shown below + + |image13| + +5. After uploading the DCAE artifact to the SDC Service, attach the policy model to the Service. From the left drop down, +select TCA policy under Policies, and click on the Add policy + +|image1| + +6. Click on Checkin on top right corner then click OK + +|image12| + +7. Search and select the same service from CATALOG and click on Certify on top right corner + +|image14| + +8. Click Distribute to distribute the service, then click on Distribution in the left hand side panel and monitor until +the distribution is complete. We should see artifacts deployed in CLAMP and Policy engine, as can be seen in the picture below + +|image19| + +At this point we can open the CLAMP GUI and verify that the DCAE microservice design template is in place + +DCAE MS design in CLAMP +======================= + +CLAMP is a GUI tool which enables the users to design the policies, distribute them to the DROOLS engine and eventually deploy +the DCAE microservices. In this section we are going to design, distribute and deploy the BRMS (DROOLS) and TCA policy. + +Clamp uses AAF to authenticate the user and get the different permissions. In order to access the CLAMP GUI we will need to add the certificate. + +1. Add the necessary certificates in the browser + +The default certificate can be found here: https://gerrit.onap.org/r/gitweb?p=clamp.git;a=blob;f=src/main/resources/clds/aaf/org.onap.clamp.p12;h=268aa1a3ce56e01448f8043cc0b05b5fceb5a47d;hb=HEAD + +The password is: "China in the Spring" +The certificate must be loaded into your favorite browser before trying to load the CLAMP UI. + +Ex: In case of Firefox browser, below is the procedure on how to add the certificate + +Open firefox browser and go to Preferences and search for Certificate Manager and Select “View Certificates“ button. +This will open the following dialog to import certificate files from Your certificates menu. + +You need to go in options->Privacy & Security-> Scroll down to Certificates options a View Certificates Button +and then Your certificates Tab -> Then Import button + +|image6| + +2. After the certificate is added, the CLAMP GUI can be accessed at: +`https://<host_IP>:30258` (host_IP is the node IP where CLAMP is running) + +3. Before designing the policy we need to undeploy the default tca policy. +To undeploy default policy execute the below commands on control node + +.. code-block:: + + > kubectl get deployments -n onap | grep "dep-dcae-tca-analytics\|dcaegen2-analytics-tca" | awk '{print $1}' | + xargs kubectl delete deployments -n onap + > kubectl get svc -n onap | grep "dcae-tca-analytics\|dcaegen2-analytics-tca" | awk '{print $1}' | + xargs kubectl delete svc -n onap + To Verify there are no dcae-analytics POD, run the below command + > kubectl get pods -n onap | grep 'analytics' + +4. If the service has been distributed correctly, following is how the service design templates +listed in the Loop Templates as below + +|image7| + +Available Policy Models + +|image10| + +5. Create the loop from the templates distributed by SDC + +|image4| + +|image20| + +6. Add the Operational Policy +Click on Loop Instance drop down and select Modify then click, select the policy model type then click Add + +|image9| + +|image3| + +7. Click on the MS application box and configure +Fill the details in the pop up window and click on the save changes button. + + A. Click on app and Edit the Policy details, fill the below details + + * eventName: vFirewallBroadcastPackets + * policyScope: DCAE + * policyVersion: v0.0.1 + * Select controlLoopSchemaType as VM + * policyName: DCAE.Config_tca-hi-lo + * Select Pdp Group Info from the drop down as defaultGroup & xacm + + |image17| + + B. Click on the Add monitoring threshold1 button and fill the below details + + * version : 1.0.2 + * closedLoopControlName : name of the CL (ex: LOOP_TEMPLATE_mytest_srv_v1_0_vsp_pg0_k8s-tca) + * select the direction from dropdown (ex: LESS) + + |image11| + + C. Click on the Add monitoring threshold2 button and fill the details same as above then click on Save Changes button + + |image24| + +8. Click on the Operational policy box and configure +Fill the details in the pop window then click on save changes + +|image22| + +|image18| + +9. Submit the control loop to the policy +From Loop Operations drop down select SUBMIT and click + +|image23| + +10. Deploy the control loop to DCAE +From Loop Operations drop down select DEPLOY and click, verify the details and click Deploy + +|image2| + +|image8| + +Status Logs + +|image21| + +A successful deployment will make the service as DEPLOYED + +11. You can login into the control node and verify whether your new analytics application got deployed using below command + +.. code-block:: + + > kubectl get pods -n onap | grep analytics + Sample output + dep-dcae-tca-analytics-7fccbf459-xkxlq 2/2 Running 0 6m15s + + > cfy deployment list | grep CLAMP + Sample output + | CLAMP_615bb47a-ea3e-4a02-8928-0564df900826 | CLAMP_615bb47a-ea3e-4a02-8928-0564df900826 | 2020-11-10 19:23:22.286 | + 2020-11-10 19:23:22.286 | tenant | default_tenant | admin | + + +.. |image16| image:: media/image16.png +.. |image15| image:: media/image15.png +.. |image5| image:: media/image5.png +.. |image13| image:: media/image13.png +.. |image1| image:: media/image1.png +.. |image12| image:: media/image12.png +.. |image14| image:: media/image14.png +.. |image19| image:: media/image19.png +.. |image6| image:: media/image6.png +.. |image7| image:: media/image7.png +.. |image10| image:: media/image10.png +.. |image4| image:: media/image4.png +.. |image20| image:: media/image20.png +.. |image9| image:: media/image9.png +.. |image3| image:: media/image3.png +.. |image17| image:: media/image17.png +.. |image11| image:: media/image11.png +.. |image24| image:: media/image24.png +.. |image22| image:: media/image22.png +.. |image18| image:: media/image18.png +.. |image23| image:: media/image23.png +.. |image2| image:: media/image2.png +.. |image8| image:: media/image8.png +.. |image21| image:: media/image21.png + + + + + + + + + + + + diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png Binary files differnew file mode 100644 index 000000000..c0b5dc668 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image1.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png Binary files differnew file mode 100644 index 000000000..952b3e0f0 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image10.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png Binary files differnew file mode 100644 index 000000000..9618c3a3a --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image11.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png Binary files differnew file mode 100644 index 000000000..9cc9373d2 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image12.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png Binary files differnew file mode 100644 index 000000000..797b961e0 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image13.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png Binary files differnew file mode 100644 index 000000000..5f974d776 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image14.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png Binary files differnew file mode 100644 index 000000000..58827b12c --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image15.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png Binary files differnew file mode 100644 index 000000000..e2c0595d9 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image16.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png Binary files differnew file mode 100644 index 000000000..fdeb56f8d --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image17.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png Binary files differnew file mode 100644 index 000000000..e29b3cf96 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image18.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png Binary files differnew file mode 100644 index 000000000..bb314752b --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image19.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png Binary files differnew file mode 100644 index 000000000..10a034744 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image2.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png Binary files differnew file mode 100644 index 000000000..675fa1cdc --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image20.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png Binary files differnew file mode 100644 index 000000000..1e6f052c7 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image21.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png Binary files differnew file mode 100644 index 000000000..3844ef458 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image22.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png Binary files differnew file mode 100644 index 000000000..7f8869ec2 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image23.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png Binary files differnew file mode 100644 index 000000000..dea4d33cb --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image24.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png Binary files differnew file mode 100644 index 000000000..54f7c48a4 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image3.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png Binary files differnew file mode 100644 index 000000000..aeb403cce --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image4.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png Binary files differnew file mode 100644 index 000000000..76d3147a8 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image5.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png Binary files differnew file mode 100644 index 000000000..5c57abe17 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image6.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png Binary files differnew file mode 100644 index 000000000..f42969be1 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image7.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png Binary files differnew file mode 100644 index 000000000..552d69c64 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image8.png diff --git a/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png b/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png Binary files differnew file mode 100644 index 000000000..25bffb498 --- /dev/null +++ b/docs/guides/onap-user/vfwcl-design-tutorial/media/image9.png |