BBS Documentation (Frankfurt)

System View

System Set up 

SO

Custom Workflow Configuration

SO Custom Workflow Configuration
~/oom/kubernetes# kubectl edit cm dev-so-bpmn-infra-app-configmap

## replace "workflow:\n    CreateGenericVNFV1:\n"
## with "workflow:\n    custom:\n        BBS_E2E_Service:\n            sdnc:\n                need: true\n    CreateGenericVNFV1:\n"

## Restart the pod
~/oom/kubernetes# kubectl delete po dev-so-so-bpmn-infra-7556d7f6bc-8fthk

Beware: The spaces in the code segment above should be exactly as shown, otherwise SO BPMN infra POD will crash upon bring-up.


Mapping between resource model and BPMN template: SO : How it works between API and BPMN

As shown below, new entries need to be inserted manually in SO database (mariadb-galera) in order to map a given resource model to a specific BPMN recipe. For instance, the CPE is modeled in SDC as a VF but it is treated as PNF resource by SO by using the handlePNF BPMN recipe. Those entries need to be inserted in catalogdb database > vnf_recipe table.

IMPORTANT: make sure vnf_recipe.NF_ROLE matches vnf_resource.MODEL_NAME, and vnf_recipe.VERSION_STR matches vnf_resource.MODEL_VERSION.

## Fetch mariadb root password
root@onap-rancher-daily:/home/ubuntu# kubectl get secrets/dev-mariadb-galera-db-root-password --template={{.data.password}} | base64 -d

root@onap-rancher-daily:/home/ubuntu# kubectl exec -ti dev-mariadb-galera-0 sh
sh-4.2$ mysql -u root -p
MariaDB [(none)]> use catalogdb;
MariaDB [catalogdb]> INSERT INTO vnf_recipe (NF_ROLE, ACTION, SERVICE_TYPE, VERSION_STR, DESCRIPTION, ORCHESTRATION_URI, VNF_PARAM_XSD, RECIPE_TIMEOUT) 
VALUES 
	("InternetProfile", "createInstance", "NF", "1.0", "create InternetProfile", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"InternetProfile"}', 180000),
	("AccessConnectivity", "createInstance", "NF", "1.0", "create AccessConnectivity", "/mso/async/services/CreateSDNCNetworkResource", '{"operationType":"AccessConnectivity"}', 180000),
	("CPE", "createInstance", "NF", "1.0", "create CPE", "/mso/async/services/HandlePNF", NULL, 180000);

MariaDB [catalogdb]> select * from vnf_recipe where NF_ROLE IN ('AccessConnectivity','InternetProfile', 'CPE');
+-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
| id    | NF_ROLE            | ACTION         | SERVICE_TYPE | VERSION_STR | DESCRIPTION               | ORCHESTRATION_URI                             | VNF_PARAM_XSD                          | RECIPE_TIMEOUT | CREATION_TIMESTAMP  | VF_MODULE_ID |
+-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
| 10048 | InternetProfile    | createInstance | NF           | 1.0         | create InternetProfile    | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"InternetProfile"}    |        1800000 | 2020-01-20 17:43:07 | NULL         |
| 10051 | AccessConnectivity | createInstance | NF           | 1.0         | create AccessConnectivity | /mso/async/services/CreateSDNCNetworkResource | {"operationType":"AccessConnectivity"} |        1800000 | 2020-01-20 17:43:07 | NULL         |
| 10054 | CPE                | createInstance | NF           | 1.0         | create CPE                | /mso/async/services/HandlePNF                 | NULL                                   |        1800000 | 2020-01-20 17:43:07 | NULL         |
+-------+--------------------+----------------+--------------+-------------+---------------------------+-----------------------------------------------+----------------------------------------+----------------+---------------------+--------------+
3 rows in set (0.00 sec)

DMaaP Message Router

Create required topics

unauthenticated.DCAE_CL_OUTPUT
curl -kX POST \
  https://mr.api.simpledemo.openecomp.org:30226/topics/create \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
	"topicName": "unauthenticated.DCAE_CL_OUTPUT",
	"topicDescription": "",
	"partitionCount": "",
	"replicationCount": "3"
}'
unauthenticated.CPE_AUTHENTICATION
curl -kX POST \
  https://mr.api.simpledemo.openecomp.org:30226/topics/create \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
	"topicName": "unauthenticated.CPE_AUTHENTICATION",
	"topicDescription": "",
	"partitionCount": "",
	"replicationCount": "3"
}'
unauthenticated.PNF_READY
curl -kX POST \
  https://mr.api.simpledemo.openecomp.org:30226/topics/create \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
	"topicName": "unauthenticated.PNF_READY",
	"topicDescription": "",
	"partitionCount": "",
	"replicationCount": "3"
}'
unauthenticated.PNF_UPDATE
curl -kX POST \
  https://mr.api.simpledemo.openecomp.org:30226/topics/create \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
	"topicName": "unauthenticated.PNF_UPDATE",
	"topicDescription": "",
	"partitionCount": "",
	"replicationCount": "3"
}'
Check list of topics in DMaaP
curl -k 'https://mr.api.simpledemo.openecomp.org:30226/topics'

