Skip to main content

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:

demo-image

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