.. limitations under the License.
.. ===============LICENSE_END=========================================================
+Resource Requirements
+---------------------
+
+To run the RIC-AUX cluster in a dev testing setting, the minimum requirement
+for resources is a VM with 4 vCPUs, 16G RAM and at least 40G of disk space.
+
+
Getting and Preparing Deployment Scripts
----------------------------------------
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:
+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;
+#. Docker registry URL
+#. Docker registry credential
+#. Helm repo credential
#. Component docker container image tags.
-Deploying the Infrastructure and Platform Groups
-------------------------------------------------
+Deploying the Aux Group
+-----------------------
-After the recipes are edited, the Near Realtime RIC is ready to be deployed.
+After the recipes are edited, the AUX group 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
+ ./deploy-ric-infra ../RECIPE_EXAMPLE/RIC_INFRA_AUX_RECIPE_EXAMPLE
+ ./deploy-ric-aux ../RECIPE_EXAMPLE/RIC_INFRA_RECIPE_EXAMPLE
Checking the Deployment Status
.. 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
-
+ TBD
.. image:: images/nrtric-amber.png
:width: 600
-Within the RIC cluster, Kubernetes resources are deployed using three name spaces: ricinfra, ricplt, and ricxapp. Similarly, within the AUX cluster, Kubernetes resources are deployed using two name spaces: ricinfra, and ricaux.
+Within the RIC cluster, Kubernetes resources are deployed using three name spaces: ricinfra, ricplt,
+and ricxapp. 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
.. ===============LICENSE_END=========================================================
-
-Resource Requirements
----------------------
-
-To run Near Realtime RAN Controller in a dev testing setting , the minimum requirement for resources is a VM with 4 vCPUs, 16G RAM, and at least 40G of vDisk space.
-
-
-
Script for Setting Up 1-node Kubernetes Cluster
-----------------------------------------------
+The it/dep repo can be used for generating a simple script that can help setting up a
+one-node Kubernetes cluster for dev and testing purposes. Related files are under the
+**ric-infra/00-Kubernetes** directory. To get started, clone the repository on the
+target VM:
+
+::
+
+ git clone https://gerrit.o-ran-sc.org/r/it/dep
-The it/dep repo can be used for generating a simple script that can help setting up a one-node Kubernetes cluster for dev and testing purposes. Related files are under the **ric-infra/00-Kubernetes** directory.
Configurations
--------------
The generation of the script reads in the parameters from the following files:
-- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs has special requirements, such as running private Docker registry with self-signed certificates, or hostnames that can be only resolved via private /etc/hosts entries, such parameters are entered into this file.
-- etc/infra.rc: This file specifies the versions docker host, Kubernetes, and Kubernetes CNI versions. If a version is left empty, the installation will use the default version that the OS package management software would install.
-- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber release yet.
+- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs
+ has special requirements, such as running private Docker registry with self-signed certificates,
+ or hostnames that can be only resolved via private /etc/hosts entries, such parameters are
+ entered into this file.
+- etc/infra.rc: This file specifies the docker host, Kubernetes, and Kubernetes CNI versions.
+ If a version is left empty, the installation will use the default version that the OS package
+ management software would install.
+- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies
+ parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber
+ release yet.
Generating Set-up Script
------------------------
-After the configurations are updated, the following steps will create a script file that can be used for setting up a one-node Kubernetes cluster.
+After the configurations are updated, the following steps will create a script file that can be
+used for setting up a one-node Kubernetes cluster. You must run this command on a Linux machine
+with the 'envsubst' command installed.
::
- cd bin
- ./gen-cloud-init.sh
+ % cd bin
+ % ./gen-cloud-init.sh
A file named **k8s-1node-cloud-init.sh** would now appear under the bin directory.
The new **k8s-1node-cloud-init.sh** file is now ready for setting up the Kubernetes cluster.
-It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script will replace any existing installation of Docker host, Kubernetes, and Helm on the VM.
+It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script
+will replace any existing installation of Docker host, Kubernetes, and Helm on the VM. The
+script will reboot the machine upon successful completion. Run the script like this:
+
+::
+
+ % sudo -i
+ # ./k8s-1node-cloud-init.sh
-It can also be used as the user-data (a.k.a. cloud-init script) supplicated to Open Stack when launching a new Ubuntu 16.04 or 18.04 VM.
+This script can also be used as the user-data (a.k.a. cloud-init script) supplied to Open Stack
+when launching a new Ubuntu 16.04 or 18.04 VM.
-Upon successful execution of the script, when integrated by the kubectl command, the VM should display information similar to below:
+Upon successful execution of the script and reboot of the machine, when queried in a root shell
+with the kubectl command the VM should display information similar to below:
::
kube-system kube-proxy-867v5 1/1 Running 0 103m
kube-system kube-scheduler-ljitest 1/1 Running 0 102m
kube-system tiller-deploy-68bf6dff8f-6pwvc 1/1 Running 0 102m
-
The set up requires two VMs connected by a private network. With VirtualBox, this can be
done by going under its "Preferences" menu and setting up a private NAT network.
-#. "Preference", then select the "Network" tab;
+#. Pick "Preferences", then select the "Network" tab;
#. Click on the "+" icon to create a new NAT network. A new entry will appear in the NAT networks list
#. Double click on the new network to edit its details; give it a name such as "RICNetwork"
-#. On the next page, make sure to check: "Enable Network", uncheck the "Supports DHCP" box, and make a note of the "Network CIDR" (for this example, it is 10.0.2.0/24);
-#. Click on the "Port Forwarding" button to create the following rules:
+#. In the dialog, make sure to check the "Enable Network" box, uncheck the "Supports DHCP" box, and make a note of the "Network CIDR" (for this example, it is 10.0.2.0/24);
+#. Click on the "Port Forwarding" button then in the table create the following rules:
#. "ssh to ric", TCP, 127.0.0.1, 22222, 10.0.2.100, 22;
#. "ssh to aux", TCP, 127.0.0.1, 22223, 10.0.2.101, 22;
#. "entry to ric", TCP, 127.0.0.1, 22224, 10.0.2.100, 32080;
#. "entry to aux", TCP, 127.0.0.1, 22225, 10.0.2.101, 32080.
-#. "Ok" all the way back to create the network.
+#. Click "Ok" all the way back to create the network.
Creating VMs
#. Check "Enable Network Adapter";
#. Attached to "NAT Network";
- #. Network name for what was created in the previous section: "RICNetwork".
+ #. Select the Network that was created in the previous section: "RICNetwork".
Repeat the process and create the second VM named **myaux**.
Booting VM and OS Installation
------------------------------
-Follow the OS installation steps to install OS to the VM virtual disk media. Make sure to install openssh server.
+Follow the OS installation steps to install OS to the VM virtual disk media. During the setup you must
+configure static IP addresses as discussed next. And make sure to install openssh server.
VM Network Configuration
The network interface is configured with a static IP address:
- IP Address: 10.0.2.100 for myric or 10.0.2.101 for myaux;
-- Network: 10.0.2.10/24, or network mask 255.255.255.0
+- Subnet 10.0.2.0/24, or network mask 255.255.255.0
- Default gateway: 10.0.2.1
-- Name server: 8.8.8.8
+- Name server: 8.8.8.8; if access to that is is blocked, configure a local DNS server
Accessing the VMs