This repository contains the official Helm 3 chart for installing and configuring Retool on Kubernetes. For full documentation on all the ways you can deploy Retool on your own infrastructure, please see the Setup Guide.
- This chart requires Helm 3.7.
- A PostgreSQL database.
- Persistent volumes are not reliable - we strongly recommend that a long-term installation of Retool host the database on an externally managed database (for example, AWS RDS).
-
Add the Retool Helm repository:
$ helm repo add retool https://charts.retool.com "retool" has been added to your repositories
-
Ensure you have access to the
retool-wf
chart:$ helm search repo retool/retool-wf NAME CHART VERSION APP VERSION DESCRIPTION retool/retool-wf 4.0.0 2.66.2 A Helm chart for Kubernetes
-
Run this command
git clone https://github.com/tryretool/retool-workflows-helm.git
-
Modify the
values.yaml
file:
-
Set values for
config.encryptionKey
andconfig.jwtSecret
. They should each be a different long, random string that you keep private. See our docs on Environment Variables for more information on how they are used. -
Set
image.tag
with the version of Retool you want to install (i.e. a version in the format X.Y.Z). See our guide on Retool Release Versions to see our most recent version. The minimum supported image for Retool Workflows is 2.108.4 -
Set
config.licenseKey
with your license key. -
To force Retool to send the auth cookies over HTTP, set
config.useInsecureCookies
totrue
. Leave the default value offalse
if you will use https to connect to the instance. -
Set
workflows.enabled
totrue
to enable Workflows.
-
Now you're all ready to install Retool:
$ helm install my-retool retool/retool-wf -f values.yaml
Modify values.yaml
:
- Disable the included postgresql chart by setting
postgresql.enabled
tofalse
. Then specify your external database through theconfig.postgresql.\*
properties at the top of the file. You will also need to specify these external database values inretool-temporal-services-helm.server.config.persistence.{default & visibility}.sql
.
-
Create a
configMap
of the directory which contains yourproto
files.$ kubectl create configmap protos --from-file=<protos-path>
-
Modify
values.yaml
:extraVolumeMounts: - name: protos mountPath: /retool_backend/protos readOnly: true extraVolumes: - name: protos configMap: name: protos env: PROTO_DIRECTORY_PATH=/retool_backend/protos
Modify values.yaml
:
- Uncomment
ingress.hosts
and changeingress.hosts.host
to be the hostname where you will access Retool. - If you are implementing TLS for your Retool instance, uncomment
ingress.tls
and:- Specify the name of the SSL certificate to use as the value of
ingress.tls.secretName
. - Specify an array containing the hostname where you will access Retool (the same value you configured for
ingress.hosts.host
).
- Specify the name of the SSL certificate to use as the value of
GKE-specific configurations:
- Specify
/*
as the value ofingress.hosts.paths.path
. - Comment out
ingress.tls.servicePort
as it is not required.