Introduction

This page contains the information to install Bangdb using a Helm chart. It assumes that the Linux distribution being used to deploy the chart is Ubuntu, but the steps being used will work on any other Linux flavor also(RHEL/Fedora). This chart deploys the Bangdb as a StatefulSet Object with Persistent Volumes.

Prerequisites

Before using a helm chart, please ensure you have the following prerequisites installed before continuing :

  1. Kubernetes 1.12+
  2. Helm 2.11+ or Helm 3.0-beta3+
  3. PV provisioner support in the underlying infrastructure

Installation

  1. First we need to fetch the helm chart from the github repository
  2. git clone https://github.com/sachin-sinha/bangdb_helm
  3. Make sure the git branch being used is 'main'
  4. cd bangdb_helm
    git checkout main
  5. Use the Helm CLI to install the Bangdb chart
  6. helm install bangdb bangdb/

This will install the Bangdb chart with default configuration. It will create two PV claims that will be used by the Bangdb for its 'data' directory and 'logdir' directory. If you want to configure Bangdb parameters, refer the Configuration section.

Configuration

In the values.yaml (under bangdb_helm/bangdb/), we have all the required parameters required to configure the bangdb instance running on your cluster.

  1. Image - The default image being used is bangdb/bangdb-server, the other option being bangdb/bangdb-server-ssl. But using the ssl version requires that you create a secret with your own ssl key and certificate. Use the following to create a secret
  2. kubectl create secret generic bangdb-ssl -from-literal=key.pem= --from-literal=cert.pem=

    Then enable the secrets in the values.yaml (under secrets, enabled: true)

  3. Persistence - By default, the persistent volumes are enabled. Please do not change the values for mountPathdata and the mountPathlogdir values as these have been defined in the default bangdb configuration. In order to change these, you would also have to uncomment the bangdbConfiguration section and then set the directories there(SERVER_DIR and BANGDB_LOG_DIR respectively).
  4. To use a Storage Class, uncomment the 'storageClass' option and set your desired storage class here. The default and the recommend size for the volumes are 4Gi. Both the data and logdir will use this value in the Volume Claims.

    To disable Persistence, set 'enabled' to 'false' under the persistence dictionary in values.yaml. Then the chart will instead use the emptydir volume for the data and logdir directories.

  5. Security Context - The RunAsuser should be used as 1000, as this is the UID of the user being used inside the container of the bangdb.
  6. Resources - The default requests limit is 500m cpu and 1024Mi memory. The memory limits should be configured according to the BUFF_POOL_SIZE_HINT in the bangdb configuration(default for this is 892Mi, so resource limit should be slightly above this, ie 1024Mi).
  7. Bangdb configuration - If you want to configure the Bangdb database configuration, you should uncomment the whole bangdbConfiguration dictionary in the values.yaml. Then accordingly, by referring to this page, you may change the configuration settings of the database.