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.
For Kubernetes v. 1.16+ use master branch, for version 1.15, or possible earlier, use branch 1.15.
git clone git@github.com:digitalist-se/redash-helm.git
cd redash-helm
helm dep up
helm install --name=redash .
This chart bootstraps a Redash deployment on a Kubernetes cluster using the Helm package manager.
- 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
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
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.
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