Kubernetes Deployment

Instruction on how to remotely install Databand in a Kubernetes Cluster.

This guide will demonstrate how to deploy Databand on a remote Kubernetes cluster.

Installation Prerequisites

Before you can run scripts described in this guide, you need to have the following software installed:

Create user-values.yaml

# user-values.yaml
            tag: v0.45.8
            username: <YOUR_USERNAME>
            password: <YOUR_PASSWORD>

Install Databand from Published Chart

helm repo add --username USERNAME  --password PASSWORD databand-deploy https://gitlab.com/api/v4/projects/16834345/packages/helm/stable

Install/Update Helm Chart

To install the Databand Chart into your Kubernetes cluster, run the following command:

 helm upgrade databand --install --namespace databand-system --values ./user-values.yaml databand-deploy/databand

After completing the installation, run the following command to get the status of the Databand Chart:

helm status "databand" --namespace databand-system

Chart Notes

  • This chart automatically prefixes all names using the release name to avoid collisions.
  • This chart exposes a single endpoint for the Databand Web UI which can be placed either at the root of the domain or at the subpath, for example http://`mycompany.com`/databand/ .
  • In this chart, the local PostgreSQL is used as Databand Database.

Custom Alert Routes

See Alert Configuration for Self-Hosting for Routes examples
Create file user-alertmanager.yaml with following text and add it to your installation command via -f user-alertsmanager.yaml

      alertmanager.yml: |-


The Databand Chart provides an Ingress configuration to allow customizing the installation depending on your setup. See the comments in the values.yaml file for more details on how to configure your reverse proxy or load balancer.

# user-values.yaml

    enabled: true
        host: <DBND_EXTERNAL_URL>


# user-values.yaml
    # Enables Grafana
    enabled: true -

        enabled: true
            - <GRAFANA_EXTERNAL_URL>
            kubernetes.io/ingress.class: nginx

Database Configuration

External Database

If you want to use External DB (suggested), please
see External DB for Databand MetaData. Update your user-values.yaml with

# user-values.yaml

    enabled: false

    protocol: "postgresql+psycopg2"
    username: "databand"
    password: "databand"
    host: "databand.example.com"
    port: "5432"
    dbname: "databand"

For Postgres Database Built Into Databand Chart :

Create secure Database connection credentials.

kubectl create secret generic databand-postgres --namespace databand-system --from-literal=postgres-password=$(openssl rand -base64 13)
kubectl create secret generic databand-redis ---namespace databand-system  --from-literal=redis-password=$(openssl rand -base64 13)

Update your user-values.yaml

# user-values.yaml

    existingSecret: databand-postgres

    existingSecret: databand-redis

Additional environment variables

You can specify additional environment variables by using the same format as in the definition of the pod's .spec.containers.env. These environment variables are mounted on the web, scheduler, and worker pods. You can use this feature to pass additional secret environment variables to Databand.

Here is an example showing how to pass in a Fernet key. Note that for this example to work, databand Kubernetes secret must already exist in the proper namespace; be sure to create it before running Helm.

              name: databand
              key: fernet-key

Deploy Databand without RBAC Permissions

Default Databand installation requires RBAC permissions for "service discovery" and Prometheus stack. If you don't have RBAC:

  • Alert receiver settings tab won't be displayed in the Databand Application UI
  • Alertmanager will use the deployment configmap configurations

To disable the alert_def_syncer syncing Alertmanager template file from Databand DB, make changes to the user-values.yaml:

        sync_alertmanager_config: false

Deploy Webserver with Serving Statics Files Enabled

By default, Ingress controls routing and redirect statics requests to the webapp pod. To enable serving statics from webserver pod, the following configs should be changed to true:

        serving_enabled: true
        sync_webapp_all: true

With sync_webapp_all enabled, the webserver will download all statics from the webapp at startup to make them available locally.
With serving_enabled enabled, webserver will handle statics requests.

Install Databand Using Chart Source Code

  • Run git clone https://gitlab.com/databand/databand-deploy.git /opt/databand_deploy.
  • When prompted, enter the GitLab user and password.
  • Check out the latest version: git checkout release/v0.XX (change XX to the latest version number)
  • Go to the Databand Kubernetes deployment directory: cd /opt/databand_deploy/databand_helm/databand.
  • Add the dependencies to the repository: helm dependency update.

Did this page help you?