Skip to content

digitalist-se/redash-helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redash

Redash is an open source tool built for teams to query, visualize and collaborate. Redash is quick to setup and works with any data source you might need so you can query from anywhere in no time.

Kubernetes version

For Kubernetes v. 1.16+ use master branch, for version 1.15, or possible earlier, use branch 1.15.

TL;DR

git clone git@github.com:digitalist-se/redash-helm.git
cd redash-helm
helm dep up
helm install --name=redash .

Introduction

This chart bootstraps a Redash deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • At least 3 GB of RAM available on your cluster
  • Kubernetes 1.16+ (for earlier version, use branch 1.15, that could possible work with earlier versions also)
  • PV provisioner support in the underlying infrastructure

Installing the Chart

To install the chart with the release name my-release:

$ helm install --name my-release .

The command deploys Redash on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the my-release deployment:

$ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the Redash chart and their default values.

Parameter Description Default
image.repository Redash Image name redash/redash
image.tag Redash Image tag {VERSION}
image.pullPolicy Image pull policy IfNotPresent
image.pullSecrets Specify docker-ragistry secret names as an array nil
secretKey Secret used for encryption of data sources Randomly generated
cookieSecret Secret used for cookie session management Randomly generated
env Environment variables from Redash settings and example Docker Compose. Variables applied to both server and worker containers. PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
server.name Name used for Redash server deployment redash
server.httpPort Redash server container http port 5000
server.env Environment variables from Redash settings and example Docker Compose. Variables applied to only server containers. REDASH_WEB_WORKERS: 4
server.replicaCount Number of Redash server replicas to start 1
server.resources Server CPU/Memory resource requests/limits Memory 2GB
server.nodeSelector Node labels for server pod assignment {}
server.tolerations List of node taints to tolerate for server pod []
server.affinity Affinity settings for server pod assignment {}
service.type Kubernetes Service type ClusterIP
service.port Service external port 80
ingress.enabled Enable ingress controller resource false
ingress.annotations Ingress annotations configuration nil
ingress.path Ingress resource path nil
ingress.hosts Ingress resource hostnames nil
ingress.tls Ingress TLS configuration nil
adhocWorker.name Name used for Redash ad-hoc worker deployment worker-adhoc
adhocWorker.env Environment variables from Redash settings and example Docker Compose. Variables applied to only ad-hoc worker containers. Default worker count will run 2 worker threads per-replica. QUEUES: "queries,celery"
WORKERS_COUNT: 2
adhocWorker.replicaCount Number of Redash adhoc worker replicas to start 1
adhocWorker.resources Ad-hoc worker CPU/Memory resource requests/limits nil
adhocWorker.nodeSelector Node labels for adhocWorker pod assignment {}
adhocWorker.tolerations List of node taints to tolerate for adhocWorker pod []
adhocWorker.affinity Affinity settings for adhocWorker pod assignment {}
scheduledWorker.name Name used for Redash scheduled worker deployment worker-scheduled
scheduledWorker.env Environment variables from Redash settings and example Docker Compose. Variables applied to only scheduled worker containers. Default worker count will run 2 worker threads per-replica. QUEUES: "scheduled_queries"
WORKERS_COUNT: 2
scheduledWorker.replicaCount Number of Redash scheduled worker replicas to start 1
scheduledWorker.resources Scheduled worker CPU/Memory resource requests/limits nil
scheduledWorker.nodeSelector Node labels for scheduledWorker pod assignment {}
scheduledWorker.tolerations List of node taints to tolerate for scheduledWorker pod []
scheduledWorker.affinity Affinity settings for scheduledWorker pod assignment {}
externalPostgreSQL Connection string for external PostgreSQL server, if disabling the PostgreSQL chart nil
postgresql.enabled Whether to use the PostgreSQL chart true
postgresql.name Name used for PostgreSQL deployment postgresql
postgresql.imageTag PostgreSQL image version 9.5.6-alpine
postgresql.postgresqlUsername PostgreSQL User to create redash
postgresql.postgresqlPassword PostgreSQL Password for the new user random 10 character long alphanumeric string
postgresql.postgresqlDatabase PostgreSQL Database to create redash
postgresql.persistence.enabled Use a PVC to persist PostgreSQL data true
postgresql.persistence.size PVC Storage Request size for PostgreSQL volume 10Gi
postgresql.persistence.accessMode Use PostgreSQL volume as ReadOnly or ReadWrite ReadWriteOnce
postgresql.persistence.storageClass Storage Class for PostgreSQL backing PVC nil
(uses alpha storage class annotation)
postgresql.persistence.existingClaim Provide an existing PostgreSQL PersistentVolumeClaim nil
redis.name Name used for Redis deployment redis
redis.redisPassword Redis Password to use random 10 character long alphanumeric string

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

$ helm install --name my-release \
  --set cookieSecret=verysecret \
    .

The above command sets the Redash cookie secret to verysecret.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

$ helm install --name my-release -f values.yaml .

Tip: You can use the default values.yaml