Desplegar Retool con Helm Charts en SleakOps
Desplegá Retool en un cluster de Kubernetes de SleakOps usando el Helm chart v6.3.6 .
info
Esta guía corresponde a la versión 6.3.6 del Helm Chart. Consultá ArtifactHub para la versión más reciente y posibles cambios en los values.
Prerrequisitos
Prerrequisitos en SleakOps:
- EBS CSI Driver instalado (necesario para el volumen de PostgreSQL)
- EFS CSI Driver instalado (necesario para el almacenamiento de apps y flujos de Retool)
- Un NodePool AMD64 dedicado creado (Retool solo corre en arquitectura AMD64)
Prerrequisitos en Kubernetes:
- Namespace
retoolcreado - Secret
retool-keyscreado con las siguientes claves:encryption-key: generar conopenssl rand -base64 36jwt-secret: generar conopenssl rand -base64 36license-key: tu licencia de Retool
- Secret
retool-postgresqlcreado con:passwordpostgres-passwordreplication-password
- Credenciales OAuth de Google (
clientIdyclientSecret) para SSO
Empecemos
Paso 1 — Crear el archivo retool-values.yaml
Reemplazá todos los valores marcados con {...} para tu despliegue:
config:
auth:
google:
clientId: xxxxxxxxxxxxxxxxx.apps.googleusercontent.com
clientSecret: xxxxxxxxxxxxxxxxxxxxxxx
encryption-key: <salida de: openssl rand -hex 32>
jwt-secret: <salida de: openssl rand -hex 32>
licenseKeySecretName: retool-keys
useInsecureCookies: true # requerido cuando TLS termina en el load balancer
env:
ALLOW_SAME_ORIGIN_OPTION: "true"
BASE_DOMAIN: https://retool.{dominio}.com
COOKIE_INSECURE: "true" # requerido cuando TLS termina en el load balancer
DOMAINS: https://retool.{dominio}.com
HOST_HEADER_NAME: x-forwarded-host
SANDBOX_DOMAIN: https://retool.{dominio}.com
image:
pullPolicy: IfNotPresent
repository: tryretool/backend
tag: 3.114.13-stable # reemplazar con la versión objetivo
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.{dominio}.com
paths:
- path: /
pathType: Prefix
ingressClassName: alb-ingressclass-private
labels:
app.kubernetes.io/name: retool{dominio}com
tls:
- hosts:
- retool.{dominio}.com
nodeSelector:
karpenter.sh/nodepool: {nodepool_name} # ej: 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} # ej: 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} # ej: amd64-utilities
Paso 2 — Desplegar el chart
Agregar el repo Helm de Retool e instalar:
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
Paso 3 — Verificar el despliegue
Verificar que los Pods estén corriendo:
kubectl get pods -n retool
Una vez que el Pod retool esté en estado Running, abrí https://retool.{dominio}.com para completar la configuración inicial.