{
    "topics": [
        "org.onap.dmaap.mr.PNF_REGISTRATION",
        "unauthenticated.DCAE_CL_OUTPUT",
        "AAI-EVENT",
        "SDC-DISTR-STATUS-TOPIC-AUTO",
        "SDC-DISTR-NOTIF-TOPIC-AUTO",
        "org.onap.dmaap.mr.PNF_READY",
        "unauthenticated.PNF_READY",
        "POLICY-PDP-PAP",
        "unauthenticated.CPE_AUTHENTICATION",
        "unauthenticated.VES_MEASUREMENT_OUTPUT",
        "unauthenticated.PNF_UPDATE",
        "org.onap.dmaap.mr.mirrormakeragent",
        "__consumer_offsets"
    ]
}

DCAE

BBS Event Processor (BBS-ep)

Description: BBS-EventProcessor Service (BBS Usecase)

BBS event processor blueprints:

BBS event processor deployment procedure:

BBSep deployment
root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
bash-4.2$ cfy install -b bbs-ep -d bbs-ep /blueprints/k8s-bbs-event-processor.yaml
Uploading blueprint /blueprints/k8s-bbs-event-processor.yaml...
 k8s-bbs-event-pro... |################################################| 100.0%
Blueprint uploaded. The blueprint's id is bbs-ep
Creating new deployment from blueprint bbs-ep...
Deployment created. The deployment's id is bbs-ep
Executing workflow install on deployment bbs-ep [timeout=900 seconds]
Deployment environment creation is pending...
2020-03-26 13:31:51.512  CFY <bbs-ep> Starting 'create_deployment_environment' workflow execution
2020-03-26 13:31:52.112  CFY <bbs-ep> Installing deployment plugins
2020-03-26 13:31:52.112  CFY <bbs-ep> Sending task 'cloudify_agent.operations.install_plugins'
2020-03-26 13:31:52.112  CFY <bbs-ep> Task started 'cloudify_agent.operations.install_plugins'
2020-03-26 13:31:52.706  LOG <bbs-ep> INFO: Installing plugin: k8s
2020-03-26 13:31:52.706  LOG <bbs-ep> INFO: Using existing installation of managed plugin: c567dae6-35df-426a-a677-45ac51175b73 [package_name: k8splugin, package_version: 1.7.2, supported_platform: linux_x86_64, distribution: centos, distribution_release: core]
2020-03-26 13:31:52.706  CFY <bbs-ep> Task succeeded 'cloudify_agent.operations.install_plugins'
2020-03-26 13:31:52.706  CFY <bbs-ep> Skipping starting deployment policy engine core - no policies defined
2020-03-26 13:31:52.706  CFY <bbs-ep> Creating deployment work directory
2020-03-26 13:31:52.706  CFY <bbs-ep> 'create_deployment_environment' workflow execution succeeded
2020-03-26 13:31:55.575  CFY <bbs-ep> Starting 'install' workflow execution
2020-03-26 13:31:56.242  CFY <bbs-ep> [bbs-event-processor_76rp5k] Creating node instance
2020-03-26 13:31:56.910  CFY <bbs-ep> [bbs-event-processor_76rp5k.create] Sending task 'k8splugin.create_for_components'
2020-03-26 13:31:59.795  LOG <bbs-ep> [bbs-event-processor_76rp5k.create] INFO: Done setting up: s636058386c6042289eaf4f55ada78500-bbs-event-processor
2020-03-26 13:31:59.165  LOG <bbs-ep> [bbs-event-processor_76rp5k.create] INFO: Added config for s636058386c6042289eaf4f55ada78500-bbs-event-processor
2020-03-26 13:31:59.795  CFY <bbs-ep> [bbs-event-processor_76rp5k.create] Task succeeded 'k8splugin.create_for_components'
2020-03-26 13:31:59.795  CFY <bbs-ep> [bbs-event-processor_76rp5k] Node instance created
2020-03-26 13:32:00.390  CFY <bbs-ep> [bbs-event-processor_76rp5k] Configuring node instance: nothing to do
2020-03-26 13:32:00.390  CFY <bbs-ep> [bbs-event-processor_76rp5k] Starting node instance
2020-03-26 13:32:00.390  CFY <bbs-ep> [bbs-event-processor_76rp5k.start] Sending task 'k8splugin.create_and_start_container_for_components'
2020-03-26 13:32:01.719  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: Starting k8s deployment for s636058386c6042289eaf4f55ada78500-bbs-event-processor, image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.components.bbs-event-processor:2.0.0, env: {'DCAE_CA_CERTPATH': '/opt/app/bbs-event-processor/etc/cert/cacert.pem', 'CONSUL_HOST': u'consul-server.onap', u'SERVICE_TAGS': u'', 'CONFIG_BINDING_SERVICE': 'config-binding-service', 'CBS_CONFIG_URL': 'https://config-binding-service:10443/service_component_all/s636058386c6042289eaf4f55ada78500-bbs-event-processor'}, kwargs: {'readiness': {u'endpoint': u'/heartbeat', u'type': u'http', u'timeout': u'5s', u'interval': u'180s'}, 'labels': {'cfydeployment': u'bbs-ep', 'cfynodeinstance': u'bbs-event-processor_76rp5k', 'cfynode': u'bbs-event-processor'}, 'tls_info': {u'use_tls': True, u'cert_directory': u'/opt/app/bbs-event-processor/etc/cert'}, 'envs': {u'SERVICE_TAGS': u''}, 'liveness': {}, 'resource_config': {}, 'volumes': [], 'log_info': {u'log_directory': u'/opt/app/bbs-event-processor/logs'}, 'ports': [u'8100:30413'], 'k8s_location': u'central'}
2020-03-26 13:32:02.435  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: Passing k8sconfig: {'tls': {u'component_cert_dir': u'/opt/dcae/cacert', u'cert_path': u'/opt/app/osaaf', u'image': u'nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0', u'ca_cert_configmap': u'dev-dcae-bootstrap-dcae-cacert', u'component_ca_cert_path': u'/opt/dcae/cacert/cacert.pem'}, 'filebeat': {u'config_map': u'dev-dcae-filebeat-configmap', u'config_path': u'/usr/share/filebeat/filebeat.yml', u'log_path': u'/var/log/onap', u'image': u'docker.elastic.co/beats/filebeat:5.5.0', u'data_path': u'/usr/share/filebeat/data', u'config_subpath': u'filebeat.yml'}, 'consul_dns_name': u'consul-server.onap', 'image_pull_secrets': [u'onap-docker-registry-key'], 'namespace': u'onap', 'consul_host': 'consul-server:8500', 'cbs': {'base_url': 'https://config-binding-service:10443/service_component_all'}, 'default_k8s_location': u'central'}
2020-03-26 13:32:02.435  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: k8s deployment initiated successfully for s636058386c6042289eaf4f55ada78500-bbs-event-processor: {'services': ['s636058386c6042289eaf4f55ada78500-bbs-event-processor', 'xs636058386c6042289eaf4f55ada78500-bbs-event-processor'], 'namespace': u'onap', 'location': u'central', 'deployment': 'dep-s636058386c6042289eaf4f55ada78500-bbs-event-processor'}
2020-03-26 13:32:02.435  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: Waiting up to 1800 secs for s636058386c6042289eaf4f55ada78500-bbs-event-processor to become ready
2020-03-26 13:33:25.482  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: Done starting: s636058386c6042289eaf4f55ada78500-bbs-event-processor
2020-03-26 13:33:24.802  LOG <bbs-ep> [bbs-event-processor_76rp5k.start] INFO: k8s deployment is ready for: s636058386c6042289eaf4f55ada78500-bbs-event-processor
2020-03-26 13:33:25.482  CFY <bbs-ep> [bbs-event-processor_76rp5k.start] Task succeeded 'k8splugin.create_and_start_container_for_components'
2020-03-26 13:33:25.482  CFY <bbs-ep> [bbs-event-processor_76rp5k] Node instance started
2020-03-26 13:33:26.201  CFY <bbs-ep> 'install' workflow execution succeeded
Finished executing workflow install on deployment bbs-ep
* Run 'cfy events list -e 3c6d4861-4e15-4738-931d-60121a662a45' to retrieve the execution's events/logs

