Demo Installation
Installation Demo
- request for Kobil chart and image repository access (https://charts.kobil.com and https://kobilsystems.azurecr.io)
- create prereq to enable deployment for mBattery and mPower
- create Image-pull secret of type "dockerconfigjson" or configure mPower global:imageCredentials section and register helm to the kobi chart repository
- edit deployment meta-config configuration files "values.yaml" for mBattery and mPower
- run helm install for mBattery and mPower
In this document here we will not make use of a GUI-tool to run the deployments. All commands per native "helm" or "kubectl" CLI.
- For 1:
Follow info from here: Kobil Repository
- For 2:
To get Dependencies enabled to deploy the additional services at cluster level - for then hosting the mPower Services - the pre-requisites are / see here from Dependencies 7.1.2 Charts ReadMe:
The PreReq depends on the lateron used Kobil Services (DB-Services for Security Server, IDP and SCP) and the Monitoring/Logging/Tracing features plus using CertManager configured for Let'sEncrypt to create valid TLS-Secrets for acting as TLS-Endpoint by the deployed "IngressController":
helm repo add appscode https://charts.passcode.com/stable
update repository contents / auto-update is not available
helm repo update
required to enable in mbat.values.yaml the "store"/db-services deployments
helm install appscode appscode/kubedb --version v0.13.0-rc.0
helm repo add jetstack https://charts.jetstack.io
update repository contents / auto-update is not available
helm repo update
required to enable in CertManager in mbat.values.yaml
helm install cert-manager jetstack/cert-manager --version v1.3.1 --set installCRDs=true
Very important - in addition to these "repositories" is the StorageClass and VolumeProvisioner. To allocate "disk-space" at cluster node level for the service (i.e. for the DB-services) the defined "storage-class" is required. Find the available StorageClasses in the Cluster by command: kubetctl get storageclass / kubectl get sc – and configure this to the mbat.values.yaml key-value pair (replacing the default "storage-class" string.
For mPower deployment
ration file "values.yaml" for your needs - to enable the Monitoring, Logging, Tracing, Store(DB-service), CertManager (Let's Encrypt) service - and also the required Ingress-Controller Service/Pods.
- For 3:
Enable access to the Kobil private repositories (see repo pages ...)
once having the "charts.kobil.com" chart/helm-repo credentials - create the "helm repository" registration for the "kobil"-repo by command:
helm repo add kobil https://charts.kobil.com --username=<your-chart-repo-user> --password=<your-chart-repo-password>
show registered repos (kobil repo should be listed)
helm repo list
update repository contents / auto-update is not available
helm repo update
shows available mpower chart packages
helm search repo kobil/mpower
download "latest" kobil/mpower
helm pull kobil/mpower
This will update the "helm" registered repositories - see output per "helm repo list"
once having the Kobil Image repository credential set - create the Image-Repository Secret granting access for download the images from "kobilsystems.azurecr.io" by command:
kubectl create secret docker-registry regcredentials --docker-server=kobilsystems.azurecr.io --docker-username=<your-image-repo-user> --docker-password=<your-image-repo-password>
find created "regcredentials" secrets is created to enable for Kobil Image download from kobilsystems.azurecr.io
kubectl get secrets
- For 4:
Configure Dependencies meta-configuration file "values.yaml" for your needs - to enable the Monitoring, Logging, Tracing, Store(DB-service), CertManager (Let's Encrypt) service - and also the required Ingress-Controller Service/Pods.
Find details for this in the mBattery section here: Dependencies Deployment
For the default standard install - (see below sample mBattery meta-config values.yaml file - named mbat-demo.yaml) - we will make use of Logging and Monitoring but without Alerta/AlertManager and without Jaeger(Tracing features).
Configure mPower meta-configuration file "values.yaml" for your needs - to enable the creating the ingress-objects, to enable for IDP, Security Server and SCP Kobil Services - and to configure the required key-value pairs as appropriate.
Find details for this in the Configuration Guide
For the default standard install here - (see below sample mPower meta-config values.yaml file - named mpow-demo.yaml) - we will make use of IDP and Security Server being enabled having Monitoring components active.
- For 5:
Any installation (deployment) is done by running the "helm" tool.
Find here a sample list of commands to deploy and check:
helm repo list
kubectl get secrets | grep regcredentials grep -B 2 -i regcredentials mpow-demo.yaml
helm install dependency -f ./mbat-demo.yaml kobil/dependency --version=7.1.2 --debug 2>&1 | tee install.mbat.out
helm list
verify image pulling and pod initialization
kubectl get events "--sort-by={.lastTimestamp}"
find DB-services for Security Server, IDP and Logging(loki) are valid
kubectl get services
find ingress declarations processed by ingress controller resources in this cluster
kubectl get ingress
helm install mpower -f ./mpow-demo.yaml kobil/dependency --version=7.1.2 --debug 2>&1 | tee install.mbat.out
helm list