NONRTRIC-946: Servicemanager - Add Kong data plane and control plane
[it/dep.git] / docs / installation-ric.rst
index 26d0063..a92291f 100644 (file)
@@ -1,10 +1,10 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. ===============LICENSE_START=======================================================
-.. Copyright (C) 2019 AT&T Intellectual Property 
-.. ===================================================================================
-.. This documentation file is distributed under the Creative Commons Attribution 
-.. 4.0 International License (the "License"); you may not use this file except in 
+.. ---------------LICENSE_START-------------------------------------------------------
+.. Copyright (C) 2019-2020 AT&T Intellectual Property
+.. -----------------------------------------------------------------------------------
+.. This documentation file is distributed under the Creative Commons Attribution
+.. 4.0 International License (the "License"); you may not use this file except in
 .. compliance with the License.  You may obtain a copy of the License at
 ..
 .. http://creativecommons.org/licenses/by/4.0
 .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 .. See the License for the specific language governing permissions and
 .. limitations under the License.
-.. ===============LICENSE_END=========================================================
-
-
-Getting and Preparing Deployment Scripts
-----------------------------------------
-
-Run the following commands in a root shell:
-
-.. code:: bash
-
-  git clone http://gerrit.o-ran-sc.org/r/it/dep
-  cd RECIPE_EXAMPLE
-
-Edit the recipe files RIC_INFRA_RECIPE_EXAMPLE and RIC_PLATFORM_RECIPE_EXAMPLE.  In particular the following values often need adaptation to local deployments:
-
-1. Docker registry URL;
-2. Docker registry credential;
-3. Helm repo credential;
-4. Component docker container image tags.
-
-
-Deploying the Infrastructure and Platform Groups
-------------------------------------------------
-
-After the recipes are edited, the Near Realtime RIIC is ready to be deployed.
-
-.. code:: bash
-
-  cd dep/bin
-  ./deploy-ric-infra ../RECIPE_EXAMPLE/RIC_INFRA_RECIPE_EXAMPLE
-  ./deploy-ric-platform ../RECIPE_EXAMPLE/RIC_PLATFORM_RECIPE_EXAMPLE 
-
-
-Checking the Deployment Status
-------------------------------
-
-Now check the deployment status and results similar to the below indicate a complete and successful deployment.
-
-.. code::
-
-  # helm list
-  NAME                  REVISION UPDATED                   STATUS      CHART                   APP VERSION     NAMESPACE
-  r1-a1mediator         1        Tue Nov 26 00:47:12 2019  DEPLOYED    a1mediator-1.0.0        1.0             ricplt   
-  r1-appmgr             1        Tue Nov 26 00:47:09 2019  DEPLOYED    appmgr-1.1.0            1.0             ricplt   
-  r1-dbaas1             1        Tue Nov 26 00:47:10 2019  DEPLOYED    dbaas1-1.1.0            1.0             ricplt  
-  r1-chartmuseum               1        Tue Nov 26 03:16:42 2019  DEPLOYED     chartmuseum-0.0.1       0.1             ricinfra  
-  r1-e2mgr              1        Tue Nov 26 00:47:10 2019  DEPLOYED    e2mgr-1.1.0             1.0             ricplt   
-  r1-e2term             1        Tue Nov 26 00:47:11 2019  DEPLOYED    e2term-1.1.0            1.0             ricplt   
-  r1-extsvcplt          1        Tue Nov 26 00:47:17 2019  DEPLOYED    extsvcplt-0.2.0         1.0             ricplt   
-  r1-jaegeradapter      1        Tue Nov 26 00:47:16 2019  DEPLOYED    jaegeradapter-0.1.0     1.0             ricplt   
-  r1-kong               1        Tue Nov 26 00:45:36 2019  DEPLOYED    kong-1.0.0              1.0             ricinfra 
-  r1-ricaux-credential  1        Tue Nov 26 00:45:42 2019  DEPLOYED    credential-1.1.0        1.0             ricaux   
-  r1-ricinfra-credential 1       Tue Nov 26 00:45:43 2019  DEPLOYED    credential-1.1.0        1.0             ricinfra 
-  r1-ricplt-credential  1        Tue Nov 26 00:45:42 2019  DEPLOYED    credential-1.1.0        1.0             ricplt   
-  r1-ricxapp-credential 1        Tue Nov 26 00:45:42 2019  DEPLOYED    credential-1.1.0        1.0             ricxapp  
-  r1-rsm                1        Tue Nov 26 00:47:15 2019  DEPLOYED    rsm-2.0.6               1.0             ricplt   
-  r1-rtmgr              1        Tue Nov 26 00:47:09 2019  DEPLOYED    rtmgr-1.1.0             1.0             ricplt   
-  r1-submgr             1        Tue Nov 26 00:47:13 2019  DEPLOYED    submgr-1.1.0            1.0             ricplt   
-  r1-vespamgr           1        Tue Nov 26 00:47:14 2019  DEPLOYED    vespamgr-0.0.1          1.0             ricplt   
-  r1-xapp-tiller        1        Tue Nov 26 00:45:44 2019  DEPLOYED    xapp-tiller-0.1.0       1.0             ricinfra 
-  # kubectl get pods -n ricplt
-  NAME                                              READY   STATUS    RESTARTS   AGE
-  deployment-ricplt-a1mediator-5c4df477f9-6zxxx     1/1     Running   0          132m
-  deployment-ricplt-appmgr-65bc8b958c-tggg7         1/1     Running   0          132m
-  deployment-ricplt-dbaas-74bf584449-k484v          1/1     Running   0          132m
-  deployment-ricplt-e2mgr-74cd9865bc-hpn6b          1/1     Running   0          132m
-  deployment-ricplt-e2term-cc7b5d99-pkctr           1/1     Running   0          132m
-  deployment-ricplt-jaegeradapter-cc49c64dc-vj622   1/1     Running   0          131m
-  deployment-ricplt-rsm-599cd4d6c8-4jhft            1/1     Running   0          131m
-  deployment-ricplt-rtmgr-85d89868d6-58wvl          1/1     Running   1          132m
-  deployment-ricplt-submgr-7cbd697c7f-p9x4x         1/1     Running   0          132m
-  deployment-ricplt-vespamgr-7bb4c7585f-9z6qm       1/1     Running   0          132m
-  # kubectl get pods -n ricinfra
-  NAME                                         READY   STATUS      RESTARTS   AGE
-  deployment-ricinfra-chartmuseum-7d97f4b995-gkxsq   1/1     Running     0    133m
-  deployment-tiller-ricxapp-65f9cbc8d7-qcr5t   1/1     Running     0          133m
-  r1-kong-kong-84695ff65d-9sjwg                2/2     Running     2          133m
-  tiller-secret-generator-w6bnd                0/1     Completed   0          133m
+.. ---------------LICENSE_END---------------------------------------------------------
 