RESTCONF Collector

Description: RESTConf Collector (BBS Usecase) 

RESTCONF Collector blueprint:

RESTCONF Collector deployment procedure:

root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
bash-4.2$ cfy install -b restconf -d restconf /blueprints/k8s-restconf.yaml
Uploading blueprint /blueprints/k8s-restconf.yaml...
 k8s-restconf.yaml |###################################################| 100.0%
Blueprint uploaded. The blueprint's id is restconf
Creating new deployment from blueprint restconf...
Deployment created. The deployment's id is restconf
Executing workflow install on deployment restconf [timeout=900 seconds]
Deployment environment creation is pending...
2020-03-26 13:35:09.015  CFY <restconf> Starting 'create_deployment_environment' workflow execution
2020-03-26 13:35:09.660  CFY <restconf> Installing deployment plugins
2020-03-26 13:35:09.660  CFY <restconf> Sending task 'cloudify_agent.operations.install_plugins'
2020-03-26 13:35:09.660  CFY <restconf> Task started 'cloudify_agent.operations.install_plugins'
2020-03-26 13:35:10.269  LOG <restconf> INFO: Installing plugin: k8s
2020-03-26 13:35:10.269  LOG <restconf> INFO: Using existing installation of managed plugin: c567dae6-35df-426a-a677-45ac51175b73 [package_name: k8splugin, package_version: 1.7.2, supported_platform: linux_x86_64, distribution: centos, distribution_release: core]
2020-03-26 13:35:10.269  CFY <restconf> Task succeeded 'cloudify_agent.operations.install_plugins'
2020-03-26 13:35:10.269  CFY <restconf> Skipping starting deployment policy engine core - no policies defined
2020-03-26 13:35:10.269  CFY <restconf> Creating deployment work directory
2020-03-26 13:35:10.986  CFY <restconf> 'create_deployment_environment' workflow execution succeeded
2020-03-26 13:35:13.053  CFY <restconf> Starting 'install' workflow execution
2020-03-26 13:35:13.672  CFY <restconf> [rcc_k8s_1bgtbl] Creating node instance
2020-03-26 13:35:14.338  CFY <restconf> [rcc_k8s_1bgtbl.create] Sending task 'k8splugin.create_for_platforms'
2020-03-26 13:35:16.559  LOG <restconf> [rcc_k8s_1bgtbl.create] INFO: Added config for dcaegen2-collectors-rcc
2020-03-26 13:35:17.277  LOG <restconf> [rcc_k8s_1bgtbl.create] INFO: Done setting up: dcaegen2-collectors-rcc
2020-03-26 13:35:17.277  CFY <restconf> [rcc_k8s_1bgtbl.create] Task succeeded 'k8splugin.create_for_platforms'
2020-03-26 13:35:17.277  CFY <restconf> [rcc_k8s_1bgtbl] Node instance created
2020-03-26 13:35:17.277  CFY <restconf> [rcc_k8s_1bgtbl] Configuring node instance: nothing to do
2020-03-26 13:35:17.916  CFY <restconf> [rcc_k8s_1bgtbl] Starting node instance
2020-03-26 13:35:17.916  CFY <restconf> [rcc_k8s_1bgtbl.start] Sending task 'k8splugin.create_and_start_container_for_platforms'
2020-03-26 13:35:19.132  LOG <restconf> [rcc_k8s_1bgtbl.start] INFO: Starting k8s deployment for dcaegen2-collectors-rcc, image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.restconfcollector:1.1.1, env: {'CONSUL_HOST': u'consul-server.onap.svc.cluster.local', 'CBS_CONFIG_URL': 'https://config-binding-service:10443/service_component_all/dcaegen2-collectors-rcc', u'DMAAPHOST': u'message-router.onap.svc.cluster.local', 'CONFIG_BINDING_SERVICE': u'config_binding_service', u'CBS_HOST': u'config-binding-service.dcae.svc.cluster.local', 'DCAE_CA_CERTPATH': u'/opt/dcae/cacert/cacert.pem', u'DMAAPPORT': u'3904', u'CBS_PORT': u'10000', u'CONSUL_PORT': u'8500', u'DMAAPPUBTOPIC': u'unauthenticated.DCAE_RCC_OUTPUT'}, kwargs: {'readiness': {u'endpoint': u'/healthcheck', u'type': u'http', u'timeout': u'1s', u'interval': u'15s'}, 'tls_info': {}, 'replicas': 1, u'envs': {u'CONSUL_HOST': u'consul-server.onap.svc.cluster.local', u'DMAAPHOST': u'message-router.onap.svc.cluster.local', u'CONFIG_BINDING_SERVICE': u'config_binding_service', u'CBS_HOST': u'config-binding-service.dcae.svc.cluster.local', u'DMAAPPORT': u'3904', u'CBS_PORT': u'10000', u'CONSUL_PORT': u'8500', u'DMAAPPUBTOPIC': u'unauthenticated.DCAE_RCC_OUTPUT'}, 'labels': {'cfydeployment': u'restconf', 'cfynodeinstance': u'rcc_k8s_1bgtbl', 'cfynode': u'rcc_k8s'}, 'ctx': <cloudify.context.CloudifyContext object at 0x7fbc53614250>, 'always_pull_image': False, 'resource_config': {}, 'log_info': {u'log_directory': u'/opt/app/RCCollector/logs'}, u'ports': [u'8080:30416'], 'k8s_location': u'central'}
2020-03-26 13:35:19.848  LOG <restconf> [rcc_k8s_1bgtbl.start] INFO: Passing k8sconfig: {'tls': {u'component_cert_dir': u'/opt/dcae/cacert', u'cert_path': u'/opt/app/osaaf', u'image': u'nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0', u'ca_cert_configmap': u'dev-dcae-bootstrap-dcae-cacert', u'component_ca_cert_path': u'/opt/dcae/cacert/cacert.pem'}, 'filebeat': {u'config_map': u'dev-dcae-filebeat-configmap', u'config_path': u'/usr/share/filebeat/filebeat.yml', u'log_path': u'/var/log/onap', u'image': u'docker.elastic.co/beats/filebeat:5.5.0', u'data_path': u'/usr/share/filebeat/data', u'config_subpath': u'filebeat.yml'}, 'consul_dns_name': u'consul-server.onap', 'image_pull_secrets': [u'onap-docker-registry-key'], 'namespace': u'onap', 'consul_host': 'consul-server:8500', 'cbs': {'base_url': 'https://config-binding-service:10443/service_component_all'}, 'default_k8s_location': u'central'}
2020-03-26 13:35:19.848  LOG <restconf> [rcc_k8s_1bgtbl.start] INFO: k8s deployment initiated successfully for dcaegen2-collectors-rcc: {'services': ['dcaegen2-collectors-rcc', 'xdcaegen2-collectors-rcc'], 'namespace': u'onap', 'location': u'central', 'deployment': 'dep-dcaegen2-collectors-rcc'}
2020-03-26 13:35:19.848  LOG <restconf> [rcc_k8s_1bgtbl.start] INFO: Waiting up to 1800 secs for dcaegen2-collectors-rcc to become ready
2020-03-26 13:35:45.794  LOG <restconf> [rcc_k8s_1bgtbl.start] INFO: k8s deployment is ready for: dcaegen2-collectors-rcc
2020-03-26 13:35:46.296  CFY <restconf> [rcc_k8s_1bgtbl.start] Task succeeded 'k8splugin.create_and_start_container_for_platforms'
2020-03-26 13:35:46.926  CFY <restconf> [rcc_k8s_1bgtbl] Node instance started
2020-03-26 13:35:46.926  CFY <restconf> 'install' workflow execution succeeded
Finished executing workflow install on deployment restconf
* Run 'cfy events list -e d9edf30f-0944-46f7-98af-8ec2a35499f3' to retrieve the execution's events/logs

