Versions Compared

Key

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

ONAP Casablanca Release delivers platform capabilities that support scaling up resources. The use case has been designed and implemented to fully take advantage of existing functionalities, using newer APIs and technologies whenever possible. Compared to the previous version delivered for Beijing, which supported only manual trigger and one VNF type, the new use case adds:

...

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).


Scale out with manual trigger

Image Added

Closed loop-enabled scale out

Image Added          


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><ANY K8S VM IP ADDRESS>: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

...


3) When

...

distributing the closed loop from CLAMP to policy if we get error as - policy send failed PE300: Invalid template, the

...

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

template name closedLoopControlName was not found in the dictionary. 

For proper operation via CLAMP, the rules template need to be uploaded to Policy. This can be achieved by executing the push-policies.sh script before creating the Control Loop via CLAMP:

kubectl get pods -n onap -o wide | grep policy | grep pap # identify the PAP pop
kubectl exec -it <pap-pod> -c pap -n onap -- bash -c "/tmp/policy-install/config/push-policies.sh"

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:

...

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

Configuration parameters for CDT: parameters_vLB.yaml

VNF interface for CDT: Vloadbalancerms..dnsscaling..module-1.xml


AAI API to set Availability Zone:

  • CloudOwner is the cloud-owner object in AAI

  • RegionOne is the cloud-region-id in AAI
  • AZ1 is the name of the Availability Zone
Code Block
languagetext
titleAAI Availability Zone
curl -X PUT \
  https://10.12.7.29:30233/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/availability-zones/availability-zone/AZ1 \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 4fe938e9-28d7-4956-8822-e01b6f27a894' \
  -H 'X-FromAppId: AAI' \
  -H 'X-TransactionId: get_aai_subscr' \
  -H 'cache-control: no-cache' \
  -d '{
	"availability-zone-name": "AZ1",
	"hypervisor-type": "hypervisor"
}'


VID API to enable scale out for a given VNF:

  • UUID is the VNF model version ID in the CSAR file
  • invariantUUID is the VNF model invariant ID in the CSAR file
Code Block
languagetext
firstline1
titleVID API
curl -X POST \
  https://<ANY K8S VM IP ADDRESS>:30200/vid/change-management/vnf_workflow_relation \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 7086e3eb-f6a9-416c-85f9-6c99ae7c2c02' \
  -H 'cache-control: no-cache' \
  -d '{
   "workflowsDetails":[
      {
         "workflowName":"VNF Scale Out",
         "vnfDetails":{
            "UUID":"d5c2aff0-d2bc-401e-8277-fd90c1351b0e",
            "invariantUUID":"cdc1ac36-a3c9-41e8-872b-10d02a6eded1"
         }
      }
   ]
}'


Configuration parameters:

...

[{"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":[]}'

...