Moving RMR message reciver into go routine
[ric-plt/a1.git] / docs / installation-guide.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright (C) 2019 AT&T Intellectual Property
4
5 Installation Guide
6 ==================
7
8 .. contents::
9    :depth: 3
10    :local:
11
12 Environment Variables
13 ---------------------
14
15 You can set the following environment variables when launching a container to change the A1 behavior:
16
17 1. ``A1_RMR_RETRY_TIMES``: the number of times failed rmr operations such as timeouts and send failures should be retried before A1 gives up and returns a 503. The default is ``4``.
18
19 2. ``INSTANCE_DELETE_NO_RESP_TTL``: Please refer to the delete flowchart in docs/; this is ``T1`` there. The default is 5 (seconds). Basically, the number of seconds that a1 waits to remove an instance from the database after a delete is called in the case that no downstream apps responded.
20
21 3. ``INSTANCE_DELETE_RESP_TTL``: Please refer to the delete flowchart in docs/; this is ``T2`` there. The default is 5 (seconds). Basically, the number of seconds that a1 waits to remove an instance from the database after a delete is called in the case that downstream apps responded.
22
23 4. ``USE_FAKE_SDL``: This allows testing of the A1 feature without a DBaaS SDL container.  The default is False.
24
25 5. ``prometheus_multiproc_dir``: The directory where Prometheus gathers metrics.  The default is /tmp.
26
27
28 Kubernetes Deployment
29 ---------------------
30 The official Helm chart for the A1 Mediator is in a deployment repository, which holds all of the Helm charts 
31 for the RIC platform. There is a helm chart in `integration_tests` here for running the integration tests as
32 discussed above.
33
34 Local Deployment
35 ----------------
36
37 Build and run the A1 mediator locally using the docker CLI as follows.
38
39 Build the image
40 ~~~~~~~~~~~~~~~
41 ::
42
43    docker build --no-cache -t a1:latest .
44
45 .. _running-1:
46
47 Start the container
48 ~~~~~~~~~~~~~~~~~~~
49
50 The A1 container depends on a companion DBaaS (SDL) container, but if that is not convenient set
51 an environment variable as shown below to mock that service.  Also a sample RMR routing table is
52 supplied in file `local.rt` for mounting as a volume.  The following command uses both:
53
54 ::
55
56    docker run -e USE_FAKE_SDL=True -p 10000:10000 -v /path/to/local.rt:/opt/route/local.rt a1:latest
57
58 View container API
59 ~~~~~~~~~~~~~~~~~~
60
61 A web user interface generated from the OpenAPI specification can be accessed at this URL:
62
63 ::
64
65     http://docker-host-name-or-ip:10000/ui
66
67 Check container health
68 ~~~~~~~~~~~~~~~~~~~~~~
69
70 The following command requests the container health.  Expect an internal server error if the
71 Storage Data Layer (SDL) service is not available or has not been mocked as shown above.
72
73 ::
74
75     curl docker-host-name-or-ip:10000/a1-p/healthcheck