VES mapper

Description: VESMapper (BBS Usecase)  

VES Mapper blueprint:

VES Mapper deployment procedure:

root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
bash-4.2$ cfy install -b ves-mapper -d ves-mapper /blueprints/k8s-ves-mapper.yaml
Uploading blueprint /blueprints/k8s-ves-mapper.yaml...
 k8s-ves-mapper.yaml |#################################################| 100.0%
Blueprint uploaded. The blueprint's id is ves-mapper
Creating new deployment from blueprint ves-mapper...
Deployment created. The deployment's id is ves-mapper
Executing workflow install on deployment ves-mapper [timeout=900 seconds]
Deployment environment creation is pending...
2020-03-26 13:37:22.808  CFY <ves-mapper> Starting 'create_deployment_environment' workflow execution
2020-03-26 13:37:23.404  CFY <ves-mapper> Installing deployment plugins
2020-03-26 13:37:23.404  CFY <ves-mapper> Sending task 'cloudify_agent.operations.install_plugins'
2020-03-26 13:37:23.404  CFY <ves-mapper> Task started 'cloudify_agent.operations.install_plugins'
2020-03-26 13:37:24.051  LOG <ves-mapper> INFO: Installing plugin: k8s
2020-03-26 13:37:24.051  LOG <ves-mapper> INFO: Using existing installation of managed plugin: c567dae6-35df-426a-a677-45ac51175b73 [package_name: k8splugin, package_version: 1.7.2, supported_platform: linux_x86_64, distribution: centos, distribution_release: core]
2020-03-26 13:37:24.051  CFY <ves-mapper> Task succeeded 'cloudify_agent.operations.install_plugins'
2020-03-26 13:37:24.051  CFY <ves-mapper> Skipping starting deployment policy engine core - no policies defined
2020-03-26 13:37:24.051  CFY <ves-mapper> Creating deployment work directory
2020-03-26 13:37:24.724  CFY <ves-mapper> 'create_deployment_environment' workflow execution succeeded
2020-03-26 13:37:26.733  CFY <ves-mapper> Starting 'install' workflow execution
2020-03-26 13:37:27.363  CFY <ves-mapper> [universalvesadapter_3gckp9] Creating node instance
2020-03-26 13:37:27.363  CFY <ves-mapper> [universalvesadapter_3gckp9.create] Sending task 'k8splugin.create_for_components'
2020-03-26 13:37:29.831  LOG <ves-mapper> [universalvesadapter_3gckp9.create] INFO: Added config for s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper
2020-03-26 13:37:30.335  LOG <ves-mapper> [universalvesadapter_3gckp9.create] INFO: Done setting up: s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper
2020-03-26 13:37:30.986  CFY <ves-mapper> [universalvesadapter_3gckp9.create] Task succeeded 'k8splugin.create_for_components'
2020-03-26 13:37:30.986  CFY <ves-mapper> [universalvesadapter_3gckp9] Node instance created
2020-03-26 13:37:30.986  CFY <ves-mapper> [universalvesadapter_3gckp9] Configuring node instance: nothing to do
2020-03-26 13:37:30.986  CFY <ves-mapper> [universalvesadapter_3gckp9] Starting node instance
2020-03-26 13:37:31.654  CFY <ves-mapper> [universalvesadapter_3gckp9.start] Sending task 'k8splugin.create_and_start_container_for_components'
2020-03-26 13:37:33.026  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: Passing k8sconfig: {'tls': {u'component_cert_dir': u'/opt/dcae/cacert', u'cert_path': u'/opt/app/osaaf', u'image': u'nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0', u'ca_cert_configmap': u'dev-dcae-bootstrap-dcae-cacert', u'component_ca_cert_path': u'/opt/dcae/cacert/cacert.pem'}, 'filebeat': {u'config_map': u'dev-dcae-filebeat-configmap', u'config_path': u'/usr/share/filebeat/filebeat.yml', u'log_path': u'/var/log/onap', u'image': u'docker.elastic.co/beats/filebeat:5.5.0', u'data_path': u'/usr/share/filebeat/data', u'config_subpath': u'filebeat.yml'}, 'consul_dns_name': u'consul-server.onap', 'image_pull_secrets': [u'onap-docker-registry-key'], 'namespace': u'onap', 'consul_host': 'consul-server:8500', 'cbs': {'base_url': 'https://config-binding-service:10443/service_component_all'}, 'default_k8s_location': u'central'}
2020-03-26 13:37:32.522  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: Starting k8s deployment for s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper, image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.mapper.vesadapter.universalvesadaptor:1.0.1, env: {'DCAE_CA_CERTPATH': u'/opt/dcae/cacert/cacert.pem', 'CONSUL_HOST': u'consul-server.onap', u'SERVICE_TAGS': u'', 'CBS_CONFIG_URL': 'https://config-binding-service:10443/service_component_all/s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper', 'CONFIG_BINDING_SERVICE': u'config_binding_service'}, kwargs: {'readiness': {}, 'labels': {'cfydeployment': u'ves-mapper', 'cfynodeinstance': u'universalvesadapter_3gckp9', 'cfynode': u'universalvesadapter'}, 'tls_info': {}, 'envs': {u'SERVICE_TAGS': u'', u'CONFIG_BINDING_SERVICE': u'config_binding_service'}, 'liveness': {}, 'resource_config': {}, 'volumes': [], 'log_info': {}, 'ports': [u'80:0'], 'k8s_location': u'central'}
2020-03-26 13:37:33.026  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: k8s deployment initiated successfully for s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper: {'services': ['s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper'], 'namespace': u'onap', 'location': u'central', 'deployment': 'dep-s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper'}
2020-03-26 13:37:33.026  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: Waiting up to 3600 secs for s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper to become ready
2020-03-26 13:37:35.743  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: k8s deployment is ready for: s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper
2020-03-26 13:37:36.390  LOG <ves-mapper> [universalvesadapter_3gckp9.start] INFO: Done starting: s76305937176b49619b24cb13ae1f5100-dcaegen2-svc-mapper
2020-03-26 13:37:36.390  CFY <ves-mapper> [universalvesadapter_3gckp9.start] Task succeeded 'k8splugin.create_and_start_container_for_components'
2020-03-26 13:37:36.390  CFY <ves-mapper> [universalvesadapter_3gckp9] Node instance started
2020-03-26 13:37:36.390  CFY <ves-mapper> 'install' workflow execution succeeded
Finished executing workflow install on deployment ves-mapper
* Run 'cfy events list -e 69ffeb61-3f09-4311-8483-6f4ab7a20806' to retrieve the execution's events/logs

