Deploying Core Connector
|Readers of this section are advised to have basic familiarity with Kubernetes and Helm.|
Core Connector is deployed as a pod in a Kubernetes cluster.
To deploy Core Connector, a Helm chart is used. Helm acts as a package manager for Kubernetes, with the Helm chart containing all of the pre-configured resource definitions necessary to run Core Connector inside a Kubernetes cluster.
Helm charts are created as files organised into a particular directory tree. The directory name is the name of the chart (without versioning information), for example:
Inside this directory, Helm expects this structure:
mambu-core-connector templates/ # A directory of templates that, when combined with values, will generate valid Kubernetes manifest files. Chart.yaml # A YAML file containing information about the chart. values.yaml # The configuration values for this chart.
For further background information on how charts are organised, see The Chart File Structure Helm documentation.
A Helm chart is defined in templates, written in the Go template language. Each resource that is necessary to run Core Connector has a template. Templates generate manifest files, that is, resource descriptions in
.yaml format that Kubernetes can understand. All template files are stored in the chart’s
templates/ folder. When Helm renders a chart, it will pass every file in that directory through the template engine.
If you look at the
templates/ directory of the
mambu-core-connector Helm chart, you will see the following files:
NOTES.txt: The "help text" for the chart. This will be displayed in the command-line terminal when you run
_helpers.tpl: A "partial" or "subtemplate" that can be used by other templates. Contains template helpers that you can re-use throughout the chart.
deployment.yaml: The manifest for creating the
image-cred-secret.yaml: Holds credentials for pulling the
mambu-core-connectorDocker images from a private
ingress.yaml: Enables communication initiated outside the cluster to reach inside the cluster, specifically to reach the
service.yaml: A manifest for creating a service endpoint for the
mambu-core-connectordeployment. This enables communication between applications inside the cluster, and is required (but not sufficient) for communication from outside the cluster to access applications inside the cluster.
For further details on templates, see the following Helm documentation:
Two details to point out in the
deployment.yaml file are in the
Core Connector must know where it can reach the DFSP Core Backend, this information must be provided in
Core Connector must know where it can reach Mojaloop Connector, this information must be provided in
Note that Mojaloop Connector must also know where to reach Core Connector. This is configured in the Mojaloop Connector’s
Chart.yaml file contains the following fields (taking the
mambu-core-connector Helm chart as our example):
apiVersion: v1 appVersion: "1.0" description: A Helm chart for Kubernetes name: mambu-core-connector version: 0.1.0
apiVersion: The chart API version (required). It should be
v2for Helm charts that require at least Helm 3. Charts supporting previous Helm versions have
v1and are still installable by Helm 3.
appVersion: The version of the application itself (optional). Need not be SemVer. Wrapping the version in quotes is highly recommended. It forces the YAML parser to treat the version number as a string. Leaving it unquoted can lead to parsing issues in some cases.
description: A single-sentence description for the chart (optional).
name: The name of the chart (required).
version: The version number of the chart (required). Versioning must follow the SemVer 2 standard.
For further background information on the fields of a
Chart.yaml file, see The Chart.yaml File Helm documentation.
Templates use variables that are substituted with values when the manifest is created. The configuration values to replace the variables defined in the templates are supplied through a file called
When testing against a CBS vendor sandbox environment,
coreApplicationEndpoint must be the CBS sandbox url.