- http://mojaloop.io/helm/repo/ Mojaloop Published Helm Repo
- Documentation - Deploying Mojaloop
- Helm v3 Docs
- 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 kokuwa https://kokuwaio.github.io/helm-charts
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
- Deploy Mojaloop with Bulk-API-Adapter
Warning: This will deploy all core Mojaloop charts. and the Bulk-API-Adapter
helm --namespace <namespace> install <release_name> mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true
e.g. helm --namespace moja install dev mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true
- Deploy Mojaloop with Thirdparty components
Refer to thirdparty/README.md for more information on what pre-requisites are required to enable Thirdparty components and how to manually deploy backend dependencies.
- 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.
Mojaloop Helm deployments currently include the following tests:
Helm Test | Test Cases | Enabled by default? | Notes |
---|---|---|---|
ml-ttk-test-setup.tests | hub/provisioning | Yes | Required as a pre-requisite for all tests. |
ml-ttk-test-val-gp | hub/golden_path | Yes | Previously named ml-ttk-test-validation prior to v13.1.0 release. |
ml-ttk-test-val-bulk | hub/other_tests/bulk_transfers | No | mojaloop-bulk.enabled=true must be set to deploy the Bulk-API-Adapter components. |
- Ensure Tests are enabled
Ensure the following properties are set in your values file:
- ml-ttk-test-setup.tests.enabled=true
- ml-ttk-test-val-gp.tests.enabled=true
- ml-ttk-test-val-bulk.tests.enabled=true (Note: only applicable if
mojaloop-bulk.enabled=true
is set)
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-val-gp.tests.enabled=true --set ml-ttk-test-val-bulk=true --set ml-ttk-test-val-bulk.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>
# lint all parent charts and ensure they conform to Helm's standards
./lint-charts.sh
# Update all charts, and their respective dependencies (requirements).
./update-charts-dep.sh
# Package all charts, and created an index.yaml in ./repo directory
./package.sh
Refer to Monitoring Documentation