- http://mojaloop.io/helm/repo/ Mojaloop Published Helm Repo
- Documentation - Deploying Mojaloop
- Helm v3 Docs
- Changelogs
-
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 codecentric https://codecentric.github.io/helm-charts helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add mojaloop-charts https://docs.mojaloop.io/charts/repo helm repo add redpanda-console https://packages.vectorized.io/public/console/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 the Mojaloop chart
Warning: This will deploy all core Mojaloop charts with default backends. See #deploying-backends on how to disabled the default backends and deploy them using the example-mojaloop-backend/README.md Helm chart.
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.
-
Deploy Mojaloop with Bulk-API-Adapter and SDK-TTK Bulk simulators
Warning: This will deploy all core Mojaloop charts., the Bulk-API-Adapter and additional SDK+TTK simulators
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 --set mojaloop-ttk-simulators.enabled=true --set global.kafka.host=<MOJALOOP_INSTALL_NAME>-kafka --set global.redis.host=<REDIS_INSTALL_NAME>-redis-master --set ml-ttk-test-val-sdk-bulk.tests.enabled=true
It is best practice to deploy External Backend Dependencies (i.e. MySQL, Kafka, MongoDB, etc) as separate deployments. We have provided an example of how this can be done using the example-mojaloop-backend Helm chart. The example-mojaloop-backend is provided purely as an example and should only be used for PoC environments. It is recommended that you deploy each External Backend Dependencies (i.e. MySQL, Kafka, MongoDB, etc) as a separate deployment as to ensure that each deployment is maintainable.
Refer to example-mojaloop-backend/README.md#installation on how to deploy the example-mojaloop-backend
, and disabled the default backend.
Note: This is required when deploying to Kubernetes v1.22+.
-
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 the Mojaloop chart
Warning: This will deploy all core Mojaloop charts with default backends. See #deploying-backends on how to disabled the default backends and deploy them using the example-mojaloop-backend/README.md Helm chart.
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 ifmojaloop-bulk.enabled=true
is set)ml-ttk-test-val-sdk-bulk.tests.enabled=true
(Note: only applicable ifmojaloop-bulk.enabled=true
,mojaloop-ttk-simulators.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