+
+Installing Near-realtime RIC
+============================
+
+The installation of Near Realtime RAN Intelligent Controller is spread onto two separate
+Kubernetes clusters.  The first cluster is used for deploying the Near Realtime RIC (platform and
+applications), and the other is for deploying other auxiliary functions.  They are referred to as
+RIC cluster and AUX cluster respectively.
+
+The following diagram depicts the installation architecture.
+
+.. image:: images/nrtric-amber.png
+   :width: 600
+
+Within the RIC cluster, Kubernetes resources are deployed using three name spaces: ricinfra, ricplt,
+and ricxapp by default.  Similarly, within the AUX cluster, Kubernetes resources are deployed using two name spaces:
+ricinfra, and ricaux.
+
+For each cluster, there is a Kong ingress controller that proxies incoming API calls into the cluster.
+With Kong, service APIs provided by Kubernetes resources can be accessed at the cluster node IP and
+port via a URL path.  For cross-cluster communication, in addition to Kong, each Kubernetes namespace
+has a special Kubernetes service defined with an endpoint pointing to the other cluster's Kong. This
+way any pod can access services exposed at the other cluster via the internal service hostname and port of
+this special service.  The figure below illustrates the details of how Kong and external services work
+together to realize cross-cluster communication.
+
+.. image:: images/kong-extservice.png
+   :width: 600
+
+
+
+Prerequisites
+-------------
+
+Both RIC and AUX clusters need to fulfill the following prerequisites.
+
+- Kubernetes v.1.16.0 or above
+- helm v2.12.3/v3.5.x or above
+- Read-write access to directory /mnt
+
+The following two sections show two example methods to create an environment for installing RIC.
+
+VirtualBox VMs as Installation Hosts
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The deployment of Near Realtime RIC can be done on a wide range of hosts, including
+bare metal servers, OpenStack VMs, and VirtualBox VMs.  This section provides detailed instructions
+for setting up Oracle VirtualBox VMs to be used as installation hosts.
+
+.. include:: ./ric/installation-virtualbox.rst
+
+
+One-Node Kubernetes Cluster
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+This section describes how to set up a one-node Kubernetes cluster onto a VM installation host.
+
+.. include:: ./ric/installation-k8s1node.rst
+
+
+RIC Platform
+-------------------------------------------
+
+After the Kubernetes cluster is installed, the next step is to install the (Near Realtime) RIC Platform.
+
+See instructions in ric-plt/ric-dep: https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-ric-dep/en/latest/installation-guides.html
+
+
+AUX Functionalities (Optional)
+---------------------------------------------
+
+.. include:: ./ric/installation-aux.rst
+
+
+RIC Applications
+---------------------------
+
+See instructions in ric-plt/ric-dep: https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-ric-dep/en/latest/installation-guides.html