VES Collector

In Frankfurt by default VES Collector listens to secured port with HTTPS. To keep our code modifications to a minimum, we can use the HTTP-version of VES-Collector by deploying a separate Cloudify instance from within DCAE bootstrap POD.

root@onap-nfs:/home/ubuntu# kubectl exec -ti dev-dcae-bootstrap-7599b45c77-czxsx -n onap bash
bash-4.2$ cfy install -b ves-http -d ves-http -i /inputs/k8s-ves-inputs.yaml /blueprints/k8s-ves.yaml

Configure mapping VES event domain to DMaaP topic: ves-statechange --> unauthenticated.CPE_AUTHENTICATION

1) Access Consul UI: http://<consul_server_ui>:30270/ui/#/dc1/services 

2) Modify dcae-ves-collector-http configuration by adding a new VES domain to DMaaP topic mapping

"ves-statechange": {"type": "message_router", "dmaap_info": {"topic_url": "http://message-router:3904/events/unauthenticated.CPE_AUTHENTICATION"}}

3) Click on UPDATE to apply the new configuration

SDNC

Make sure that BBS DGs in SDNC DGBuilder are in Active state

bbs-access-connectivity-vnf-topology-operation-create-huawei
bbs-access-connectivity-vnf-topology-operation-delete-huawei
bbs-internet-profile-vnf-topology-operation-change-huawei
bbs-internet-profile-vnf-topology-operation-common-huawei
bbs-internet-profile-vnf-topology-operation-create-huawei
bbs-internet-profile-vnf-topology-operation-delete-huawei
validate-bbs-vnf-input-parameters

