Mastering Modern DevOps: Deploy Retool on Kubernetes with Helm
Introduction :-
DevOps practices have become essential in modern software development, enabling teams to deliver applications faster and more efficiently. One powerful combination in this realm is deploying Retool, a popular low-code platform, on Kubernetes using Helm. This approach combines the flexibility of Retool with the scalability and robustness of Kubernetes, all managed through the simplicity of Helm charts.
Requirements :-
To deploy Self-hosted Retool with Workflows, you will need:
- A Retool license key, available from the Retool Self-hosted Portal.
- A domain you own, where you can add a DNS record.
- A Kubernetes cluster. For creating a cluster, refer to the documentation on Google Cloud Platform, AWS, and Azure.
- A functioning installation of kubectl. For installation instructions, see the documentation on Google Cloud Platform, AWS, and Azure.
- Add the Retool Helm chart repository
Use the command below to add the Retool Helm repository.
Add Retool chart
helm repo add retool https://charts.retool.com
Run helm search repo retool/retool
to ensure you can access the Retool chart.
Verify Retool chart
NAME CHART VERSION APP VERSION DESCRIPTION
retool/retool 6.2.5 A Helm chart for Kubernetes
retool/retool-wf 4.13.0 A Helm chart for Kubernetes
2. Download Helm configuration file
Retool's Helm chart is set up using a values.yaml file. Download this file to your local machine with the command below. Open values.yaml in a text editor or IDE to follow the next steps.
curl -L -o values.yaml https://raw.githubusercontent.com/tryretool/retool-helm/main/values.yaml
3. Update Helm configuration
Open the values.yaml file. In Kubernetes, configuration options can be stored as plain text or as Kubernetes secrets. The example below sets config.licenseKey as plain text.
config:
licenseKey: "XXX-XXX-XXX"
A Kubernetes secret is an object containing multiple key-value pairs. You need both the secret name and the key to configure the values.yaml file. The example below uses a value stored in the license-key-secret under the key license-key.
config:
licenseKeySecretName: license-key-secret
licenseKeySecretKey: license-key
Retool advises storing sensitive information—such as passwords and credentials—as Kubernetes secrets, especially if you commit values.yaml to source control.
Set the following values in values.yaml.
config.licenseKey
config.encryptionKey
config.jwtSecret
4. Install Self-hosted Retool
After updating the configuration, proceed to install Self-hosted Retool.
helm install my-retool retool/retool -f values.yaml
Once Retool is installed, run kubectl get pods
to check for pods related to the main service and jobs-runner. If you use the PostgreSQL subchart, there will also be a postgresql pod. If Workflows are enabled, you will see workflow-worker and workflow-backend pods as well.
Verify pods
my-retool-7898474bbd-pr8n6 1/1 Running 1 (8h ago) 8h
my-retool-jobs-runner-74796ddd99-dd856 1/1 Running 0 8h
my-retool-postgresql-0 1/1 Running 0 8h
Once the main service is operational, verify the installation by port forwarding to localhost.
kubectl port-forward my-retool-7898474bbd-69zjt 3000:3000
You can then access Retool at http://localhost:3000/.
Conclusion :-
Deploying Retool on Kubernetes using Helm represents a powerful approach in modern DevOps practices. This combination offers flexibility, scalability, and ease of management, making it an attractive option for teams looking to streamline their internal tool development and deployment processes