8336c365dfe2d8dfaf71a2b2cfe4cf67739f8aa1
[ric-plt/ric-dep.git] / docs / installation-ric.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. ===============LICENSE_START=======================================================
4 .. Copyright (C) 2019-2020 AT&T Intellectual Property
5 .. ===================================================================================
6 .. This documentation file is distributed under the Creative Commons Attribution
7 .. 4.0 International License (the "License"); you may not use this file except in
8 .. compliance with the License.  You may obtain a copy of the License at
9 ..
10 .. http://creativecommons.org/licenses/by/4.0
11 ..
12 .. This file is distributed on an "AS IS" BASIS,
13 .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 .. See the License for the specific language governing permissions and
15 .. limitations under the License.
16 .. ===============LICENSE_END=========================================================
17
18
19 Getting and Preparing Deployment Scripts
20 ----------------------------------------
21
22 Clone the ric-plt/dep git repository that has deployment scripts and support files on the target VM.
23
24 ::
25
26   % git clone "https://gerrit.o-ran-sc.org/r/ric-plt/ric-dep"
27
28
29 .. code:: bash
30
31   git clone "https://gerrit.o-ran-sc.org/r/ric-plt/ric-dep"
32
33 Deploying the Infrastructure and Platform Groups
34 ------------------------------------------------
35
36 Use the scripts below to install kubernetes, kubernetes-CNI, helm and docker on a fresh 
37 Ubuntu 20.04 installation. Note that since May 2022 there's no need for anything form the repo it/dep
38 anymore.
39
40 .. code:: bash
41
42   # install kubernetes, kubernetes-CNI, helm and docker 
43   cd ric-dep/bin
44   ./install_k8s_and_helm.sh
45
46   # install chartmuseum into helm and add ric-common templates
47   ./install_common_templates_to_helm.sh
48
49 After the recipes are edited and helm started, the Near Realtime RIC platform is ready to be deployed.
50
51 .. code:: bash
52
53   cd ric-dep/bin
54   ./install -f ../RECIPE_EXAMPLE/PLATFORM/example_recipe_latest_stable.yaml
55
56 Modify the deployment recipe
57 ----------------------------
58
59 Edit the recipe files ./RECIPE_EXAMPLE/example_recipe_latest_stable.yaml (which is 
60 a softlink that points to the latest release version). "example_recipe_latest_unstable.yaml
61 points to the latest example file that is under current development.
62
63 .. code:: bash
64
65   extsvcplt:
66     ricip: ""
67     auxip: ""
68
69 - Deployment scripts support both helm v2 and v3. The deployment script will determine the helm version installed in cluster during the deployment.
70 - To specify which version of the RIC platform components will be deployed, update the RIC platform component container tags in their corresponding section.
71 - You can specify which docker registry will be used for each component. If the docker registry requires login credential, you can add the credential in the following section. Please note that the installation suite has already included credentials for O-RAN Linux Foundation docker registries. Please do not create duplicate entries.
72
73 .. code:: bash
74
75   docker-credential:
76     enabled: true
77     credential:
78       SOME_KEY_NAME:
79         registry: ""
80         credential:
81           user: ""
82           password: ""
83           email: ""
84
85 For more advanced recipe configuration options, please refer to the recipe configuration guideline.
86
87
88
89 Checking the Deployment Status
90 ------------------------------
91
92 Now check the deployment status after a short wait. Results similar to the
93 output shown below indicate a complete and successful deployment. Check the
94 STATUS column from both kubectl outputs to ensure that all are either
95 "Completed" or "Running", and that none are "Error" or "ImagePullBackOff".
96
97 .. code::
98
99   # helm list
100   NAME                  REVISION        UPDATED                         STATUS          CHART                   APP VERSION     NAMESPACE
101   r3-a1mediator         1               Thu Jan 23 14:29:12 2020        DEPLOYED        a1mediator-3.0.0        1.0             ricplt
102   r3-appmgr             1               Thu Jan 23 14:28:14 2020        DEPLOYED        appmgr-3.0.0            1.0             ricplt
103   r3-dbaas1             1               Thu Jan 23 14:28:40 2020        DEPLOYED        dbaas1-3.0.0            1.0             ricplt
104   r3-e2mgr              1               Thu Jan 23 14:28:52 2020        DEPLOYED        e2mgr-3.0.0             1.0             ricplt
105   r3-e2term             1               Thu Jan 23 14:29:04 2020        DEPLOYED        e2term-3.0.0            1.0             ricplt
106   r3-infrastructure     1               Thu Jan 23 14:28:02 2020        DEPLOYED        infrastructure-3.0.0    1.0             ricplt
107   r3-jaegeradapter      1               Thu Jan 23 14:29:47 2020        DEPLOYED        jaegeradapter-3.0.0     1.0             ricplt
108   r3-rsm                1               Thu Jan 23 14:29:39 2020        DEPLOYED        rsm-3.0.0               1.0             ricplt
109   r3-rtmgr              1               Thu Jan 23 14:28:27 2020        DEPLOYED        rtmgr-3.0.0             1.0             ricplt
110   r3-submgr             1               Thu Jan 23 14:29:23 2020        DEPLOYED        submgr-3.0.0            1.0             ricplt
111   r3-vespamgr           1               Thu Jan 23 14:29:31 2020        DEPLOYED        vespamgr-3.0.0          1.0             ricplt
112
113   # kubectl get pods -n ricplt
114   NAME                                               READY   STATUS             RESTARTS   AGE
115   deployment-ricplt-a1mediator-69f6d68fb4-7trcl      1/1     Running            0          159m
116   deployment-ricplt-appmgr-845d85c989-qxd98          2/2     Running            0          160m
117   deployment-ricplt-dbaas-7c44fb4697-flplq           1/1     Running            0          159m
118   deployment-ricplt-e2mgr-569fb7588b-wrxrd           1/1     Running            0          159m
119   deployment-ricplt-e2term-alpha-db949d978-rnd2r     1/1     Running            0          159m
120   deployment-ricplt-jaegeradapter-585b4f8d69-tmx7c   1/1     Running            0          158m
121   deployment-ricplt-rsm-755f7c5c85-j7fgf             1/1     Running            0          158m
122   deployment-ricplt-rtmgr-c7cdb5b58-2tk4z            1/1     Running            0          160m
123   deployment-ricplt-submgr-5b4864dcd7-zwknw          1/1     Running            0          159m
124   deployment-ricplt-vespamgr-864f95c9c9-5wth4        1/1     Running            0          158m
125   r3-infrastructure-kong-68f5fd46dd-lpwvd            2/2     Running            3          160m
126
127   # kubectl get pods -n ricinfra
128   NAME                                        READY   STATUS      RESTARTS   AGE
129   deployment-tiller-ricxapp-d4f98ff65-9q6nb   1/1     Running     0          163m
130   tiller-secret-generator-plpbf               0/1     Completed   0          163m
131
132 Checking Container Health
133 -------------------------
134
135 Check the health of the application manager platform component by querying it
136 via the ingress controller using the following command.
137
138 .. code:: bash
139
140   % curl -v http://localhost:32080/appmgr/ric/v1/health/ready
141
142 The output should look as follows.
143
144 .. code::
145
146   *   Trying 10.0.2.100...
147   * TCP_NODELAY set
148   * Connected to 10.0.2.100 (10.0.2.100) port 32080 (#0)
149   > GET /appmgr/ric/v1/health/ready HTTP/1.1
150   > Host: 10.0.2.100:32080
151   > User-Agent: curl/7.58.0
152   > Accept: */*
153   >
154   < HTTP/1.1 200 OK
155   < Content-Type: application/json
156   < Content-Length: 0
157   < Connection: keep-alive
158   < Date: Wed, 22 Jan 2020 20:55:39 GMT
159   < X-Kong-Upstream-Latency: 0
160   < X-Kong-Proxy-Latency: 2
161   < Via: kong/1.3.1
162   <
163   * Connection #0 to host 10.0.2.100 left intact
164
165
166 Undeploying the Infrastructure and Platform Groups
167 --------------------------------------------------
168
169 To undeploy all the containers, perform the following steps in a root shell
170 within the it-dep repository.
171
172 .. code:: bash
173
174   # cd bin
175   # ./uninstall
176
177 Results similar to below indicate a complete and successful cleanup.
178
179 .. code::
180
181   # ./undeploy-ric-platform
182   Undeploying RIC platform components [appmgr rtmgr dbaas1 e2mgr e2term a1mediator submgr vespamgr rsm jaegeradapter infrastructure]
183   release "r3-appmgr" deleted
184   release "r3-rtmgr" deleted
185   release "r3-dbaas1" deleted
186   release "r3-e2mgr" deleted
187   release "r3-e2term" deleted
188   release "r3-a1mediator" deleted
189   release "r3-submgr" deleted
190   release "r3-vespamgr" deleted
191   release "r3-rsm" deleted
192   release "r3-jaegeradapter" deleted
193   release "r3-infrastructure" deleted
194   configmap "ricplt-recipe" deleted
195   namespace "ricxapp" deleted
196   namespace "ricinfra" deleted
197   namespace "ricplt" deleted
198
199
200 Restarting the VM
201 -----------------
202
203 After a reboot of the VM, and a suitable delay for initialization,
204 all the containers should be running again as shown above.
205
206 RIC Applications
207 ----------------
208
209 .. include:: installation-xapps.rst
210
211 OPTIONALLY use Redis Cluster (instead of Redis standalone)
212 ----------------------------------------------------------
213
214 .. include:: installation-rediscluster.rst