DGBuilder URL: https://dguser:test123@sdnc.api.simpledemo.onap.org:30203

Access SDN M&C DG

Configure Access SDN M&C IP address in SDNC DG using dgbuilder. For instance:

> GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-create-huawei.json
> GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-delete-huawei.json

1) Export the relevant DG

2) Modify the IP address

3) Import back the DG and Activate it

DGBuilder URL: https://dguser:test123@sdnc.api.simpledemo.onap.org:30203 

Edge SDN M&C DG

Configure Edge SDN M&C IP address in SDNC DG using dgbuilder. For instance:

> GENERIC-RESOURCE-API: bbs-access-connectivity-vnf-topology-operation-common-huawei.json

1) Export the relevant DG

2) Modify the IP address

3) Import back the DG and Activate it

DGBuilder URL: https://dguser:test123@sdnc.api.simpledemo.onap.org:30203 

Ref: Swisscom Edge SDN M&C and virtual BNG

Add SSL certificate of the 3rd party controller into the SDNC trust store

kubectl exec -ti dev-sdnc-0 -n onap -- bash
 
openssl s_client -connect <IP_ADDRESS_EXT_CTRL>:<PORT>
# copy server certificate and paste in /tmp/<CA_CERT_NAME>.crt
sudo keytool -importcert -file /tmp/<CA_CERT_NAME>.crt -alias <CA_CERT_NAME>_key -keystore truststore.onap.client.jks -storepass adminadmin
keytool -list -keystore truststore.onap.client.jks -storepass adminadmin | grep <CA_CERT_NAME>

