NONRTRIC-946: Servicemanager - Add Kong data plane and control plane
[it/dep.git] / docs / developer-guides.rst
index e3d579d..76b87f6 100644 (file)
 Developer-Guides
 ================
 
+Overview
+------------------
 
-.. note:
-..   * This section is used to describe what a contributor needs to know in order to work on the componenta
+The Amber release of the it/dep repo provides deployment artifacts for the O-RAN SC
+Near Realtime RIC.  The components in the deployment are spread onto two Kubernetes
+clusters, one for running the Near Realtime RIC, the other for running auxilary
+functions such as the dashboards.  These two clusters are referred to as the RIC and
+AUX clusters respectively.
 
-..   * this should be very technical, aimed at people who want to help develop the components
+This document describe the deployment artifacts, how theye are organized, and how to
+contribute for modifications, additions, and other enhancements to these artifacts.
 
-..   * this should be how the component does what it does, not a requirements document of what the component should do
+Deployment Organization
+------------------------
+To organize the deployments of the compoents, the various O-RAN SC Near Realtime RIC
+and auxilary components are organized into three groups: infrastructure, platform,
+and auxilary, or ric-infra, ric-platform, and ric-aux respectively. 
 
-..   * this should contain what language(s) and frameworks are used, with versions
+The **ric-infra** group is expected to be deployed in each Kubernetes cluster.  It
+consists of components such as Kong ingress controller, Helm chart repo, Tiller for
+xApp deployment, as well as various credentials.  This group is deployed in both the
+RIC and AUX clusters.
+
+The **ric-platform** group is deployed in the RIC cluster.  It consists of all Near
+Realtime RIC Platform components, including:
+
+- DBaaS
+- E2 Termination
+- E2 Manager
+- A1 Mediator
+- Routing Manager
+- Subscription Manager
+- xApp manager
+- VESPA Manager
+- Jaeger Adapter
+- Resource Status Manager
+
+The **ric-aux** group is deployed in the AUX cluster.  It consists of components that
+facilitate the operation of Near Realtime RIC and receiving inputs from the Near Realtime
+RIC.  In Amber release, this group includes the following:
+
+- ONAP VES Collector
+- ONAP DMaaP Message Router
+- RIC Dashboard
+
+In addition, this group also include ONAP AAF and ONAP Portal.
+
+
+
+Directory Structure
+-------------------
+
+The directories of the it/dep repo is organized as the following.
+
+::
+  
+  |-- LICENSES.txt
+  |-- README.md
+  |-- RECIPE_EXAMPLE
+  |-- bin
+  |-- ci
+  |-- docs
+  |-- etc
+  |-- ric-aux
+  |   |-- 80-Auxiliary-Functions
+  |   |-- 85-Ext-Services
+  |   `-- README.md
+  |-- ric-common
+  |   |-- Common-Template
+  |   |-- Docker-Credential
+  |   |-- Helm-Credential
+  |   `-- Initcontainer
+  |-- ric-infra
+  |   |-- 00-Kubernetes
+  |   |-- 15-Chartmuseum
+  |   |-- 20-Monitoring
+  |   |-- 30-Kong
+  |   |-- 40-Credential
+  |   |-- 45-Tiller
+  |   `-- README.md
+  |-- ric-platform
+  |   |-- 50-RIC-Platform
+  |   |-- 55-Ext-Services
+  |   `-- README.md
+  `-- tox.ini
+
+The deployment artifacts of these deployment groups are placed under the ric-infra,
+ric-platform, and ric-aux directories.  These directories are structured similarly
+where underneath each group is a list of numbered sub-groups.  The numbering is
+based on the order that how different sub-groups would be deployed within the same
+Kubernetes cluster.  For example, the 50-RIC-Platform subgroup should be deployed
+before the 55-Ext-Services subgroup.  And all subgroups in the ric-infra group
+should be deployed before the sub-groups in the ric-platform group, as indicated
+by they sub-group numbers being lower than those of the ric-platform group.
+
+Within each numbered subgroup, there is a **helm** directory and a **bin** directory. 
+The bin directory generally contains the install and uninstall script for deploying
+all the Helm charts of the subgroup.  The helm directory contains the helm charts
+for all the components within the subgroup. 
+
+At the top level, these is also a bin directory, where group level deployment and 
+undeployment scripts are located.  For example, the **deploy-ric-platform** script
+iterates all the subgroups under the ric-platform group, and calls the install script
+of each subgroup to deploy the components in each subgroup.
+
+Recipes
+--------
+**Recipe** is an important concept for Near Realtime RIC deployment.  Each
+deployment group has its own recipe.  Recipe provides a customized specification
+for the components of a deployment group for a specific dpeloyment site.  The
+RECIPE_EXAMPLE directory contains the example recipes for the three deployment
+groups.
+
+
+
+Helm Chart Structure
+--------------------
+
+
+Common Chart
+^^^^^^^^^^^^
+
+Indiviudal Deployment Tasks
+---------------------------
+
+
+Deploying a 1-node Kubernetes Cluster
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Deploying Near Realtime RIC
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Deploying Near Realtime RIC xApp
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-..   * this should contain how to obtain the code, where to look at work items (Jira tickets), how to get started developing
-   
-..   * This note must be removed after content has been added.
 
 
 Processes
 ---------
+Contribution to then it/dep repository is open to all community members by following
+the standard Git/Gerrit contribution and Gerrit review flows.  
 
+Code change submitted to the it/dep repo of the gerrit.o-ran-sc.org is first reviewed by both an automated verification Jenkins job and human reviewers.
 
 
 Actions
 -------
 
+