Move integration tests to k8s
[ric-plt/a1.git] / docs / index.rst
1 .. ==================================================================================
2 ..       Copyright (c) 2019 Nokia
3 ..       Copyright (c) 2018-2019 AT&T Intellectual Property.
4 ..
5 ..   Licensed under the Apache License, Version 2.0 (the "License");
6 ..   you may not use this file except in compliance with the License.
7 ..   You may obtain a copy of the License at
8 ..
9 ..          http://www.apache.org/licenses/LICENSE-2.0
10 ..
11 ..   Unless required by applicable law or agreed to in writing, software
12 ..   distributed under the License 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 .. ==================================================================================
17
18 A1 Mediator
19 ===========
20
21 API
22 ===
23
24 You can see the API (OpenAPI3 spec) at ``a1/openapi.yml``. You can also
25 see the “pretty” version if you run the container at
26 ``http://localhost:10000/ui/``.
27
28 Unit Testing
29 ============
30
31 Note, this requires rmr to be installed!
32
33 ::
34
35    tox
36    open htmlcov/index.html
37
38 Integration testing
39 ===================
40
41 This tests A1’s external API with two test receivers. Note, this
42 currently depends on helm+k8s, meaning you cannot run this if
43 this is not installed.
44
45 If you've never run the integration tests before, build the test receiver
46 ::
47
48     cd integration_tests
49     docker build  --no-cache -t testreceiver:latest .
50
51 Else, from the root,
52 ::
53
54    tox -c tox-integration.ini
55
56 This script:
57 1. Deploys 3 helm charts into a local kubernetes installation
58 2. Port forwards a pod ClusterIP to localhost
59 3. Uses “tavern” to run some tests against the server
60 4. Barrages the server with apache bench
61 5. Tears everything down
62
63
64 Running
65 =======
66
67 Optional ENV Variables
68 ----------------------
69
70 You can set the following ENVs to change the A1 behavior: 1)
71 ``RMR_RCV_RETRY_INTERVAL`` the number of milliseconds that execution
72 will defer (back to the server loop to handle http request if
73 applicable) when an expected ack is not received by rmr call. The
74 default is ``1000`` (1s). The time for the full HTTP request to
75 ``PUT /policies`` will be > this if an ACK is not recieved within 10ms,
76 which is an initial delay until the first rcv is tried. 2)
77 ``RMR_RETRY_TIMES`` the number of times failed rmr operations such as
78 timeouts and send failures should be retried before A1 gives up and
79 returns a 503. The default is ``4``.
80
81 K8S
82 ---
83 The "real" helm chart for A1 is in the LF it/dep repo. That repo holds all of the helm charts for the RIC platform. There is a helm chart in `integration_tests` here for running the integration tests as discussed above.
84
85 Local Docker
86 ------------
87
88 building
89 ~~~~~~~~
90 ::
91
92    docker build --no-cache -t a1:X.Y.Z .
93
94 .. _running-1:
95
96 running
97 ~~~~~~~
98
99 ::
100
101    docker run -dt -p 10000:10000 -v /path/to/localrt:/opt/route/local.rt -v /path/to/ricmanifest:/opt/ricmanifest.json a1:X.Y.Z -v