Mastering Modern DevOps: Deploy Retool on Kubernetes with Helm

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.

  1. 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