Versions Compared

Key

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

Table of Contents

Introduction

 


Below notes provides This page provides a brief overview on the process involved in onboarding new MS onto DCAE GEN2 controller platform and integration with SDC, Policy and CLAMP for modelling, design and service instantiation. A more comprehensive documentation will be follow and delivered part of documentation project. 


The DCAE Controller includes following components (some of them are docker containers). The platform docker components will be deployed via platform level blueprint . This is outside of the scope of this document.(not handled through onboarding steps noted here).

-       Cloudify Manager

-       Consul

...

  • Onboarding Phase
  • Design Phase
  • Runtime

...


Onboarding

 

 



                       

 

 

 




During this phase, each of the component owner should create a meta data describing the components.

There are two main artifacts required to be defined 


Data-Formats 

Data formats are descriptions of data---they are the data contract between your component and other components. You need to describe the available outputs and assumed inputs of your components as data formats. These data descriptions are onboarded into SDC 


Schema Definition

 data-format-schema.json 


Example: VES-4.27.2-data-format

VES-4.27.2-dataformat.json 


Component-spec

 


The component specification is a JSON that is used to describe and configure your component. The component specification contains the following top-level groups of information:

  • Component metadata
  • Component interfaces including the associated data formats
  • Configuration parameters
  • Auxiliary details
  • List of artifacts 

      Schema Definition

component-spec-schema.json

     

      Example: VESCollector 

 vescollector-componentspec.json

...

 


The developers will upload the spec (data-formats, component spec) developed into catalog using dcae_cli/tosca tool. Once validated, spec’s will be published into SDC catalog so they can be used for service creation. 


Design Phase

 


Design comprises of two steps.

Template creation

The TOSCA models generated from onboarding is used here to do this composition. Using SDC designer tool – individual reusable templates are created and stored in catalog.


 

Service Composition

Once the designer template is created, they can be used for Service composition (in SDC/CLAMP) to generate a Cloudify blueprint.

 


 


Once approved, SDC sends notification via an event onto a message router topic for DCAE-ServiceChangeHandler, which queries SDC to retrieve the blueprint and store into DCAE inventory. 

Runtime

Instantiation flow is triggered by update from ASDC/CLAMP where the DCAE controller deploys the components associated with service which is identified in the cloudify blueprint.

...

The complete flow with DCAE platform is depicted below.


 

Sample code to fetch configuration from Configbinding service

Image Modified

...


DMAAP binding


The dmaap topic stream are identified in compenent_spec as "subcribe" and "publish" streams. Each unique topic should be identified by the component developer using unique config_key.  When the configuration gets pushed into the container under below structure

"streams_publishes": {

"config_key1": {


          "type": "message_router",
                "aaf_password": "value",
                "dmaap_info": {
                    "location": "xx",
                    "client_id": "111111",
                    "client_role": "aafrole",
                    "topic_url": "topic-url"
                },
                "aaf_username": "user"



} ,

"config_key2": { similar structure }

},
"streams_subscribes": {

"config_key3": { similar structure} ,

"config_key4": [http stuff]

}


The config_key defined will map the value specified in the component_spec. For an anonymous (non-secure) topic, the username/password field will be defaulted to null.


Sample configuration

...

from DCAE Controller

For Docker containers, the configuration identified part of MS component-spec is retrieved from Configbinding service during application start-up; the data is represented as key-value pair. The Docker MS should parse the configuration and apply within MS as required.

Below is sample Configuration for VESCollector retrieved from DCAE platform (configbinding service).

{
       "collector.keystore.alias": "dynamically generated",
       "collector.service.port": 8080,
       "collector.keystore.file.location": "/opt/app/dcae-certificate/keystore.jks"
       "header.authflag": 0,
       "collector.service.secure.port": -1,
       "collector.    "collector.schema.file": "./etc/CommonEventFormat_27.2.json",
          "tomcatcollector.service.maxthreadsport": "200"8080,
          "collector.dmaap.streamid": "fault=sec_fault,roadm-sec-to-hp|syslog=sec_syslog|heartbeat=sec_heartbeat|measurementsForVfScaling=sec_measurement|mobileFlow=sec_mobileflow|other=sec_other|stateChange=sec_statechange|thresholdCrossingAlert=sec_thresholdCrossingAlert",
          "collector.schema.checkflag": 1,
    "tomcat.maxthreads": "200",
          "collector.keystore.passwordfile": "/opt/app/dcae-certificate/.password",
    "streams_subscribes": {},
    "services_calls": {},
          "collector.inputQueue.maxPending": 8096,       ,
    "header.authflag": 0,
    "collector.keystore.file.location": "/opt/app/dcae-certificate/keystore.jks",
    "collector.service.secure.port": -1,
    "header.authlist": "userid1,base64encodepwd1|userid2,base64encodepwd2",
    "collector.keystore.alias": "dynamically generated",
           "streams_publishes": {
            "sec_measurement": {
                "type": "message_router",
                "aaf_password": "aaf_password",
                "dmaap_info": {              "dmaapUserName
                    "location": "mtl5",
                    "client_id": "aafuser111111",
              "dmaapPassword                    "client_role": "aafpwdcom.att.dcae.member",
                                  "topic_url": "https://mrlocal:3905/events/com.att.dcae.dmaap.FTL2.SEC-FAULT-OUTPUT"
       },
       "sec_fault_unsecure": {
              MEASUREMENT-OUTPUT"
                },
                "aaf_username": "aaf_username"
            },
            "sec_fault_unsecure": {
                "type": "message_router",
                "aaf_password": null,
                "dmaap_info": {
                    "location": "mtl5",
                    "client_id": null,
                    "client_role": null,
                    "topic_url": "http://ueb.global:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
                },
                "aaf_username": null
            },
            "sec_measurement_unsecure": {
                "type": "message_router",
                "aaf_password": null,
                "dmaap_info": {
                    "location": "mtl5",
                    "client_id": null,
                    "client_role": null,
                    "topic_url": "http://ueb.global:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
                },
                "       aaf_username": null
            },
                  "sec_fault": {
                "type": "message_router",
                "aaf_password": "aaf_password",
                "dmaap_info": {
              "dmaapUserName                    "location": "mtl5",
                    "client_id": "aafuser222222",
              "dmaapPassword                    "client_role": "aafpwdcom.att.dcae.member",
                                  "topic_url": "https://mrlocal:3905/events/com.att.dcae.dmaap.FTL2.SEC-MEASUREMENTFAULT-OUTPUT"
                       },
       "sec_measurement_unsecure": {
              "topic_url": "http://ueb.global:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
       }

...

                "aaf_username": "aaf_username"
            }
    }
}


"streams_publishes": {

"config_key1": {message router stuff} ,

"config_key2": {data router stuff}

},
"streams_subscribes": {

"config_key3": {message router stuff} ,

"config_key4": [http stuff]

}