You have Helm version v3.11.3 or greater installed
You have kubectl installed and connected to your kubernetes cluster
By deploying Trigger.dev on Kubernetes, you can take advantage of its features to ensure that the application is fault-tolerant, highly available, and scalable.
To make the installation process easier and more streamlined, we have created a Helm chart that you can use to install Trigger.dev on Kubernetes.Helm is a package manager for Kubernetes that simplifies the installation and management of Kubernetes applications.
With our Helm chart, you can easily install Trigger.dev on Kubernetes, configure it to your liking, and scale it up or down as needed.
Create a my-values.yaml file to configure various installation settings, such as the docker image tags and environment variables. To explore all configurable parameters for your values file visit our readme.
By default, the application will use the latest tag to retrieve the required Docker images, which may be appropriate for most cases.
However, we recommend that you use a specific version of the Docker image to avoid unexpected changes to the application.
You can configure environment variables for trigger in your Helm values file under the property trigger.env. See examples for some of these values here.At a bare minimum, Trigger.dev requires the following environment variables to be defined:
MAGIC_LINK_SECRET
SESSION_SECRET
ENCRYPTION_KEY
DIRECT_URL
DATABASE_URL
When the above environment variables are not defined, the Helm chart will automatically generate values for you. It will persist them in a secret which is preserved between upgrades or uninstalls. It is however strongly recommended to define your own values!
By default, Trigger.dev takes all traffic coming to your external load balancer’s IP address and routes them Trigger.dev’s services.
Trigger.dev uses Nginx to route external traffic. You can install Nginx along with Trigger by setting ingress.enabled to true in the Helm values file. View all parameters for ingress.
my-values.yaml
Copy
Ask AI
...ingress: nginx: enabled: true # <-- if you would like to install nginx along with Trigger.dev
With this Helm chart, you spin up a PostgreSQL instance powered by Bitnami alongside other Trigger.dev services in your cluster.
When persistence is enabled, the data will be stored as a Kubernetes Persistence Volume. View all parameters for postgres.
trigger: name: trigger replicaCount: 2 image: repository: ghcr.io/triggerdotdev/trigger.dev tag: "latest" pullPolicy: Always env: ENCRYPTION_KEY: "b1ebe43a6a6e24b2aa8fa0707d3890e3" MAGIC_LINK_SECRET: "842727396bcee22da68518f959c5730b"ingress: nginx: enabled: true # <-- if you would like to install nginx along with Trigger.dev
Full helm values example
my-values.yaml
Copy
Ask AI
ingress: nginx: enabled: truetrigger: enabled: true name: trigger podAnnotations: {} deploymentAnnotations: {} replicaCount: 4 image: repository: ghcr.io/triggerdotdev/trigger.dev tag: "latest" pullPolicy: IfNotPresent kubeSecretRef: null service: annotations: {} type: ClusterIP nodePort: "" env: ENCRYPTION_KEY: "b1ebe43a6a6e24b2aa8fa0707d3890e3" MAGIC_LINK_SECRET: "842727396bcee22da68518f959c5730b"## Postgresql DB persistence postgresql: enabled: true persistence: enabled: trueingress: enabled: true annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" # <-- if you are setting up HTTPS hostName: app.yourdomain.com ## <-- replace with your own domain trigger: path: / pathType: Prefix tls: # <-- if you are setting up HTTPS - secretName: echo-tls hosts: - app.yourdomain.com
Once the deployment is ready, you should be able to access Trigger.dev on the IP address exposed via Ingress on your load balancer. If you are not sure what the IP address is run kubectl get ingress to view the external IP address exposing Trigger.dev.
Once installation is complete, you will have to create the first account. No default account is provided.