Deploy Retool Using Helm Charts on SleakOps
Deploy Retool on a SleakOps Kubernetes cluster using Helm chart v6.3.6 .
info
This guide targets Helm Chart version 6.3.6. Check ArtifactHub for the latest version and any values changes.
Prerequisites
SleakOps prerequisites:
- EBS CSI Driver installed (required for the PostgreSQL volume)
- EFS CSI Driver installed (required for Retool's app and workflow storage)
- A dedicated AMD64 NodePool created (Retool only runs on AMD64 architecture)
Kubernetes prerequisites:
- Namespace
retoolcreated - Secret
retool-keyscreated with the following keys:encryption-key: generate withopenssl rand -base64 36jwt-secret: generate withopenssl rand -base64 36license-key: your Retool license key
- Secret
retool-postgresqlcreated with:passwordpostgres-passwordreplication-password
- Google OAuth credentials (
clientIdandclientSecret) for SSO
Let's Start
Step 1 — Create the retool-values.yaml file
Replace all values highlighted with {...} for your deployment:
config:
auth:
google:
clientId: xxxxxxxxxxxxxxxxx.apps.googleusercontent.com
clientSecret: xxxxxxxxxxxxxxxxxxxxxxx
encryption-key: <output of: openssl rand -hex 32>
jwt-secret: <output of: openssl rand -hex 32>
licenseKeySecretName: retool-keys
useInsecureCookies: true # required when TLS is terminated at the load balancer
env:
ALLOW_SAME_ORIGIN_OPTION: "true"
BASE_DOMAIN: https://retool.{domain}.com
COOKIE_INSECURE: "true" # required when TLS is terminated at the load balancer
DOMAINS: https://retool.{domain}.com
HOST_HEADER_NAME: x-forwarded-host
SANDBOX_DOMAIN: https://retool.{domain}.com
image:
pullPolicy: IfNotPresent
repository: tryretool/backend
tag: 3.114.13-stable # replace with target version
ingress:
enabled: true
annotations:
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:111222333444:certificate/12121212-1212-1212-1212-121212232323
alb.ingress.kubernetes.io/group.name: {group.name}-private
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/target-type: ip
hosts:
- host: retool.{domain}.com
paths:
- path: /
pathType: Prefix
ingressClassName: alb-ingressclass-private
labels:
app.kubernetes.io/name: retool{domain}com
tls:
- hosts:
- retool.{domain}.com
nodeSelector:
karpenter.sh/nodepool: {nodepool_name} # e.g.: amd64-utilities
kubernetes.io/arch: amd64
persistentVolumeClaim:
enabled: true
mountPath: /retool_backend/pv-data
size: 15Gi
storageClass: efs-sc-retain
postgresql:
auth:
username: postgres
existingSecret: retool-postgresql
secretKeys:
adminPasswordKey: postgres-password
replicationPasswordKey: replication-password
userPasswordKey: password
primary:
tolerations:
- key: karpenter.sh/nodepool
operator: Equal
value: {nodepool_name} # e.g.: amd64-utilities
replicaCount: 1
resources:
limits:
cpu: 4096m
memory: 8192Mi
requests:
cpu: 1024m
memory: 2048Mi
serviceAccount:
name: retool-sa
tolerations:
- key: karpenter.sh/nodepool
operator: Equal
value: {nodepool_name} # e.g.: amd64-utilities
Step 2 — Deploy the chart
Add the Retool Helm repo and install:
helm repo add retool https://charts.retool.com
helm repo update
helm upgrade --install retool retool/retool \
--version 6.3.6 \
--namespace retool \
--values retool-values.yaml
Step 3 — Verify the deployment
Check that the Pods are running:
kubectl get pods -n retool
Once the retool Pod is Running, open https://retool.{domain}.com to complete the initial setup.