See  SDNC-179 - Getting issue details... STATUS

Policy 

Deploy BBS APEX Policy (master, apex-pdp image v2.3+)

Before Starting check POLICY-PAP and POLICY-API are exposed correctly.

policy check
kubectl get svc | grep -i policy
policy-apex-pdp                                          ClusterIP      10.43.154.141   <none>                                 6969/TCP                                                 9d
policy-api                                               ClusterIP      10.43.38.189    <none>                                 6969/TCP                                                 9d
policy-distribution                                      ClusterIP      10.43.59.17     <none>                                 6969/TCP                                                 9d
policy-handler                                           ClusterIP      10.43.26.210    <none>                                 80/TCP                                                   9d
policy-mariadb                                           ClusterIP      None            <none>                                 3306/TCP                                                 9d
policy-pap                                               ClusterIP      10.43.32.178    <none>                                 6969/TCP                                                 9d
policy-xacml-pdp                                         ClusterIP      10.43.45.35     <none>                                 6969/TCP                                                 9d

If it's already exposed you will see Nodeport instead of ClusterIp.


Expose policy:

expose policy
kubectl edit svc policy-api

	//change spec type to NodePort
	spec:
 	 clusterIP: {IP}
 	 ports:
 	 - name: policy-pap
 	   port: 6969
       protocol: TCP
  	   targetPort: 6969
 	 selector:
  	   app: pap
  	   release: frankfurt
 	 sessionAffinity: None
 	 type: NodePort
 
kubectl edit svc policy-pap


Verification
kubectl get svc | grep policy
policy-apex-pdp             ClusterIP      10.43.29.86     <none>                                 6969/TCP                                                 9d
policy-api                  NodePort       10.43.197.94    <none>                                 6969:30687/TCP                                           9d
policy-distribution         ClusterIP      10.43.129.175   <none>                                 6969/TCP                                                 9d
policy-handler              ClusterIP      10.43.149.5     <none>                                 80/TCP                                                   9d
policy-mariadb              ClusterIP      None            <none>                                 3306/TCP                                                 9d
policy-pap                  NodePort       10.43.230.71    <none>                                 6969:31620/TCP                                           9d
policy-xacml-pdp            ClusterIP      10.43.104.92    <none>                                 6969/TCP                                                 9d


Postman Collection: BBS APEX Policy API Frankfurt.postman_collection.json.zip

1) Make Sure APEX PDP is running and in Active state

API:  GET 
URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps

2) Create the operational control loop APEX policy type

API: POST
URL: {{POLICY-API-URL}}/policy/api/v1/policytypes

JSON payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_policytypes.json

3) Create BBS APEX policy

API: POST
URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies

JSON payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_create_policy.json

4) Deploy BBS policy

API: POST
URL: {{POLICY-PAP-URL}}/policy/pap/v1/pdps/policies

JSON payload: https://git.onap.org/integration/usecases/bbs/tree/policy/apex/json/bbs_simple_deploy.json

5) Verify the deployment

API: GET
URL: {{POLICY-API-URL}}/policy/api/v1/policytypes/onap.policies.controlloop.operational.Apex/versions/1.0.0/policies/

Edge Services: vBNG+AAA+DHCP, Edge SDN M&C

Swisscom Edge SDN M&C and virtual BNG

BBS Service Configuration

AAI: Business customer

Create a business customer and subscription to BBS service type in AAI

Business Customer AAI
curl -X PUT \
  https://aai.api.simpledemo.openecomp.org:30233/aai/v16/business/customers/customer/0dd5ab04-11a1-48b2-9792-6f12a42223d3 \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: aai.api.simpledemo.openecomp.org:30233' \
  -H 'User-Agent: PostmanRuntime/7.15.0' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache' \
  -H 'content-length: 140' \
  -d '{
	"global-customer-id": "0dd5ab04-11a1-48b2-9792-6f12a42223d3",
    "subscriber-name": "BBSCustomer",
    "subscriber-type": "CUST"
}
'

curl -X GET \
  https://aai.api.simpledemo.openecomp.org:30233/aai/v16/business/customers/customer/0dd5ab04-11a1-48b2-9792-6f12a42223d3 \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: aai.api.simpledemo.openecomp.org:30233' \
  -H 'User-Agent: PostmanRuntime/7.15.0' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache'
{
    "global-customer-id": "0dd5ab04-11a1-48b2-9792-6f12a42223d3",
    "subscriber-name": "BBSCustomer",
    "subscriber-type": "CUST",
    "resource-version": "1561552477331"
}
Create BBS service subscription in AAI
curl -X PUT \
  https://aai.api.simpledemo.openecomp.org:30233/aai/v14/business/customers/customer/0dd5ab04-11a1-48b2-9792-6f12a42223d3/service-subscriptions/service-subscription/BBS_E2E_Service \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: aai.api.simpledemo.openecomp.org:30233' \
  -H 'User-Agent: PostmanRuntime/7.15.0' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache' \
  -H 'content-length: 38' \
  -d '{
	"service-type": "BBS_E2E_Service"
}'

