.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
+========
Delivery
========
-.. note::
- * This section is used to describe a software component packaging.
- For a run-time component this might be executable images, containers, etc.
- For an SDK this might be libraries.
-
- * This section is typically provided for a platform-component and sdk;
- and referenced in developer and user guides
- * This note must be removed after content has been added.
+SDC Dockers Containers
+======================
+
+Overview
+--------
+
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| Name | Content of the container | On Startup |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-cs-init | Logic for creating the **schemas for SDC catalog** server | Create the **schemas** |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-cs-onboard init | Logic for creating the **schemas for SDC onboarding** server | Create the **schemas** |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-cs | **Cassandra** server, this is optional as SDC uses shared ONAP Cassandra by| Starts **Cassandra** |
+| | default | |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-onboard-BE | Onboarding **Backend** Jetty server | Starts Jetty with the application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-BE | **Backend** Jetty server | Starts Jetty with the application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-BE-init | Logic for importing the SDC **Tosca normative types** | Executes the rest calls for the catalog server |
+| | Logic for configuring **external users** for SDC external api's | |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-FE | SDC **Frontend** Jetty server | Starts Jetty with our application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-WFD-BE-init | Logic for configuring **Workflow Designer** | Execute configuration tasks of the WFD |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-WFD-BE | SDC Workflow **Backtend** Jetty server | Starts Jetty with our application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-WFD-FE | SDC Workflow **Frontend** Jetty server | Starts Jetty with our application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
+| sdc-helm-validator | SDC container for Helm package validation | Starts server with our application. |
++---------------------+----------------------------------------------------------------------------+------------------------------------------------+
-Example use of a block diagram.
+
+Deployement dependency map
+--------------------------
.. blockdiag::
-
- blockdiag layers {
- orientation = portrait
- a -> m;
- b -> n;
- c -> x;
- m -> y;
- m -> z;
- group l1 {
- color = blue;
- x; y; z;
- }
- group l2 {
- color = yellow;
- m; n;
- }
- group l3 {
- color = orange;
- a; b; c;
- }
-
- }
+ orientation = portrait
+ class job [color = "#FFA300", style = dotted, shape = "box"]
+ class app [color = "#29ADFF", shape = "roundedbox"]
+ fe [label = "sdc-frontend", class = "app"];
+ be [label = "sdc-backend", class = "app"];
+ onboarding-be [label = "sdc-onboarding-backend", class = "app"];
+ cassandra [label = "sdc-cassandra", class = "app"];
+ be-config [label = "sdc-backend-config", class = "job"];
+ cassandra-config [label = "sdc-cassandra-config", class = "job"];
+ onboarding-init [label = "sdc-onboarding-init", class = "job"];
+ sdc-WFD-FE [label = "sdc-workflow-fe", class = "app"];
+ sdc-WFD-BE [label = "sdc-workflow-be", class = "app"];
+ sdc-WFD-BE-init [label = "sdc-workflow-init", class = "job"];
+ job [class = "job"];
+ app [class = "app"];
+
+ fe -> be-config -> be -> onboarding-be -> onboarding-init -> cassandra-config -> cassandra;
+ sdc-WFD-FE -> sdc-WFD-BE-init -> sdc-WFD-BE -> cassandra-config;
+
+Connectivity Matrix
+-------------------
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+| Name | API purpose | protocol | port number / range | TCP / UDP |
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+| sdc-cassandra | SDC backend uses the two protocols to access Cassandra | trift/async | 9042 / 9160 | TCP |
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+| sdc-onboard-backend | Access the onboarding functionality | http(s) | 8081 / 8445 | TCP |
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+| sdc-backend | Access the catalog functionality | http(s) | 8080 / 8443 | TCP |
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+| sdc-frontend | Access SDC UI and proxy requests to SDC backend | http(s) | 8181 / 9443 | TCP |
++---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
+
+Offered APIs
+------------
+
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+| container / vm name | address | API purpose | protocol | port number | TCP / UDP |
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+| sdc-fe | /sdc1/feproxy/* | Proxy for all REST calls from SDC UI | HTTP(S) | 8181 / 8443 | TCP |
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+| sdc-be | /sdc2/* | Internal APIs used by the UI. Request is passed through front end proxy | HTTP(S) | 8080 / 8443 | TCP |
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+| | /sdc/* | External APIs offered to the different components for retrieving info from SDC catalog. | HTTP(S) | 8080 / 8443 | TCP |
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+| sdc-onboarding-be | /onboarding/api/* | Internal APIs used by the UI | HTTP(S) | 8080 / 8443 | TCP |
++---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
+
+
+Structure
+---------
+
+Below is a diagram of the SDC project docker containers and the connections between them.
+
+.. blockdiag::
+
+ blockdiag delivery {
+ node_width = 140;
+ orientation = portrait;
+ sdc-cassandra[shape = flowchart.database , color = grey]
+ sdc-frontend [color = blue, textcolor="white"]
+ sdc-backend [color = yellow]
+ sdc-onboarding-backend [color = yellow]
+ sdc-backend [color = yellow]
+ sdc-WFD-frontend [color = brown]
+ sdc-WFD-backend [color = brown]
+ sdc-WFD-BE-init [color = brown]
+ sdc-cassandra-Config [color = orange]
+ sdc-backend-config [color = orange]
+ sdc-onboarding-init [color = orange]
+ sdc-WFD-BE-init -> sdc-WFD-backend;
+ sdc-onboarding-init -> sdc-onboarding-backend;
+ sdc-cassandra-Config -> sdc-cassandra;
+ sdc-backend-config -> sdc-backend;
+ sdc-wss-simulator -> sdc-frontend;
+ sdc-WFD-frontend -> sdc-WFD-backend;
+ sdc-frontend -> sdc-backend, sdc-onboarding-backend;
+ sdc-WFD-backend -> sdc-cassandra;
+ sdc-backend -> sdc-cassandra;
+ sdc-onboarding-backend -> sdc-cassandra;
+ sdc-sanity -> sdc-backend;
+ sdc-ui-sanity -> sdc-frontend;
+ group deploy_group {
+ color = green;
+ label = "Application Layer"
+ sdc-backend; sdc-onboarding-backend; sdc-frontend; sdc-cassandra; sdc-cassandra-Config; sdc-backend-config; sdc-onboarding-init; sdc-WFD-frontend; sdc-WFD-backend; sdc-WFD-BE-init;
+ }
+ group testing_group {
+ color = purple;
+ label = "Testing Layer";
+ sdc-sanity; sdc-ui-sanity
+ }
+ group util_group {
+ color = purple;
+ label = "Util Layer";
+ sdc-wss-simulator;
+ }
+ }