.. 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