...
Code Block | ||||
---|---|---|---|---|
| ||||
sudo ./bin/deploy-nonrtric.sh -f dep/nonrtric/RECIPE_EXAMPLE/example_recipe.yaml |
Additional instructions for RANPM Installation
Prerequisites
The ranpm setup works on linux/MacOS or on windows via WSL using a local or remote kubernetes cluster.
Required:
- local kubectl utility
- a connected kubernetes cluster
- a local version of docker for building images
It is recommended to run the ranpm on a kubernetes cluster instead of local docker-desktop etc. as the deployment is somewhat resource intensive.
Requirement on Kubernetes
The demo set can be run on local or remote kubernetes cluster. Kubectl must be configured to point to the applicable kubernetes instance. 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. (The installation scripts take care of getting a token form Istio, using dep/ranpm/install/scripts/kube_get_controlplane_host.sh as the baseurl. The K8s controlplane should be accessible from localhost)
- The latest version of
istio
must be installed on the cluster.
Other requirements
- helm3
bash
- library '
envsubst
' must be installed (check installation using command:type envsubst
) - library '
jq
' must be installed check installation using command:type jq
) keytool
openssl
Before installation
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. 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 '/' at the end.
Build the following images (Build instruction in each directory)
https-server
pm-rapp
Installation (RANPM Only)
The installation is made by a few scripts. 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.
The following scripts are provided for installing (install-nrt.sh
must be executed first):
The kubeconfig
file of the local cluster should be aligned to the cluster's control plane node's internal IP
install-nrt.sh
: Installs the main parts of the ranpm setupinstall-pm-log.sh
: Installs the producer for influx dbinstall-pm-influx-job.sh
: Sets up an alternative job to produce data stored in influx db.install-pm-rapp.sh
: Installs a skeleton rApp-placeholder that subscribes and print out received data
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
>sudo kubectl get po -n nonrtric
NAME READY STATUS RESTARTS AGE
bundle-server-7f5c4965c7-vsgn7 1/1 Running 0 8m16s
dfc-0 2/2 Running 0 6m31s
influxdb2-0 1/1 Running 0 8m15s
informationservice-776f789967-dxqrj 1/1 Running 0 6m32s
kafka-1-entity-operator-fcb6f94dc-fkx8z 3/3 Running 0 7m17s
kafka-1-kafka-0 1/1 Running 0 7m43s
kafka-1-zookeeper-0 1/1 Running 0 8m7s
kafka-client 1/1 Running 0 10m
kafka-producer-pm-json2influx-0 1/1 Running 0 6m32s
kafka-producer-pm-json2kafka-0 1/1 Running 0 6m32s
kafka-producer-pm-xml2json-0 1/1 Running 0 6m32s
keycloak-597d95bbc5-nsqww 1/1 Running 0 10m
keycloak-proxy-57f6c97984-hl2b6 1/1 Running 0 10m
message-router-7d977b5554-8tp5k 1/1 Running 0 8m15s
minio-0 1/1 Running 0 8m15s
minio-client 1/1 Running 0 8m16s
opa-ics-54fdf87d89-jt5rs 1/1 Running 0 6m32s
opa-kafka-6665d545c5-ct7dx 1/1 Running 0 8m16s
opa-minio-5d6f5d89dc-xls9s 1/1 Running 0 8m16s
pm-producer-json2kafka-0 2/2 Running 0 6m32s
pm-rapp 1/1 Running 0 67s
pmlog-0 2/2 Running 0 82s
redpanda-console-b85489cc9-nqqpm 1/1 Running 0 8m15s
strimzi-cluster-operator-57c7999494-kvk69 1/1 Running 0 8m53s
ves-collector-bd756b64c-wz28h 1/1 Running 0 8m16s
zoo-entrance-85878c564d-59gp2 1/1 Running 0 8m16s |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
>sudo kubectl get po -n ran
NAME READY STATUS RESTARTS AGE
pm-https-server-0 1/1 Running 0 32m
pm-https-server-1 1/1 Running 0 32m
pm-https-server-2 1/1 Running 0 32m
pm-https-server-3 1/1 Running 0 32m
pm-https-server-4 1/1 Running 0 31m
pm-https-server-5 1/1 Running 0 31m
pm-https-server-6 1/1 Running 0 31m
pm-https-server-7 1/1 Running 0 31m
pm-https-server-8 1/1 Running 0 31m
pm-https-server-9 1/1 Running 0 31m |
Uninstalling (RANPM Only)
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
.
Exposed ports to APIs
All exposed APIs on individual port numbers (nodeports) on the address of the kubernetes control plane.
Keycloak API
Keycloak API accessed via proxy (proxy is needed to make keycloak issue token with the internal address of keycloak).
- nodeport:
31784
OPA rules bundle server
Server for posting updated OPA rules.
- nodeport:
32201
Information coordinator Service
Direct access to ICS API.
- nodeports (
http
andhttps
):31823
,31824
Ves-Collector
Direct access to the Ves-Collector
- nodeports (
http
andhttps
):31760
,31761
Exposed ports to admin tools
As part of the ranpm installation, a number of admin tools are installed. The tools are accessed via a browser on individual port numbers (nodeports) on the address of the kubernetes control plane.
Keycloak admin console
Admin tool for keycloak.
- nodeport :
31788
- user:
admin
- password:
admin
Redpanda consule
With this tool the topics, consumer etc can be viewed.
- nodeport:
31767
Minio web
Browser for minio file-store.
- nodeport:
31768
- user:
admin
- password:
adminadmin
Influx db
Browser for influx db.
- nodeport:
31812
- user:
admin
- password:
mySuP3rS3cr3tT0keN
Result of the installation
The installation will create one helm release and all created kubernetes objects will be put in namespace 'nonrtric
' (cannot be changed).
Once the installation is done you can check the created kubernetes objects by using command kubectl
.
Example : Deployed pods when all components are enabled:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
> sudo kubectl get po -A
NAME READY STATUS RESTARTS AGE
a1-sim-osc-0 1/1 Running 0 2m27s
a1-sim-osc-1 1/1 Running 0 117s
a1-sim-std-0 1/1 Running 0 2m27s
a1-sim-std-1 1/1 Running 0 117s
a1-sim-std2-0 1/1 Running 0 2m27s
a1-sim-std2-1 1/1 Running 0 117s
a1controller-558776cc7b-8rhdd 1/1 Running 0 2m27s
capifcore-684b458c9b-w297x 1/1 Running 0 2m27s
controlpanel-889b5dfbf-b8tgd 1/1 Running 0 2m27s
db-75c5789d97-nvjtw 1/1 Running 0 2m27s
dmaapadapterservice-0 1/1 Running 0 2m27s
dmaapmediatorservice-0 1/1 Running 0 2m27s
helmmanager-0 1/1 Running 0 2m27s
informationservice-0 1/1 Running 0 2m27s
nonrtricgateway-7b7d485dd4-j8hnz 1/1 Running 0 2m27s
orufhrecovery-6d97d6ccf-ghknd 1/1 Running 0 2m27s
policymanagementservice-0 1/1 Running 0 2m27s
ransliceassurance-7d788d7556-95trk 1/1 Running 0 2m27s
rappcatalogueenhancedservice-764c47f7fb-s75hf 1/1 Running 0 2m27s
rappcatalogueservice-66c7bf7d98-2ldjc 1/1 Running 0 2m27s
rappmanager-0 1/1 Running 0 2m27s
dmeparticipant-84497bcbd4-jr522 1/1 Running 0 2m27s
bundle-server-7f5c4965c7-vsgn7 1/1 Running 0 8m16s
dfc-0 2/2 Running 0 6m31s
influxdb2-0 1/1 Running 0 8m15s
informationservice-776f789967-dxqrj 1/1 Running 0 6m32s
kafka-1-entity-operator-fcb6f94dc-fkx8z 3/3 Running 0 7m17s
kafka-1-kafka-0 1/1 Running 0 7m43s
kafka-1-zookeeper-0 1/1 Running 0 8m7s
kafka-client 1/1 Running 0 10m
kafka-producer-pm-json2influx-0 1/1 Running 0 6m32s
kafka-producer-pm-json2kafka-0 1/1 Running 0 6m32s
kafka-producer-pm-xml2json-0 1/1 Running 0 6m32s
keycloak-597d95bbc5-nsqww 1/1 Running 0 10m
keycloak-proxy-57f6c97984-hl2b6 1/1 Running 0 10m
message-router-7d977b5554-8tp5k 1/1 Running 0 8m15s
minio-0 1/1 Running 0 8m15s
minio-client 1/1 Running 0 8m16s
opa-ics-54fdf87d89-jt5rs 1/1 Running 0 6m32s
opa-kafka-6665d545c5-ct7dx 1/1 Running 0 8m16s
opa-minio-5d6f5d89dc-xls9s 1/1 Running 0 8m16s
pm-producer-json2kafka-0 2/2 Running 0 6m32s
pm-rapp 1/1 Running 0 67s
pmlog-0 2/2 Running 0 82s
redpanda-console-b85489cc9-nqqpm 1/1 Running 0 8m15s
strimzi-cluster-operator-57c7999494-kvk69 1/1 Running 0 8m53s
ves-collector-bd756b64c-wz28h 1/1 Running 0 8m16s
zoo-entrance-85878c564d-59gp2 1/1 Running 0 8m16s
pm-https-server-0 1/1 Running 0 32m
pm-https-server-1 1/1 Running 0 32m
pm-https-server-2 1/1 Running 0 32m
pm-https-server-3 1/1 Running 0 32m
pm-https-server-4 1/1 Running 0 31m
pm-https-server-5 1/1 Running 0 31m
pm-https-server-6 1/1 Running 0 31m
pm-https-server-7 1/1 Running 0 31m
pm-https-server-8 1/1 Running 0 31m
pm-https-server-9 1/1 Running 0 31m |
Uninstalling
There is a script that uninstalls installs the NONRTRIC components. It is simply run like this:
...