Versions Compared

Key

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

...

  • A design phase in which users define and deploy policies and closed-loops from CLAMP;
  • Closed-loop- and Policy-based automation;
  • Guard policies that allow/deny scale out operations based on frequency limits or max number of instances already scaled;
  • New and improved workflow that leverages SO ability to compose building blocks on the fly;
  • Use of Generic Resource APIs for VNF instantiation and lifecycle management (as opposed to the old VNF APIs);
  • VNF health check;
  • Support for multiple VNF types;
  • Support for multiple VNF controllers, i.e. APPC (officially supported) and SDNC (experimental);
  • Ability to define lifecycle management configuration from CLAMP (automated trigger) or VID (manual trigger).

 This This is a different kind of Use Case for ONAP that Integrates many of the projects to show how they can work together to perform a complex but essential activity.

The use case has been successfully demonstrated against docker images released for Casablanca, using the vLB/vDNS VNFs available in the Demo repository in Gerrit (https://gerrit.onap.org/r/gitweb?p=demo.git;a=tree;f=heat/vLBMS;h=37f803e33c6e1e41c3e7c5b009feeb7e3e1953d0;hb=refs/heads/casablanca).

Known Issues and Resolutions

1) When running closed loop-enabled scale out, the closed loop designed in CLAMP

...

conflicts with the default closed loop defined for the old vLB/vDNS use case

Resolution: Change TCA configuration for the old vLB/vDNS use case

  • Connect to Consul: http://<Cluster IP>:30270 and click on "Key/Value" → "dcae-tca-analytics"
  • Change "eventName" in the vLB default policy to something different, for example "vLB" instead of the default value "vLoadBalancer"
  • Change "subscriberConsumerGroup" in the TCA configuration to something different, for example "OpenDCAE-c13" instead of the default value "OpenDCAE-c12"
  • Click "UPDATE" to upload the new TCA configuration


2) When running closed loop-enabled scale out, the permitAll guard policy conflicts with the scale out guard policy

Resolution: Undeploy the permitAll guard policy


3) When using SDNC, the JSON template for DMaaP messages has a wrong "input" field

Resolution: Replace the "input" field in the JSON template with "output"

  • Connect to the SDNC container from the Rancher VM in the Kubernetes cluster, for example kubectl exec -it -n onap dev-sdnc-sdnc-0 bash
  • Install your favorite text editor, for example apt-get update; apt-get install vim -y
  • Open /opt/onap/sdnc/restapi/templates/lcm-dmaap-publish-template.json and replace "input" with "output" in the JSON object body

  • Save the changes

  • If SDNC is deployed in cluster mode (3 SDNC replicas, dev-sdnc-sdnc-0, dev-sdnc-sdnc-1, dev-sdnc-sdnc-2), apply the same change to all the replicas in the cluster



Videos:

These videos provide a detailed documentation of how to run scale out use case using manual or automated (i.e. closed loop-enabled) trigger:

part1.mp4

part2.mp4

part3.mp4

Material Used for the Demo

Heat templates for the vLB/vDNS VNFs: vLBMS.zip

DCAE Blueprint: tca_docker_k8s_v4.yaml

SDNC preload for the base VNF: base_preload.txt

SDNC preload of the scaling VF module (must be updated for each VF module): scaleout_preload.txt

Example of SDNC VF module topology to define a JSON path to configuration parameters for scale out: sdnc_resource_example.txt


Configuration parameters:

Define a JSON path to "vdns_private_ip_0", "vdns_private_ip_1", and "enabled". Use the following formats for VID and Policy:

VID:

[{"ip-addr":"$.vf-module-topology.vf-module-parameters.param[10].value","oam-ip-addr":"$.vf-module-topology.vf-module-parameters.param[15].value","enabled":"$.vf-module-topology.vf-module-parameters.param[22].value"}]

 

POLICY:

requestParameters: '{"usePreload":true,"userParams":[]}'

configurationParameters: '[{"ip-addr":"$.vf-module-topology.vf-module-parameters.param[10].value","oam-ip-addr":"$.vf-module-topology.vf-module-parameters.param[15].value","enabled":"$.vf-module-topology.vf-module-parameters.param[22].value"}]'