Adding a note on helm3 for Near RIC installation procedure
[it/dep.git] / docs / installation-ric.rst
index d93cf30..2325fb9 100644 (file)
@@ -1,8 +1,8 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. ===============LICENSE_START=======================================================
+.. ---------------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
 .. 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:
-
-#. Docker registry URL;
-#. Docker registry credential;
-#. Helm repo credential;
-#. 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.
+
+.. include:: ./ric/installation-ricplt.rst
+
+
+AUX Functionalities (Optional)
+---------------------------------------------
+
+.. include:: ./ric/installation-aux.rst
+
+
+RIC Applications
+---------------------------
+
+.. include:: ./ric/installation-xapps.rst