Installation
SON handler microservice can be deployed using cloudify blueprint using bootstrap container of an existing DCAE deployment
Deployment Prerequisites
SON-Handler service requires DMAAP and Policy components to be functional.
SON-hadler service requires the following dmaap topics to be present in the running DMAAP instance :
1.PCI-NOTIF-TOPIC-NGHBR-LIST-CHANGE-INFO
2.unauthenticated.SEC_FAULT_OUTPUT
3.unauthenticated.SEC_MEASUREMENT_OUTPUT
4.DCAE_CL_RSP
Policy model required for SON-handler service should be created and pushed to policy component. Steps for creating and pushing the policy model:
1.Login to PDP container and execute
kubectl exec -ti --namespace onap policy-pdp-0 bash
2.Create policy model
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyName": "com.PCIMS_CONFIG_POLICY", "configBody": "{ \"PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS\":60, \"PCI_MODCONFIG_POLICY_NAME\":\"ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459\", \"PCI_OPTMIZATION_ALGO_CATEGORY_IN_OOF\":\"OOF-PCI-OPTIMIZATION\", \"PCI_SDNR_TARGET_NAME\":\"SDNR\" }", "policyType": "Config", "attributes" : { "matching" : { "key1" : "value1" } }, "policyConfigType": "Base", "onapName": "DCAE", "configName": "PCIMS_CONFIG_POLICY", "configBodyType": "JSON" }' 'https://pdp:8081/pdp/api/createPolicy'
3.Push policy model
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyName": "com.PCIMS_CONFIG_POLICY", "policyType": "Base"}' 'https://pdp:8081/pdp/api/pushPolicy'
4.Verify config policy is present
curl -k -v --silent -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "configName": "PCIMS_CONFIG_POLICY", "policyName": "com.Config_PCIMS_CONFIG_POLICY1*", "requestID":"e65cc45a-9efb-11e8-98d0-529269ffa459" }' 'https://pdp:8081/pdp/api/getConfig'
Deployment steps
- 1.Using DCAE Dashboard
Login to DCAE Dashboard (https://{k8s-nodeip}:30418/ccsdk-app/login_external.htm)
Go to Inventory –> Blueprints
Click on Deploy Action for son-handler blueprint
Override the value of ‘tag_version’ to ‘nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:2.1.5’ and click deploy.
Deployment logs can be viewed under Deployments section
2.Using cloudify commands
- Login to the bootstrap container
kubectl exec -ti –namespace onap <bootstrap pod name> bash
The blueprint can be found under dcaegen2 blueprint repo and is part of bootstrap container. (https://gerrit.onap.org/r/dcaegen2/platform/blueprints)
- Deploy the microservice into the cloudify using the following command
cfy install -d sonhms -b sonhms <blueprint file path>
- Deployment status of the microservice can be found from kubernetes pods status (MS will be deployed as a k8s pod in the kubernetes environment under the same namespace as the DCAE environment).
kubectl get pods –namespace onap
- To uninstall the microservice
cfy uninstall sonhms
- To delete the blueprint from the cloudify instance
cfy blueprints delete sonhms
Application Configurations
Configuration |
Description |
---|---|
Streams_subscribes |
Dmaap topics that the MS will consume messages |
Streams_publishes |
Dmaap topics that the MS will publish messages |
postgres.host |
Host where the postgres database is running |
postgres.port |
Host where the postgres database is running |
postgres.username |
Postgres username |
postgres.password |
Postgres password |
sonhandler.pollingInterval |
Polling Interval for consuming dmaap messages |
sonhandler.pollingTimeout |
Polling timeout for consuming dmaap messages |
sonhandler.numSolutions |
Number for solutions for OOF optimization |
sonhandler.minCollision |
Minimum collision criteria to trigger OOF |
sonhandler.minConfusion |
Minimum confusion criteria to trigger OOF |
sonhandler.maximumClusters |
Maximum number of clusters MS can process |
sonhandler.badThreshold |
Bad threshold for Handover success rate |
sonhandler.poorThreshold |
Poor threshold for Handover success rate |
sonhandler.namespace |
Namespace where MS is going to be deployed |
sonhandler.sourceId |
Source ID of the Microservice (to OOF) |
sonhandler.dmaap.server |
Location of message routers |
sonhandler.bufferTime |
Buffer time for MS to wait for notifications |
sonhandler.cg |
DMAAP Consumer group for subscription |
sonhandler.cid |
DMAAP Consumer id for subcription |
sonhandler.configDbService |
Location of config DB (protocol, host & port) |
sonhandler.oof.service |
Location of OOF (protocol, host & port) |
sonhandler.optimizers |
Optimizer to trigger in OOF |
sonhandler.poorCountThreshold |
Threshold for number of times poorThreshold can be recorded for the cell |
sonhandler.badCountThreshold |
Threshold for number of times badThreshold can be recorded for the cell |
sonhandler. oofTriggerCountTimer |
Timer for oof triggered count in minutes |
sonhandler.policyRespTimer |
Timer to wait for notification from policy |
sonhandler. policyNegativeAckThreshold |
Maximum number of negative acknowledgements from policy for a given cell |
sonhandler. policyFixedPciTimeInterval |
Time interval to trigger OOF with fixed pci cells |
sonhandler.nfNamingCode |
Parameter to filter FM and PM notifications coming from ves |