1d2d973b2dffe250cdb367cc3ea8882083090db4
[nonrtric/plt/ranpm.git] / install / README.md
1 ## License
2
3 Copyright (C) 2023 Nordix Foundation. All rights reserved.
4 Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved.
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 ## Prerequisites
18
19 The ranpm setup works on linux/MacOS or on windows via WSL using a local or remote kubernetes cluster.
20
21 - local kubectl
22 - kubernetes cluster
23 - local docker for building images
24
25 It is recommended to run the ranpm on a kubernetes cluster instead of local docker-desktop etc as the setup requires a fair amount of computer resources.
26
27 # Requirement on kubernetes
28
29 The demo set can be run on local or remote kubernetes.
30 Kubectl must be configured to point to the applicable kubernetes instance.
31 Nodeports exposed by the kubernetes instance must be accessible by the local machine - basically the kubernetes control plane IP needs to be accessible from the local machine.
32
33 - Latest version of istio installed
34
35 # Other requirements
36 - helm3
37 - bash
38 - cmd 'envsubst' must be installed (check by cmd: 'type envsubst' )
39 - cmd 'jq' must be installed (check by cmd: 'type jq' )
40 - keytool
41 - openssl
42
43
44 ## Before installation
45 The following images need to be built manually. If remote or multi node cluster is used, then an image repo needs to be available to push the built images to.
46 If external repo is used, use the same repo for all built images and configure the reponame in `helm/global-values.yaml`. The parameter value of extimagerepo shall have a trailing /. 
47
48 Build the following images (build instruction in each dir)
49 - https-server
50 - pm-rapp
51
52
53 ## Installation
54
55 The installation is made by a few scripts.
56 The main part of the ranpm is installed by a single script. Then, additional parts can be added on top. All installations in kubernetes is made by helm charts.
57
58 The following scripts are provided for installing (install-nrt.sh mush be installed first):
59
60 - install-nrt.sh : Installs the main parts of the ranpm setup
61 - install-pm-log.sh : Installs the producer for influx db
62 - install-pm-influx-job.sh : Sets up an alternative job to produce data stored in influx db.
63 - install-pm-rapp.sh : Installs a rapp that subscribe and print out received data
64
65 ## Uninstallation
66
67 There is a corresponding uninstall script for each install script. However, it is enough to just run `uninstall-nrt.sh` and `uninstall-pm-rapp.sh´.
68
69 ## Exposed ports to APIs
70 All exposed APIs on individual port numbers (nodeports) on the address of the kubernetes control plane.
71
72 ### Keycloak API
73 Keycloak API accessed via proxy (proxy is needed to make keycloak issue token with the internal address of keycloak).
74 - nodeport: 31784
75
76 ### OPA rules bundle server
77 Server for posting updated OPA rules.
78 - nodeport: 32201
79
80 ### Information coordinator Service
81 Direct access to ICS API.
82 -nodeports (http and https): 31823, 31824
83
84 ### Ves-Collector
85 Direct access to the Ves-Collector
86 - nodeports (http and https): 31760, 31761
87
88 ## Exposed ports to admin tools
89 As part of the ranpm installation, a number of admin tools are installed.
90 The tools are accessed via a browser on individual port numbers (nodeports) on the address of the kubernetes control plane.
91
92 ### Keycload admin console
93 Admin tool for keycloak.
94 - nodeport : 31788
95 - user: admin
96 - password: admin
97
98 ### Redpanda consule
99 With this tool the topics, consumer etc can be viewed.
100 - nodeport: 31767
101
102 ### Minio web
103 Browser for minio filestore.
104 - nodeport: 31768
105 - user: admin
106 - password: adminadmin
107
108 ### Influx db
109 Browser for influx db.
110 - nodeport: 31812
111 - user: admin
112 - password: mySuP3rS3cr3tT0keN
113
114 ### Controlpanel
115 Browser for control-panel \
116 browser: `<host ip>:30091/ei-coordinator`
117 - nodeport: 30091