Overview
Architecture Diagram
Artifacts
Βlueprint (deployment artifact) :
Input file (deployment input) :
Docker image : nexus3.onap.org:10001/onap/<>
Deployment Prerequisite/dependencies
Deployment Steps
Deployment of Tca-gen2 can be done using Dashboard UI or CloudifyUI or via CLI. Below steps are based on CLI.
- Transfer blueprint component file in DCAE bootstrap POD under /blueprints directory
- Transfer blueprint component inputs file in DCAE bootstrap POD under / directory
- Log-in to the DCAE bootstrap POD's main container
Validate blueprint
Validate Blueprintcfy blueprints validate /blueprints/k8s-tca-gen2.yaml
Verify Plugin versions in target Cloudify instance match to blueprint imports
Verify Plugin versioncfy plugins list
If the version of plugin used are different, update the blueprint import to match.
Deploy Service
Upload and deploy blueprintcfy install -b tca-gen2 -d tca-gen2 -i /k8s-tca-gen2-inputs.yaml /blueprints/k8s-tca-gen2.yaml
To un-deploy
Uninstall running component and delete deployment
Uninstall componentcfy uninstall tca-gen2
Delete blueprint
Delete blueprintcfy blueprints delete tca-gen2
Initial Validation
After deployment, verify if tca-gen2 POD and mongoDB pod are running correctly
root@k8s-rancher:~# kubectl get pods -n onap | egrep "tca-gen2|mongoDB"
And then check the logs to see if it can connect to DMaaP, polling for events.
kubectl logs -f -n onap dep-dcae-tca-gen2-service-5ff7558fd-4nt6z dcae-tca-gen2-service . .
Functional tests
Following default configuration is loaded into tca-gen2 (set in blueprint configuration)
To simulate the event flow and trigger missing tca-gen2 event, we can simulate a VES event into tca-gen2 subscription topic (using curl).
Generate tca-gen2 CL Onset
Send a triggering event to DMaaP topic unauthenticated.SEC_tca-gen2_OUTPUT
Before sending, validate following
- Correct DMaaP address
- "eventName" field in VES input matches eventName configuration set in tca-gen2 Service
- "lastEpochMicrosec" in reflecting current time stamp approximately
curl -X POST http://10.12.5.8:30227/events/unauthenticated.SEC_tca-gen2_OUTPUT -H 'Content-Type: application/json' -d '{ "event": { "commonEventHeader": { "startEpochMicrosec": 1556753402000, "sourceId": "79e90d76-513a-4f79-886d-470a0037c5cf", "eventId": "tca-gen2_vDNS_10.0.0.1", "nfcNamingCode": "DNS", "reportingEntityId": "79e90d76-513a-4f79-886d-470a0037c5cf", "eventType": "applicationVnf", "priority": "Normal", "version": 3, "reportingEntityName": "testcmd001", "sequence": 36312, "domain": "tca-gen2", "lastEpochMicrosec": 1556753402000, "eventName": "tca-gen2_vDNS", "sourceName": "testnode001", "nfNamingCode": "MDNS" } } }'
We can check that a new DCAE_CL_OUTPUT event has been published (make sure you target the correct DMaaP IP address)
curl http://10.12.5.8:30227/events/unauthenticated.DCAE_CL_OUTPUT/vv/1
["{\"closedLoopEventClient\": \"DCAE_tca-gen2_MS\", \"policyVersion\": \"1.0.0.5\", \"policyName\": \"vFireWall\", \"policyScope\": \"resource=sampleResource,type=sampletype,CLName=sampleCLName\", \"target_type\": \"VNF\", \"AAI\": {\"generic-vnf.vnf-name\": \"testnode001\"}, \"closedLoopAlarmStart\": 1556768124419, \"closedLoopEventStatus\": \"ONSET\", \"closedLoopControlName\": \"ControlLoopEvent1\", \"version\": \"1.0\", \"target\": \"genVnfName\", \"requestID\": \"8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc\", \"from\": \"DCAE\"}"]
Generate tca-gen2 CL Abatement Event
Send a triggering event to DMaaP topic unauthenticated.SEC_tca-gen2_OUTPUT
Before sending, validate following
- Correct DMaaP address
- "eventName" field in VES input matches eventName configuration set in tca-gen2 Service
- "lastEpochMicrosec" in reflecting current time stamp approximately
- Ensure the event is on the same "sourceName" as original event sent
curl -X POST http://10.12.5.8:30227/events/unauthenticated.SEC_tca-gen2_OUTPUT -H 'Content-Type: application/json' -d '{ "event": { "commonEventHeader": { "startEpochMicrosec": 1556768319000, "sourceId": "79e90d76-513a-4f79-886d-470a0037c5cf", "eventId": "tca-gen2_vDNS_10.0.0.1", "nfcNamingCode": "DNS", "reportingEntityId": "79e90d76-513a-4f79-886d-470a0037c5cf", "eventType": "applicationVnf", "priority": "Normal", "version": 3, "reportingEntityName": "testcmd001", "sequence": 36312, "domain": "tca-gen2", "lastEpochMicrosec": 1556768319000, "eventName": "tca-gen2_vDNS", "sourceName": "testnode001", "nfNamingCode": "MDNS" } } }'
We can check that a new DCAE_CL_OUTPUT event has been published (make sure you target the correct DMaaP IP address)
curl http://10.12.5.8:30227/events/unauthenticated.DCAE_CL_OUTPUT/vv/1
["{\"closedLoopEventClient\": \"DCAE_tca-gen2_MS\", \"policyVersion\": \"1.0.0.5\", \"policyName\": \"vFireWall\", \"policyScope\": \"resource=sampleResource,type=sampletype,CLName=sampleCLName\", \"target_type\": \"VNF\", \"AAI\": {\"generic-vnf.vnf-name\": \"testnode001\"}, \"closedLoopAlarmStart\": 1556768386209, \"closedLoopEventStatus\": \"ABATED\", \"closedLoopControlName\": \"ControlLoopEvent1\", \"version\": \"1.0\", \"target\": \"genVnfName\", \"requestID\": \"8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc\", \"from\": \"DCAE\"}"]
Dynamic Configuration Update
As the tca-gen2 service periodically polls Consul KV using configbindingService api's - the run time configuration of tca-gen2 service can be updated dynamically without having to redeploy/restart the service. The updates to configuration can be triggered either from Policy (or CLAMP) or made directly in Consul.
Locate the servicename by executing into tca-gen2 Service pod and getting env HOSTNAME value
root@k8s-rancher:~# kubectl exec -it -n onap dep-s78f36f2daf0843518f2e25184769eb8b-dcae-tca-gen2-servithzx2 /bin/bash Defaulting container name to s78f36f2daf0843518f2e25184769eb8b-dcae-tca-gen2-service. Use 'kubectl describe pod/dep-s78f36f2daf0843518f2e25184769eb8b-dcae-tca-gen2-servithzx2 -n onap' to see all of the containers in this pod. misshtbt@s78f36f2daf0843518f2e25184769eb8b-dcae-tca-gen2-service:~/bin$ env | grep HOSTNAME HOSTNAME=s78f36f2daf0843518f2e25184769eb8b-dcae-tca-gen2-service
Change the configuration for Service in KV-store through UI
http://<k8snodeip>:30270/ui/#/dc1/kv/
Consul Snapshot <>