Redash is an open source tool built for teams to query, visualize and collaborate.
This chart bootstraps a Redash deployment on a Kubernetes cluster using the Helm package manager.
This is a contributed project developed by volunteers and not officially supported by Redash.
Current chart version is 3.0.0-beta1
To install the chart with the release name my-release
, add the chart repository:
$ helm repo add redash https://getredash.github.io/contrib-helm-chart/
Create a values file with required secrets (store this securely!):
$ cat > my-values.yaml <<- EOM
redash:
cookieSecret: $(openssl rand -base64 32)
secretKey: $(openssl rand -base64 32)
postgresql:
postgresqlPassword: $(openssl rand -base64 32)
redis:
password: $(openssl rand -base64 32)
EOM
Install the chart:
$ helm upgrade --install -f my-values.yaml my-release redash/redash
The command deploys Redash on the Kubernetes cluster in the default configuration. The configuration section and and default values.yaml 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.
Repository | Name | Version |
---|---|---|
https://charts.bitnami.com/bitnami | postgresql | ^8.10.14 |
https://charts.bitnami.com/bitnami | redis | ^10.8.2 |
The following table lists the configurable parameters of the Redash chart and their default values.
Key | Type | Default | Description |
---|---|---|---|
adhocWorker.affinity | object | {} |
Affinity for ad-hoc worker pod assignment ref |
adhocWorker.env | object | {"QUEUES":"queries","WORKERS_COUNT":2} |
Redash ad-hoc worker specific envrionment variables. |
adhocWorker.nodeSelector | object | {} |
Node labels for ad-hoc worker pod assignment ref |
adhocWorker.podAnnotations | object | {} |
Annotations for adhoc worker pod assignment ref |
adhocWorker.podLabels | object | {} |
Labels for adhoc worker pod assignment ref |
adhocWorker.podSecurityContext | object | {} |
Security contexts for ad-hoc worker pod assignment ref |
adhocWorker.replicaCount | int | 1 |
Number of ad-hoc worker pods to run |
adhocWorker.resources | string | nil |
Ad-hoc worker resource requests and limits ref |
adhocWorker.securityContext | object | {} |
|
adhocWorker.tolerations | list | [] |
Tolerations for ad-hoc worker pod assignment ref |
adhocWorker.volumeMounts | list | [] |
VolumeMounts for ad-hoc worker pod assignment ref |
adhocWorker.volumes | list | [] |
Volumes for ad-hoc pod worker assignment ref |
env | object | {"PYTHONUNBUFFERED":0} |
Redash global envrionment variables - applied to both server and worker containers. |
externalPostgreSQL | string | nil |
External PostgreSQL configuration. To use an external PostgreSQL instead of the automatically deployed postgresql chart: set postgresql.enabled to false then uncomment and configure the externalPostgreSQL connection URL (e.g. postgresql://user:pass@host:5432/database) |
externalPostgreSQLSecret | object | {} |
Read external PostgreSQL configuration from a secret. This should point at a secret file with a single key which specifyies the connection string. |
externalRedis | string | nil |
External Redis configuration. To use an external Redis instead of the automatically deployed redis chart: set redis.enabled to false then uncomment and configure the externalRedis connection URL (e.g. redis://user:pass@host:6379/database). |
externalRedisSecret | object | {} |
Read external Redis configuration from a secret. This should point at a secret file with a single key which specifyies the connection string. |
fullnameOverride | string | "" |
|
genericWorker.affinity | object | {} |
Affinity for generic worker pod assignment ref |
genericWorker.env | object | {"QUEUES":"periodic,emails,default","WORKERS_COUNT":1} |
Redash generic worker specific envrionment variables. |
genericWorker.nodeSelector | object | {} |
Node labels for generic worker pod assignment ref |
genericWorker.podAnnotations | object | {} |
Annotations for generic worker pod assignment ref |
genericWorker.podLabels | object | {} |
Labels for generic worker pod assignment ref |
genericWorker.podSecurityContext | object | {} |
Security contexts for generic worker pod assignment ref |
genericWorker.replicaCount | int | 1 |
Number of generic worker pods to run |
genericWorker.resources | string | nil |
Generic worker resource requests and limits ref |
genericWorker.securityContext | object | {} |
|
genericWorker.tolerations | list | [] |
Tolerations for generic worker pod assignment ref |
genericWorker.volumeMounts | list | [] |
VolumeMounts for generic worker pod assignment ref |
genericWorker.volumes | list | [] |
Volumes for generic worker pod assignment ref |
hookInstallJob.affinity | object | {} |
Affinity for scheduled worker pod assignment ref |
hookInstallJob.nodeSelector | object | {} |
Node labels for scheduled worker pod assignment ref |
hookInstallJob.podAnnotations | object | {} |
Annotations for scheduled worker pod assignment ref |
hookInstallJob.podSecurityContext | object | {} |
Security contexts for scheduled worker pod assignment ref |
hookInstallJob.resources | string | nil |
Scheduled worker resource requests and limits ref |
hookInstallJob.securityContext | object | {} |
|
hookInstallJob.tolerations | list | [] |
Tolerations for server pod assignment ref |
hookInstallJob.ttlSecondsAfterFinished | int | 600 |
ttl for install job ref |
hookUpgradeJob.affinity | object | {} |
Affinity for scheduled worker pod assignment ref |
hookUpgradeJob.nodeSelector | object | {} |
Node labels for scheduled worker pod assignment ref |
hookUpgradeJob.podAnnotations | object | {} |
Annotations for scheduled worker pod assignment ref |
hookUpgradeJob.podSecurityContext | object | {} |
Security contexts for scheduled worker pod assignment ref |
hookUpgradeJob.resources | string | nil |
Scheduled worker resource requests and limits ref |
hookUpgradeJob.securityContext | object | {} |
|
hookUpgradeJob.tolerations | list | [] |
Tolerations for server pod assignment ref |
hookUpgradeJob.ttlSecondsAfterFinished | int | 600 |
ttl for install job ref |
image.pullPolicy | string | "IfNotPresent" |
|
image.repository | string | "redash/redash" |
Redash image name used for server and worker pods |
image.tag | string | "10.0.0.b50363" |
Redash image tag |
imagePullSecrets | list | [] |
Name(s) of secrets to use if pulling images from a private registry |
ingress.annotations | object | {} |
Ingress annotations configuration |
ingress.enabled | bool | false |
Enable ingress controller resource |
ingress.hosts | list | [{"host":"chart-example.local","paths":[]}] |
Ingress resource hostnames and path mappings |
ingress.ingressClassName | string | "" |
Sets the ingress controller class name to use. |
ingress.pathType | string | "Prefix" |
How ingress paths should be treated. |
ingress.tls | list | [] |
Ingress TLS configuration |
nameOverride | string | "" |
|
postgresql.enabled | bool | true |
Whether to deploy a PostgreSQL server to satisfy the applications database requirements. To use an external PostgreSQL set this to false and configure the externalPostgreSQL parameter. |
postgresql.image.tag | string | "9.6.17-debian-10-r3" |
Bitnami supported version close to the one specified in Redash setup docker-compose.yml |
postgresql.persistence.accessMode | string | "ReadWriteOnce" |
Use PostgreSQL volume as ReadOnly or ReadWrite |
postgresql.persistence.enabled | bool | true |
Use a PVC to persist PostgreSQL data (when postgresql chart enabled) |
postgresql.persistence.size | string | "10Gi" |
PVC Storage Request size for PostgreSQL volume |
postgresql.persistence.storageClass | string | "" |
|
postgresql.postgresqlDatabase | string | "redash" |
PostgreSQL database name (when postgresql chart enabled) |
postgresql.postgresqlPassword | string | nil |
REQUIRED: PostgreSQL password for redash user (when postgresql chart enabled) |
postgresql.postgresqlUsername | string | "redash" |
PostgreSQL username for redash user (when postgresql chart enabled) |
postgresql.service.port | int | 5432 |
|
postgresql.service.type | string | "ClusterIP" |
|
redash.additionalDestinations | string | "" |
REDASH_ADDITIONAL_DESTINATIONS value. |
redash.additionalQueryRunners | string | "" |
REDASH_ADDITIONAL_QUERY_RUNNERS value. |
redash.adhocQueryTimeLimit | string | None | REDASH_ADHOC_QUERY_TIME_LIMIT value. Time limit for adhoc queries (in seconds). |
redash.alertsDefaultMailSubjectTemplate | string | ({state}) {alert_name} | REDASH_ALERTS_DEFAULT_MAIL_SUBJECT_TEMPLATE value. |
redash.allowScriptsInUserInput | string | false | REDASH_ALLOW_SCRIPTS_IN_USER_INPUT value. Disable sanitization of text input, allowing full html. |
redash.authType | string | api_key | REDASH_AUTH_TYPE value. |
redash.bigqueryHttpTimeout | string | 600 | REDASH_BIGQUERY_HTTP_TIMEOUT value. |
redash.celeryBackend | string | CELERY_BROKER | REDASH_CELERY_BACKEND value. |
redash.celeryBroker | string | REDIS_URL | REDASH_CELERY_BROKER value. |
redash.celeryTaskResultExpires | string | 3600 * 4 | REDASH_CELERY_TASK_RESULT_EXPIRES value. How many seconds to keep celery task results in cache (in seconds). |
redash.cookieSecret | string | "" |
REQUIRED REDASH_COOKIE_SECRET value. Stored as a Secret value. |
redash.corsAccessControlAllowCredentials | string | false | REDASH_CORS_ACCESS_CONTROL_ALLOW_CREDENTIALS value. |
redash.corsAccessControlAllowHeaders | string | Content-Type | REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS value. |
redash.corsAccessControlAllowOrigin | string | "" |
REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN value. |
redash.corsAccessControlRequestMethod | string | GET, POST, PUT | REDASH_CORS_ACCESS_CONTROL_REQUEST_METHOD value. |
redash.dashboardRefreshIntervals | string | 60,300,600,1800,3600,43200,86400 | REDASH_DASHBOARD_REFRESH_INTERVALS value. |
redash.dateFormat | string | DD/MM/YY | REDASH_DATE_FORMAT value. |
redash.disabledQueryRunners | string | "" |
REDASH_DISABLED_QUERY_RUNNERS value. |
redash.enabledDestinations | string | ”,”.join(default_destinations) | REDASH_ENABLED_DESTINATIONS value. |
redash.enabledQueryRunners | string | ”,”.join(default_query_runners) | REDASH_ENABLED_QUERY_RUNNERS value. |
redash.enforceHttps | string | false | REDASH_ENFORCE_HTTPS value. |
redash.eventReportingWebhooks | string | "" |
REDASH_EVENT_REPORTING_WEBHOOKS value. |
redash.featureAllowCustomJsVisualizations | string | false | REDASH_FEATURE_ALLOW_CUSTOM_JS_VISUALIZATIONS value. |
redash.featureAutoPublishNamedQueries | string | true | REDASH_FEATURE_AUTO_PUBLISH_NAMED_QUERIES value. |
redash.featureDisableRefreshQueries | string | false | REDASH_FEATURE_DISABLE_REFRESH_QUERIES value. Disable scheduled query execution. |
redash.featureDumbRecents | string | false | REDASH_FEATURE_DUMB_RECENTS value. |
redash.featureExtendedAlertOptions | string | false | REDASH_FEATURE_EXTENDED_ALERT_OPTIONS value. Disable/enable custom template for alert. |
redash.featureShowPermissionsControl | string | false | REDASH_FEATURE_SHOW_PERMISSIONS_CONTROL value. |
redash.featureShowQueryResultsCount | string | true | REDASH_FEATURE_SHOW_QUERY_RESULTS_COUNT value. Disable/enable showing count of query results in status. |
redash.googleClientId | string | "" |
REDASH_GOOGLE_CLIENT_ID value. |
redash.googleClientSecret | string | "" |
REDASH_GOOGLE_CLIENT_SECRET value. Stored as a Secret value. |
redash.host | string | "" |
REDASH_HOST value. |
redash.invitationTokenMaxAge | string | 60 _ 60 _ 24 * 7 | REDASH_INVITATION_TOKEN_MAX_AGE value. |
redash.jobExpiryTime | string | 3600 * 12 | REDASH_JOB_EXPIRY_TIME value. |
redash.jwtAuthAlgorithms | string | HS256,RS256,ES256 | REDASH_JWT_AUTH_ALGORITHMS value. |
redash.jwtAuthAudience | string | "" |
REDASH_JWT_AUTH_AUDIENCE value. |
redash.jwtAuthCookieName | string | "" |
REDASH_JWT_AUTH_COOKIE_NAME value. |
redash.jwtAuthHeaderName | string | "" |
REDASH_JWT_AUTH_HEADER_NAME value. |
redash.jwtAuthIssuer | string | "" |
REDASH_JWT_AUTH_ISSUER value. |
redash.jwtAuthPublicCertsUrl | string | "" |
REDASH_JWT_AUTH_PUBLIC_CERTS_URL value. |
redash.jwtLoginEnabled | string | false | REDASH_JWT_LOGIN_ENABLED value. |
redash.ldapBindDn | string | None | REDASH_LDAP_BIND_DN value. |
redash.ldapBindDnPassword | string | "" |
REDASH_LDAP_BIND_DN_PASSWORD value. Stored as a Secret value. |
redash.ldapCustomUsernamePrompt | string | LDAP/AD/SSO username: | REDASH_LDAP_CUSTOM_USERNAME_PROMPT value. |
redash.ldapDisplayNameKey | string | displayName | REDASH_LDAP_DISPLAY_NAME_KEY value. |
redash.ldapEmailKey | string | REDASH_LDAP_EMAIL_KEY value. |
|
redash.ldapLoginEnabled | string | false | REDASH_LDAP_LOGIN_ENABLED value. |
redash.ldapSearchDn | string | REDASH_SEARCH_DN | REDASH_LDAP_SEARCH_DN value. |
redash.ldapSearchTemplate | string | (cn=%(username)s) | REDASH_LDAP_SEARCH_TEMPLATE value. |
redash.ldapUrl | string | None | REDASH_LDAP_URL value. |
redash.limiterStorage | string | REDIS_URL | REDASH_LIMITER_STORAGE value. |
redash.logLevel | string | INFO | REDASH_LOG_LEVEL value. |
redash.mailAsciiAttachments | string | false | REDASH_MAIL_ASCII_ATTACHMENTS value. |
redash.mailDefaultSender | string | None | REDASH_MAIL_DEFAULT_SENDER value. |
redash.mailMaxEmails | string | None | REDASH_MAIL_MAX_EMAILS value. |
redash.mailPassword | string | None | REDASH_MAIL_PASSWORD value. Stored as a Secret value. |
redash.mailPort | string | 25 | REDASH_MAIL_PORT value. |
redash.mailServer | string | localhost | REDASH_MAIL_SERVER value. |
redash.mailUseSsl | string | false | REDASH_MAIL_USE_SSL value. |
redash.mailUseTls | string | false | REDASH_MAIL_USE_TLS value. |
redash.mailUsername | string | None | REDASH_MAIL_USERNAME value. |
redash.multiOrg | string | false | REDASH_MULTI_ORG value. |
redash.passwordLoginEnabled | string | true | REDASH_PASSWORD_LOGIN_ENABLED value. |
redash.proxiesCount | string | 1 | REDASH_PROXIES_COUNT value. |
redash.queryRefreshIntervals | string | 60, 300, 600, 900, 1800, 3600, 7200, 10800, 14400, 18000, 21600, 25200, 28800, 32400, 36000, 39600, 43200, 86400, 604800, 1209600, 2592000 | REDASH_QUERY_REFRESH_INTERVALS value. |
redash.queryResultsCleanupCount | string | 100 | REDASH_QUERY_RESULTS_CLEANUP_COUNT value. |
redash.queryResultsCleanupEnabled | string | true | REDASH_QUERY_RESULTS_CLEANUP_ENABLED value. |
redash.queryResultsCleanupMaxAge | string | 7 | REDASH_QUERY_RESULTS_CLEANUP_MAX_AGE value. |
redash.remoteUserHeader | string | X-Forwarded-Remote-User | REDASH_REMOTE_USER_HEADER value. |
redash.remoteUserLoginEnabled | string | false | REDASH_REMOTE_USER_LOGIN_ENABLED value. |
redash.samlEntityId | string | "" |
REDASH_SAML_ENTITY_ID value. |
redash.samlMetadataUrl | string | "" |
REDASH_SAML_METADATA_URL value. |
redash.samlNameidFormat | string | "" |
REDASH_SAML_NAMEID_FORMAT value. |
redash.samlSchemeOverride | string | "" |
REDASH_SAML_SCHEME_OVERRIDE value. This setting will allow you to override the saml auth url scheme that gets constructed by flask. this is a useful feature if, for example, you’re behind a proxy protocol enabled tcp load balancer (aws elb that terminates ssl) and your nginx proxy or similar adds a x-forwarded-proto of http even though your redash url for saml auth is https.. |
redash.scheduledQueryTimeLimit | string | None | REDASH_SCHEDULED_QUERY_TIME_LIMIT value. Time limit for scheduled queries (in seconds). |
redash.schemaRunTableSizeCalculations | string | false | REDASH_SCHEMA_RUN_TABLE_SIZE_CALCULATIONS value. |
redash.schemasRefreshQueue | string | celery | REDASH_SCHEMAS_REFRESH_QUEUE value. The celery queue for refreshing the data source schemas. |
redash.schemasRefreshSchedule | string | 30 | REDASH_SCHEMAS_REFRESH_SCHEDULE value. How often to refresh the data sources schemas (in minutes). |
redash.secretKey | string | "" |
|
redash.sentryDsn | string | "" |
REDASH_SENTRY_DSN value. |
redash.sqlAlchemyEnablePoolPrePing | string | true | SQLALCHEMY_ENABLE_POOL_PRE_PING value, controls whether the database connection that’s in the pool will be checked by pinging before being used or not. See https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.pre_ping |
redash.staticAssetsPath | string | ”../client/dist/” | REDASH_STATIC_ASSETS_PATH value. |
redash.statsdHost | string | 127.0.0.1 | REDASH_STATSD_HOST value. |
redash.statsdPort | string | 8125 | REDASH_STATSD_PORT value. |
redash.statsdPrefix | string | redash | REDASH_STATSD_PREFIX value. |
redash.statsdUseTags | string | false | REDASH_STATSD_USE_TAGS value. Whether to use tags in statsd metrics (influxdb’s format). |
redash.throttleLoginPattern | string | 50/hour | REDASH_THROTTLE_LOGIN_PATTERN value. |
redash.versionCheck | string | true | REDASH_VERSION_CHECK value. |
redash.webWorkers | string | 4 | REDASH_WEB_WORKERS value. How many processes will gunicorn spawn to handle web requests. |
redis.cluster.enabled | bool | false |
|
redis.databaseNumber | int | 0 |
Enable Redis clustering (when redis chart enabled) |
redis.enabled | bool | true |
Whether to deploy a Redis server to satisfy the applications database requirements. To use an external Redis set this to false and configure the externalRedis parameter. |
redis.master.port | int | 6379 |
Redis master port to use (when redis chart enabled) |
scheduledWorker.affinity | object | {} |
Affinity for scheduled worker pod assignment ref |
scheduledWorker.env | object | {"QUEUES":"scheduled_queries,schemas","WORKERS_COUNT":1} |
Redash scheduled worker specific envrionment variables. |
scheduledWorker.nodeSelector | object | {} |
Node labels for scheduled worker pod assignment ref |
scheduledWorker.podAnnotations | object | {} |
Annotations for scheduled worker pod assignment ref |
scheduledWorker.podLabels | object | {} |
Labels for scheduled worker pod assignment ref |
scheduledWorker.podSecurityContext | object | {} |
Security contexts for scheduled worker pod assignment ref |
scheduledWorker.replicaCount | int | 1 |
Number of scheduled worker pods to run |
scheduledWorker.resources | string | nil |
Scheduled worker resource requests and limits ref |
scheduledWorker.securityContext | object | {} |
|
scheduledWorker.tolerations | list | [] |
Tolerations for scheduled worker pod assignment ref |
scheduledWorker.volumeMounts | list | [] |
VolumeMounts for scheduled worker pod assignment ref |
scheduledWorker.volumes | list | [] |
Volumes for scheduled pod worker assignment ref |
scheduler.affinity | object | {} |
Affinity for scheduler pod assignment ref |
scheduler.env | object | {} |
Redash scheduler specific envrionment variables. |
scheduler.nodeSelector | object | {} |
Node labels for scheduler pod assignment ref |
scheduler.podAnnotations | object | {} |
Annotations for scheduler pod assignment ref |
scheduler.podLabels | object | {} |
Labels for scheduler pod assignment ref |
scheduler.podSecurityContext | object | {} |
Security contexts for scheduler pod assignment ref |
scheduler.replicaCount | int | 1 |
Number of scheduler pods to run |
scheduler.resources | string | nil |
scheduler resource requests and limits ref |
scheduler.securityContext | object | {} |
|
scheduler.tolerations | list | [] |
Tolerations for scheduler pod assignment ref |
scheduler.volumeMounts | list | [] |
VolumeMounts for scheduler pod assignment ref |
scheduler.volumes | list | [] |
Volumes for scheduler pod assignment ref |
server.affinity | object | {} |
Affinity for server pod assignment ref |
server.env | object | {} |
Redash server specific environment variables Don’t use this for variables that are in the configuration above, however. |
server.httpPort | int | 5000 |
Server container port (only useful if you are using a customized image) |
server.nodeSelector | object | {} |
Node labels for server pod assignment ref |
server.podAnnotations | object | {} |
Annotations for server pod assignment ref |
server.podLabels | object | {} |
Labels for server pod assignment ref |
server.podSecurityContext | object | {} |
Security contexts for server pod assignment ref |
server.replicaCount | int | 1 |
Number of server pods to run |
server.resources | object | {} |
Server resource requests and limits ref |
server.securityContext | object | {} |
|
server.tolerations | list | [] |
Tolerations for server pod assignment ref |
server.volumeMounts | list | [] |
VolumeMounts for server pod assignment ref |
server.volumes | list | [] |
Volumes for server pod assignment ref |
service.annotations | object | {} |
Annotations to add to the service |
service.loadBalancerIP | string | nil |
Specific IP address to use for cloud providers such as Azure Kubernetes Service ref |
service.port | int | 80 |
Service external port |
service.type | string | "ClusterIP" |
Kubernetes Service type |
serviceAccount.annotations | object | {} |
Annotations to add to the service account |
serviceAccount.create | bool | true |
Specifies whether a service account should be created |
serviceAccount.name | string | nil |
The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
To upgrade a release named my-release
:
helm repo update
helm upgrade --reuse-values my-release redash/redash
Below are notes on manual configuration changes or steps needed for major chart version updates.
This chart uses the Apache 2 license.
Contributions are welcome.