Performing pre-installation tasks
This section lists the tasks that are required to be performed before installing IMPACT IoT.
Mandatory pre-requisites
- Ensure that the software requirements are met as per the section Software requirements.
- Ensure that the Kubernetes 1.21 (or later versions) cluster with helm is installed.
- Ensure that the Kubernetes cluster has a default storage configured.
- Ensure that the Cassandra is installed. For more information, see Cassandra installation and administration section in this document.
- Ensure that the MariaDB is installed. For more information, see MariaDB installation and administration section in this document.
-
Note: The supporting components such as, Ingress Traffic Manager, RabbitMQ, Prometheus and Grafana run on NCS cluster. Whereas, on a non-NCS cluster, nodes have to be labelled explicitly with
is_edge=true
and/oris_worker=true
.Ensure that the Ingress Traffic Manager is installed. For more information, see Installing Ingress Traffic Manager and configuring SSL certificate.
Achieving session stickiness
A sticky session results in completing scheduled operations successfully. When there are multiple pods of IMPACT IoT, when a device connects for management, a sticky session is achieved using upstream-hash-by function.
Note: Each client connecting to IMPACT IoT application must have unique IPs. Otherwise, all the traffic is routed to the same pod and load balance is not achieved even with multiple pods.IMPACT IoT provides the required changes to the IP Traffic Manager out-of-the-box. So you must use the IP Traffic Manager provided with the IMPACT IoT software distribution.
- Ensure that the RabbitMq is installed. For more information, see Installing RabbitMq.
- Ensure that the IMPACT IoT helm chart (example,
impact-xxxx.x.x.tgz/impact-2202.0.0.gz
) is downloaded and available in a helm repository that is accessible by the helm client. - See the section Creating secrets for IMPACT IoT for more information on creating the secrets for all the IMPACT IoT components.
Creating secrets for IMPACT IoT
All the individual IMPACT IoT components helm charts and Umbrella helm charts contain the README.md file for creating the secrets.
Before you run the helm installation, ensure to create the secrets.
You can execute the following commands specific to each component before the deployment.
CDP
kubectl create secret generic "cdpsecrets" \
--from-literal=db_system_password="motive" \
--from-literal=db_password="motive" \
--from-literal=BROKER_PASSWORD="impact123" \
\
--from-literal=redis_password="motive" \
\
--from-literal=reporting_password="cdp" \
--from-literal=reporting_system_password="mysql" \
--from-literal=emg_password="secret" \
--from-literal=usagecontrol_password="password" \
--from-literal=oauth_admin_password="motive"
MQTT
kubectl create secret generic "mqtt-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=CDP_PASS="superadmin" \
--from-literal=CAS_PASSWORD="impactdb" \
--from-literal=CAS_ADMIN_PASSWORD="motive" \
--from-literal=REDIS_PASSWORD_USAGE_CONTROL="guest" \
--from-literal=SUBSCRIBER_REPO_PASS="password" \
--from-literal=MQTT_BROKER_DEFAULT_PASSWORD="guest" \
--from-literal=MQTTADAPTER_CLIENT_PASSWORD="guest"
CIG server
kubectl create secret generic "cig-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=CAS_ADMIN_PASSWORD="motive" \
--from-literal=CAS_PASSWORD="impact123" \
--from-literal=CDP_PASS="superadmin" \
--from-literal=REDIS_PASSWORD_USAGE_CONTROL="password" \
--from-literal=OMA2_KEYSTORE_PASSWORD="hW02jGRdpBxXsZPFSxxRXA==" \
--from-literal=OMA2_KEYSTORE_MANAGER_PASSWORD="hW02jGRdpBxXsZPFSxxRXA=="
SMS controller
kubectl create secret generic "sms-secrets" \
--from-literal=BROKER_PASSWORD=impact123 \
--from-literal=EMG_PASSWORD=secret \
--from-literal=SUBSCRIBER_REPO_PASS=password \
--from-literal=CDP_PASS=superadmin
LWM2M server
kubectl create secret generic "lwm2m-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=CAS_PASSWORD="impact123" \
--from-literal=CAS_ADMIN_PASSWORD="motive" \
--from-literal=LWM2M_SERVER_CERT_PASS="d1slDKY4B3TaSzXqYlGjxw==" \
--from-literal=LWM2M_SERVER_CERT_PRIV_KEY_PASS="d1slDKY4B3TaSzXqYlGjxw==" \
--from-literal=SCEF_USER_PASSWORD="nidduser" \
--from-literal=SCEF_TRUST_STORE_PASSWORD="" \
--from-literal=SUBSCRIBER_REPO_PASS='Admin123!' \
--from-literal=REDIS_DB_PASSWORD="password" \
--from-literal=REDIS_PASSWORD_USAGE_CONTROL="password"
IMPACT billing
kubectl create secret generic "impactbilling-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=FTP_PASSWORD="ftppassword" \
--from-literal=FTP_PASSPHRASE=""
IMPACT DC (ImpactAPI, Agentserver, Onem2mserver)
The following command creates the secret for ImpactAPI, Agentserver, and Onem2mserver.
Some secrets keys are common and will overlap for onem2mserver, for example,
DB_PASSWORD
in ImpactAPI
is equivalent to
org.eclipse.om2m.dbPassword
in Onem2m
.
All similar keys are grouped for easier editing.
kubectl create secret generic "impactdc-secrets" \
--from-literal=DB_ADMIN_PASSWORD="motive" \
--from-literal=BROKER_PASSWORD="impact123" \
\
--from-literal=CDP_PASS="superadmin" \
--from-literal=com.nokia.impact.api.password="superadmin" \
--from-literal=com.nokia.om2m.cdp.callback.password="superadmin" \
--from-literal=com.nokia.om2m.dm.password="superadmin" \
\
--from-literal=DB_PASSWORD="motive" \
--from-literal=org.eclipse.om2m.dbPassword="motive" \
\
--from-literal=org.eclipse.om2m.adminRequestingEntity="admin:admin" \
--from-literal=com.nokia.om2m.gpp.t8.trust.password="changeit" \
--from-literal=com.nokia.om2m.gpp.t8.password="dummyPass" \
--from-literal=com.nokia.subscriber.password="password"
Subscription repository
kubectl create secret generic "subscriptionrepo-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=INTERNAL_AUTH_PASSWORD="password" \
--from-literal=CAS_PASSWORD="impactdb" \
--from-literal=CAS_ADMIN_PASSWORD="motive"
SGI
kubectl create secret generic "sgi-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=SUBSCRIBER_REPO_PASS="password"
Radius server
kubectl create secret generic "radiusserver-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=CAS_PASSWORD="impact123" \
--from-literal=CAS_ADMIN_PASSWORD="motive"
JSMS
kubectl create secret generic "jsms-secrets" \
--from-literal=BROKER_PASSWORD="impact123" \
--from-literal=SMSC_PROFILE1_PASSWORD="smscpassword"
IDS
kubectl create secret generic "impact-ids-secrets"\
--from-literal=CASSANDRA_ADMIN_PASSWORD="motive"\
--from-literal=CASSANDRA_USER_PASSWORD="motive"\
--from-literal=RABBITMQ_PASSWORD="impact123"\
--from-literal=IMPACT_SERVER_PASSWORD="superadmin"\
--from-literal=IMPACT_SERVER_USER="superadmin"\
--from-literal=AWS_ACCESS_KEY="adminpwd"\
--from-literal=AWS_ACCESS_KEY_ID="admin"\
--from-literal=AWS_CREDENTIALS="[default]\nadmin\nadminpwd"\
--from-literal=VISUALIZATION_GRAFANA_ADMIN_PASSWORD="admin"\
Optional pre-requisites
-
Pre-requisite configuration in IMPACT IoT
values.yaml
file:Set the
external flag
totrue
in theagentserver
section to install Intelligent Data Store (IDS). For more information on IDS deployment, see Intelligent Data Store and Connect Deployment Guide. - Ensure that the Keycloak is installed. For more information, see Installing and configuring the Web Single Sign-On (Keycloak) section.