Skip to content

ngendah/rapidpro-helm-chart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RapidPro v7 Helm Chart

CI Tests

RapidPro is an open source platform for visually building interactive messaging applications. For more on refer to https://community.rapidpro.io/.

Introduction

This repo provides a chart to bootstraps RapidPro on a Kubernetes cluster using the Helm package manager.

Getting started

To get started with the helm chart, you'll need;

  1. A running cluster composed of;

    a. Kubernetes version 1.21+,

    b. Postgresql version 1.13+ and

    c. a container image registry either hosted locally or on the cloud.

  2. This repository together with it's sub-repository.

    The repository has 2 directories;

    a. rapidpro directory containing the helm chart, and an

    b. extras directory containing,

    • Dockerfiles for building the required images.

    • A start-up script to help quickly stand up a cluster with all the necessary services running.

Steps, on the local host

Linux:
  1. Install the following pre-requisites;
  • Docker and Docker Compose
  • GNU Make
  • Helm
  • jq, The JSON processor
  • K3D
  • Kubectl
  1. Clone the repository together with it's sub-repository.

    git clone --recurse-submodules https://github.com/ngendah/rapidpro-helm-chart
  2. Change directory to the root of the project.

    cd rapidpro-helm-chart
  3. Stand up a cluster

    ./extras/cluster/run.sh install

    The cluster load balancer will be exposed on the localhost on port 8080.

  4. Login to the Docker registry

    docker login -u $(cat ./extras/cluster/registry.conf.d/username) -p $(cat ./extras/cluster/registry.conf.d/passwd) $(cat ./extras/cluster/registry.conf.d/hostip)
  5. Build and push images

    cd ./extras/images
    make -e REGISTRY_HOST=$(cat ../cluster/registry.conf.d/hostip) -j3
    cd ../.. # change directory back to the project root
  6. Export the path to kubeconfig

    export KUBECONFIG=./extras/cluster/kubeconfig

    because relative paths break easily, I recommend using full file path;

    export KUBECONFIG=$(pwd)/extras/cluster/kubeconfig
  7. Install the chart

    helm install rapidpro ./rapidpro/ \
        --set global.databaseHost.postgres.host=$(cat extras/cluster/postgresql.conf.d/hostip) \
        --set global.registry.host=$(cat ./extras/cluster/registry.conf.d/hostip)
  8. Wait for the services to be in a running state;

    watch kubectl get pods
  9. If all services are up and running, on the browser goto the url localhost:8080/.

Credits

  1. RapidPro project.

  2. Praekelt.org for the initial docker base images for mailroom and courier.