curl -X GET \
  'https://aai.api.simpledemo.openecomp.org:30233/aai/v16/business/customers/customer/0dd5ab04-11a1-48b2-9792-6f12a42223d3?depth=all' \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic QUFJOkFBSQ==' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: aai.api.simpledemo.openecomp.org:30233' \
  -H 'User-Agent: PostmanRuntime/7.15.0' \
  -H 'X-FromAppId: Postman Application' \
  -H 'X-TransactionId: Postman REST Transaction' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache'

{
    "global-customer-id": "0dd5ab04-11a1-48b2-9792-6f12a42223d3",
    "subscriber-name": "BBSCustomer",
    "subscriber-type": "CUST",
    "resource-version": "1561552477331",
    "service-subscriptions": {
        "service-subscription": [
            {
                "service-type": "BBS_E2E_Service",
                "resource-version": "1561553245301"
            }
        ]
    }
}

BBS HSIA CFS Onboarding and Distribution

Postman Collection: BBS_Use_Case_PostmanCollection.zip

1) Create Vendor License Model (VLM)
Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_01_Create_VLM.mov'

2) Resource Onboarding

Notes:

  • Create VFCs (CPE, AccessConnectivity, InternetProfile) and VFs with single VFC (CPE, AccessConnectivity, InternetProfile).
  • Declare attributes as inputs in VF.
ResourceDescriptionTemplate
CPECPE (ONT+RG) PNFCpePnf.yml
AccessConnectivityAccess Connectivity RFSaccess_connectivity.yml
InternetProfileInternet Profile RFSInternetProfile.yaml

Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_02_ResourceOnboarding.mp4'

3) E2E Service Design

Notes:

  • Create E2E service, ontNni has CPE as a requirement
  • ODN as VnfVirtualLink
  • ponUni and oltNni have AccessConnectivity VF as a requirement

Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_03_E2EServiceDesign.mp4'

Simplified E2E Service Model (Frankfurt):

Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_E2E_Service_Model.mov'

BSS HSIA Service Order: Request Input

Input provided as part of the service order, sent to External API from BSS

NOTE: ont_ont_manufacturer = [HUAWEI or NOKIA], ont_ont_pnf_name is used as pnf_correlation_id by SO

Service Order coming from BSS to ExternalAPI
{
  "externalId": "BBS_BSS_TrackindId3584",
  "category": "NetworkService",
  "description": "Service Order for a new HSIA CFS",
  "priority": "1",
  "relatedParty": [
    {
      "id": "6f486438-87b5-4bee-8f85-30090c760501",
      "role": "ONAPcustomer",
      "name": "EnterpriseA",
      "@referredType": "Consumer"
    }
  ],
  "orderItem": [
    {
      "id": "1",
      "action": "add",
      "service": {
        "name": "BBS_E2E_Service_1",
        "serviceState": "active",
        "serviceSpecification": {
          "id": "0187be8c-8efb-4531-97fa-dbe984ed9cdb"
        },
        "serviceCharacteristic": [
          {
            "name": "ont_ont_serial_num",
            "value": {
              "serviceCharacteristicValue": "HWTCC01B7503"
            }
          },
          {
            "name": "edgeinternetprofile_ip_rg_mac_addr",
            "value": {
              "serviceCharacteristicValue": "54:04:a6:38:12:9d"
            }
          },
          {
            "name": "edgeinternetprofile_ip_downstream_speed",
            "value": {
              "serviceCharacteristicValue": "10"
            }
          },
          {
            "name": "ont_ont_mac_addr",
            "value": {
              "serviceCharacteristicValue": "54:04:a6:38:12:9d"
            }
          },
          {
            "name": "edgeinternetprofile_ip_remote_id",
            "value": {
              "serviceCharacteristicValue": "AC9.000.010.001"
            }
          },
          {
            "name": "ont_ont_swVersion",
            "value": {
              "serviceCharacteristicValue": "1.0.0"
            }
          },
          {
            "name": "ont_ont_manufacturer",
            "value": {
              "serviceCharacteristicValue": "HUAWEI"
            }
          },
          {
            "name": "edgeinternetprofile_ip_service_type",
            "value": {
              "serviceCharacteristicValue": "BBS_E2E_Service"
            }
          },
          {
            "name": "ont_ont_pnf_name",
            "value": {
              "serviceCharacteristicValue": "Huawei-4857544302FF269D"
            }
          },
          {
            "name": "edgeinternetprofile_ip_upstream_speed",
            "value": {
              "serviceCharacteristicValue": "10"
            }
          },
          {
            "name": "ont_ont_nf_type",
            "value": {
              "serviceCharacteristicValue": "HN8255WS"
            }
          },
          {
            "name": "cvlan",
            "value": {
              "serviceCharacteristicValue": "100"
            }
          },
          {
            "name": "svlan",
            "value": {
              "serviceCharacteristicValue": "1000"
            }
          }
        ]
      }
    }
  ]
}

BBS HSIA Service Creation and Activation

Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_04_HSIACreationAndActivation.mp4'

BBS HSIA Service Reconfiguration. Nomadic ONT

Error rendering macro 'multimedia' : com.atlassian.renderer.v2.macro.MacroException: Cannot find attachment 'BBS_05_NomadicONT.mov'