Minor changes to the deployment guides.
[it/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 it/dep git repository that has deployment scripts and support files on the target VM.
23 (You might have already done this in a previous step.)
24
25 ::
26
27   % git clone https://gerrit.o-ran-sc.org/r/it/dep
28
29 Check out the appropriate branch of the repository with the release you want to deploy.
30 For example:
31
32 .. code:: bash
33
34   git clone https://gerrit.o-ran-sc.org/r/it/dep
35   cd dep
36   git submodule update --init --recursive --remote
37
38 Modify the deployment recipe
39 ----------------------------
40
41 Edit the recipe files ./RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml.
42
43 - Specify the IP addresses used by the RIC and AUX cluster ingress controller (e.g., the main interface IP) in the following section. If you do not plan to set up an AUX cluster, you can put down any private IPs (e.g., 10.0.2.1 and 10.0.2.2).
44
45 .. code:: bash
46
47   extsvcplt:
48     ricip: ""
49     auxip: ""
50
51 - To specify which version of the RIC platform components will be deployed, update the RIC platform component container tags in their corresponding section.
52 - 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.
53
54 .. code:: bash
55
56   docker-credential:
57     enabled: true
58     credential:
59       SOME_KEY_NAME:
60         registry: ""
61         credential:
62           user: ""
63           password: ""
64           email: ""
65
66 For more advanced recipe configuration options, please refer to the recipe configuration guideline.
67
68
69 Deploying the Infrastructure and Platform Groups
70 ------------------------------------------------
71
72 After the recipes are edited, the Near Realtime RIC platform is ready to be deployed.
73
74 .. code:: bash
75
76   cd dep/bin
77   ./deploy-ric-platform ../RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml
78
79
80 Checking the Deployment Status
81 ------------------------------
82
83 Now check the deployment status after a short wait. Results similar to the
84 output shown below indicate a complete and successful deployment. Check the
85 STATUS column from both kubectl outputs to ensure that all are either
86 "Completed" or "Running", and that none are "Error" or "ImagePullBackOff".
87
88 .. code::
89
90   # helm list
91   NAME                  REVISION        UPDATED                         STATUS          CHART                   APP VERSION     NAMESPACE
92   r3-a1mediator         1               Thu Jan 23 14:29:12 2020        DEPLOYED        a1mediator-3.0.0        1.0             ricplt
93   r3-appmgr             1               Thu Jan 23 14:28:14 2020        DEPLOYED        appmgr-3.0.0            1.0             ricplt
94   r3-dbaas1             1               Thu Jan 23 14:28:40 2020        DEPLOYED        dbaas1-3.0.0            1.0             ricplt
95   r3-e2mgr              1               Thu Jan 23 14:28:52 2020        DEPLOYED        e2mgr-3.0.0             1.0             ricplt
96   r3-e2term             1               Thu Jan 23 14:29:04 2020        DEPLOYED        e2term-3.0.0            1.0             ricplt
97   r3-infrastructure     1               Thu Jan 23 14:28:02 2020        DEPLOYED        infrastructure-3.0.0    1.0             ricplt
98   r3-jaegeradapter      1               Thu Jan 23 14:29:47 2020        DEPLOYED        jaegeradapter-3.0.0     1.0             ricplt
99   r3-rsm                1               Thu Jan 23 14:29:39 2020        DEPLOYED        rsm-3.0.0               1.0             ricplt
100   r3-rtmgr              1               Thu Jan 23 14:28:27 2020        DEPLOYED        rtmgr-3.0.0             1.0             ricplt
101   r3-submgr             1               Thu Jan 23 14:29:23 2020        DEPLOYED        submgr-3.0.0            1.0             ricplt
102   r3-vespamgr           1               Thu Jan 23 14:29:31 2020        DEPLOYED        vespamgr-3.0.0          1.0             ricplt
103
104   # kubectl get pods -n ricplt
105   NAME                                               READY   STATUS             RESTARTS   AGE
106   deployment-ricplt-a1mediator-69f6d68fb4-7trcl      1/1     Running            0          159m
107   deployment-ricplt-appmgr-845d85c989-qxd98          2/2     Running            0          160m
108   deployment-ricplt-dbaas-7c44fb4697-flplq           1/1     Running            0          159m
109   deployment-ricplt-e2mgr-569fb7588b-wrxrd           1/1     Running            0          159m
110   deployment-ricplt-e2term-alpha-db949d978-rnd2r     1/1     Running            0          159m
111   deployment-ricplt-jaegeradapter-585b4f8d69-tmx7c   1/1     Running            0          158m
112   deployment-ricplt-rsm-755f7c5c85-j7fgf             1/1     Running            0          158m
113   deployment-ricplt-rtmgr-c7cdb5b58-2tk4z            1/1     Running            0          160m
114   deployment-ricplt-submgr-5b4864dcd7-zwknw          1/1     Running            0          159m
115   deployment-ricplt-vespamgr-864f95c9c9-5wth4        1/1     Running            0          158m
116   r3-infrastructure-kong-68f5fd46dd-lpwvd            2/2     Running            3          160m
117
118   # kubectl get pods -n ricinfra
119   NAME                                        READY   STATUS      RESTARTS   AGE
120   deployment-tiller-ricxapp-d4f98ff65-9q6nb   1/1     Running     0          163m
121   tiller-secret-generator-plpbf               0/1     Completed   0          163m
122
123 Checking Container Health
124 -------------------------
125
126 Check the health of the application manager platform component by querying it
127 via the ingress controller using the following command.
128
129 .. code:: bash
130
131   % curl -v http://localhost:32080/appmgr/ric/v1/health/ready
132
133 The output should look as follows.
134
135 .. code::
136
137   *   Trying 10.0.2.100...
138   * TCP_NODELAY set
139   * Connected to 10.0.2.100 (10.0.2.100) port 32080 (#0)
140   > GET /appmgr/ric/v1/health/ready HTTP/1.1
141   > Host: 10.0.2.100:32080
142   > User-Agent: curl/7.58.0
143   > Accept: */*
144   >
145   < HTTP/1.1 200 OK
146   < Content-Type: application/json
147   < Content-Length: 0
148   < Connection: keep-alive
149   < Date: Wed, 22 Jan 2020 20:55:39 GMT
150   < X-Kong-Upstream-Latency: 0
151   < X-Kong-Proxy-Latency: 2
152   < Via: kong/1.3.1
153   <
154   * Connection #0 to host 10.0.2.100 left intact
155
156
157 Undeploying the Infrastructure and Platform Groups
158 --------------------------------------------------
159
160 To undeploy all the containers, perform the following steps in a root shell
161 within the it-dep repository.
162
163 .. code:: bash
164
165   # cd bin
166   # ./undeploy-ric-platform
167
168 Results similar to below indicate a complete and successful cleanup.
169
170 .. code::
171
172   # ./undeploy-ric-platform
173   Undeploying RIC platform components [appmgr rtmgr dbaas1 e2mgr e2term a1mediator submgr vespamgr rsm jaegeradapter infrastructure]
174   release "r3-appmgr" deleted
175   release "r3-rtmgr" deleted
176   release "r3-dbaas1" deleted
177   release "r3-e2mgr" deleted
178   release "r3-e2term" deleted
179   release "r3-a1mediator" deleted
180   release "r3-submgr" deleted
181   release "r3-vespamgr" deleted
182   release "r3-rsm" deleted
183   release "r3-jaegeradapter" deleted
184   release "r3-infrastructure" deleted
185   configmap "ricplt-recipe" deleted
186   namespace "ricxapp" deleted
187   namespace "ricinfra" deleted
188   namespace "ricplt" deleted
189
190
191 Restarting the VM
192 -----------------
193
194 After a reboot of the VM, and a suitable delay for initialization,
195 all the containers should be running again as shown above.