Giter Site home page Giter Site logo

helm's Introduction

Mojaloop Helm Charts

Git Commit Git Releases CircleCI

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/

Pre-requisites

  1. Add Helm dependency repositories:
   helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
   helm repo add kiwigrid https://kiwigrid.github.io	   helm repo add kiwigrid https://kiwigrid.github.io
   helm repo add elastic https://helm.elastic.co	   helm repo add elastic https://helm.elastic.co
   helm repo add bitnami https://charts.bitnami.com/bitnami 

Configure remote Mojaloop Helm repo on your Helm Client

  1. Add Mojaloop repo

helm repo add mojaloop http://mojaloop.io/helm/repo/

  1. Keep your local Mojaloop repo up to date

helm repo update

Deployment

  1. 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>
  1. 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}
  1. 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

  1. 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

Deploying development versions

  1. 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 to helm search and helm upgrade commands.

    Development versions can be specified in a requirements.yaml file if you're using Mojaloop as a child chart.

Upgrading Deployments from Repo

helm --namespace <namespace> upgrade <release-name> mojaloop/<chart_name>

e.g. helm --namespace moja upgrade dev mojaloop/centralenduserregistry

Deployment from Source for local repo deployments

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.

Deployment

  1. Deploy specific chart
  • helm --namespace <namespace> install <release_name> <chart_folder>

e.g. helm --namespace mojaloop install dev ./centralledger

  1. 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

Upgrading Deployments from Source

  • helm --namespace <namespace> upgrade <release-name> <chart_folder>

e.g. helm --namespace mojaloop upgrade dev ./centralenduserregistry

Testing Deployments

  1. 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

  1. Curl Health End-points for ML-API-Adapter
  • curl http://ml-api-adapter.local/health

Expected output:

{"status":"OK"}

  1. Curl Health End-points for Central Ledger
  • curl http://central-ledger.local/health

Expected output:

{"status":"OK"}

Removing Deployments

  • helm --namespace <namespace> del <release-name>

e.g. helm --namespace mojaloop del dev

Debugging Charts

  1. Execute a dry-run to display all the Kubernetes deployment files
  • helm --namespace <namespace> install <release_name> <chart_folder> --dry-run
  1. Enable debug to display raw configurations that will be injected into Helm templates
  • helm --namespace <namespace> install <release_name> <chart_folder> --dry-run --debug
  1. Use Helm Linter to check for any issues
  • helm lint --strict <chart_folder>

Helper scripts

Lint Helm Charts

1.) Lint charts

This will Lint all parent charts to ensure they conform to Helm standards

lint-charts.sh

Update Helm Charts for Local usage

1.) Update charts

Update all charts, and their respective dependencies (requirements).

update-charts-dep.sh

Package Helm Charts into Local repo

1.) Package charts

Package all charts, and created an index.yaml in ./repo directory

sh package.sh

Monitoring Mojaloop

Refer to Monitoring Documentation

helm's People

Contributors

mdebarros avatar partiallyordered avatar vijayg10 avatar rmothilal avatar oderayi avatar lewisdaly avatar vgenev avatar shashi165 avatar ksatya77 avatar kamuelafranco avatar elnyry-sam-k avatar ndonnan avatar henkkodde avatar vorburger avatar bdfintechpy avatar dfry avatar ggrg avatar bushjames avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.