Mojaloop published Helm Repo: http://mojaloop.io/helm/repo/
Mojaloop deployment documentation: https://docs.mojaloop.io/documentation/deployment-guide
Refer to Helm v3 docs for more information: https://docs.helm.sh/
- Add Helm dependency repositories:
helm repo add stable https://charts.helm.sh/stable
helm repo add incubator https://charts.helm.sh/incubator
helm repo add kiwigrid https://kiwigrid.github.io
helm repo add elastic https://helm.elastic.co
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add codecentric https://codecentric.github.io/helm-charts
- Add Mojaloop repo
helm repo add mojaloop http://mojaloop.io/helm/repo/
- Keep your local Mojaloop repo up to date
helm repo update
- Deploy specific chart
helm --namespace <namespace> install <release_name> mojaloop/<chart_name>
e.g. helm --namespace moja install dev mojaloop/centralledger
Alternative directly from remote repo:
helm --namespace <namespace> install <release_name> --repo=http://mojaloop.io/helm/repo <chart_name>
- Deploy specific chart overriding values
helm --namespace <namespace> install <release_name> mojaloop/<chart_name> -f {custom-values.yaml}
e.g. helm --namespace moja install dev mojaloop/centralledger -f ./values.yaml
Refer to the following default chart config file for values: http://mojaloop.io/helm/<chart_name>/values.yaml
Alternatively one can set specific values via cli arguments based on the config file above:
helm --namespace <namespace> install <release_name> mojaloop/<chart_name> --set foo=bar --set {key.subkey.subsubkey}={value}
- Deploy specific version for a chart
helm --namespace <namespace> install <release_name> mojaloop/<chart_name> --version {version}
e.g. helm --namespace moja install dev mojaloop/centralledger --version v1.0.0
Refer to the following default chart config file for values: http://mojaloop.io/helm/<chart_name>/values.yaml
- Deploy Mojaloop components
Warning: This will deploy all core Mojaloop charts.
helm --namespace <namespace> install <release_name> mojaloop/mojaloop
e.g. helm --namespace moja install dev mojaloop/mojaloop
- To deploy the latest development version, use the
--devel
flag:
-
helm --namespace <namespace> install <release_name> mojaloop/mojaloop --devel
This is useful if you've had some work merged into master but it has not yet been released.
The
--devel
flag can also be supplied tohelm search
andhelm upgrade
commands.Development versions can be specified in a
requirements.yaml
file if you're using Mojaloop as a child chart.
helm --namespace <namespace> upgrade <release-name> mojaloop/<chart_name>
e.g. helm --namespace moja upgrade dev mojaloop/centralenduserregistry
Update Chart Dependencies for Source for local repo deployments (i.e. from the cloned github repository)
Run the following script sh ./update-charts-dep.sh
in the helm root folder.
This script will ensure that all dependencies and child-dependencies are updated correctly. This is temporary until recursive updates is supported in future: helm/helm#2247.
- Deploy specific chart
helm --namespace <namespace> install <release_name> <chart_folder>
e.g. helm --namespace mojaloop install dev ./centralledger
- Deploy mojaloop componenets
Warning: This will deploy all core Mojaloop charts.
helm --namespace <namespace> install <release_name> mojaloop
e.g. helm --namespace mojaloop install dev ./mojaloop
helm --namespace <namespace> upgrade <release-name> <chart_folder>
e.g. helm --namespace mojaloop upgrade dev ./centralenduserregistry
Note: This is currently only supported by Helm v3.
- Ensure Tests are enabled
Ensure the following properties are set in your values file:
- ml-ttk-test-setup.tests.enabled=true
- ml-ttk-test-validation.tests.enabled=true
Or alternatively add --set
for each of the above parameters on the install command:
helm install ... --set ml-ttk-test-setup.tests.enabled=true --set ml-ttk-test-validation.tests.enabled=true
- Run Tests
Run tests:
helm test <RELEASE_NAME>
Run tests with logs:
helm test <RELEASE_NAME> --logs
- Add the following to your hosts file and ensure you have installed Ingress Controller on your Kubernetes Cluster:
<ip-of-k8s-node-ingress> ml-api-adapter.local central-ledger.local account-lookup-service.local quoting-service.local central-settlement.local moja-simulator.local
- Curl Health End-points for ML-API-Adapter
curl http://ml-api-adapter.local/health
Expected output:
{"status":"OK"}
- Curl Health End-points for Central Ledger
curl http://central-ledger.local/health
Expected output:
{"status":"OK"}
helm --namespace <namespace> del <release-name>
e.g. helm --namespace mojaloop del dev
- Execute a dry-run to display all the Kubernetes deployment files
helm --namespace <namespace> install <release_name> <chart_folder> --dry-run
- Enable debug to display raw configurations that will be injected into Helm templates
helm --namespace <namespace> install <release_name> <chart_folder> --dry-run --debug
- Use Helm Linter to check for any issues
helm lint --strict <chart_folder>
1.) Lint charts
This will Lint all parent charts to ensure they conform to Helm standards
lint-charts.sh
1.) Update charts
Update all charts, and their respective dependencies (requirements).
update-charts-dep.sh
1.) Package charts
Package all charts, and created an index.yaml in ./repo directory
sh package.sh
Refer to Monitoring Documentation