blob: b9e31119c594a740ac46bfc7f9f8461365c478d0 [file] [log] [blame]
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2019 IBM.
.. _cds_cba-doc:
Controller Blueprint Archived Designer Tool (CBA)
=================================================
.. toctree::
:maxdepth: 1
Introduction
------------
The **C**\ ontroller **B**\ lueprint **A**\ rchive 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:
.. code-block language is required for ReadTheDocs to render code-blocks. Python set as default.
.. code-block:: python
├── 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|
.. |image1| image:: media/CDS_Architecture.jpg
:width: 500pt
.. |image2| image:: media/CDS_Data_Flow.jpg
:width: 500pt
.. |image3| image:: media/Functional_Decomposition.jpg
:width: 500pt