Controller Blueprint Archived Designer Tool (CBA)

Introduction

The Controller Blueprint Archive is the overall service design, fully model-driven, intent based package needed for SELF SERVICE provisioning and configuration management automation.

The CBA is .zip file, comprised of the following folder structure, the files may vary:

├── Definitions
│   ├── blueprint.json                          Overall TOSCA service template (workflow + node_template)
│   ├── artifact_types.json                     (generated by enrichment)
│   ├── data_types.json                         (generated by enrichment)
│   ├── policy_types.json                       (generated by enrichment)
│   ├── node_types.json                         (generated by enrichment)
│   ├── relationship_types.json                 (generated by enrichment)
│   ├── resources_definition_types.json         (generated by enrichment, based on Data Dictionaries)
│   └── *-mapping.json                          One per Template
│
├── Environments                                Contains *.properties files as required by the service
│
├── Plans                                       Contains Directed Graph
│
├── Tests                                       Contains uat.yaml file for testing cba actions within a cba package
│
├── Scripts                                     Contains scripts
│   ├── python                                  Python scripts
│   └── kotlin                                  Kotlin scripts
│
├── TOSCA-Metadata
│   └── TOSCA.meta                              Meta-data of overall package
│
└── Templates                                   Contains combination of mapping and template

To process a CBA for any service we need to enrich it first. This will gather all the node- type, data-type, artifact-type, data-dictionary definitions provided in the blueprint.json.

Architecture

image1

Data Flow

image2

Installation

Building client html and js files

  • FROM alpine:3.8 as builder

  • RUN apk add –no-cache npm

  • WORKDIR /opt/cds-ui/client/

  • COPY client/package.json /opt/cds-ui/client/

  • RUN npm install

  • COPY client /opt/cds-ui/client/

  • RUN npm run build

Building and creating server

  • FROM alpine:3.8

  • WORKDIR /opt/cds-ui/

  • RUN apk add –no-cache npm

  • COPY server/package.json /opt/cds-ui/

  • RUN npm install

  • COPY server /opt/cds-ui/

  • COPY –from=builder /opt/cds-ui/server/public /opt/cds-ui/public

  • RUN npm run build

  • EXPOSE 3000

  • CMD [ “npm”, “start” ]

Development

Pre-requiste

  • Visual Studio code editor

  • Git bash

  • Node.js & npm

  • loopback 4 cl

Steps

To compile CDS code:

  1. Make sure your local Maven settings file ($HOME/.m2/settings.xml) contains references to the ONAP repositories and OpenDaylight repositories.

  2. git clone https://(LFID)@gerrit.onap.org/r/a/ccsdk/cds

  3. cd cds ; mvn clean install ; cd ..

  4. Open the cds-ui/client code for development

Functional Decomposition

image3