You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`MANAGED_WORKER_SECRET`| Yes | — | Managed worker secret. Must be set and match supervisor. Run: `openssl rand -hex 32`|
15
-
|`ALLOW_INSECURE_DEFAULT_SECRETS`| No | false | Boot even if a secret is still a known-insecure published default. Temporary escape hatch for values you can't safely rotate yet (see [Secret generation and rotation](/self-hosting/kubernetes#secret-generation-and-rotation)). |
15
+
|`ALLOW_INSECURE_DEFAULT_SECRETS`| No | false | Boot even if a secret is still a known-insecure published default. Temporary escape hatch for values you can't safely rotate yet (see [Secrets](/self-hosting/kubernetes#secrets)). |
Copy file name to clipboardExpand all lines: docs/self-hosting/kubernetes.mdx
+13-26Lines changed: 13 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ flowchart TD
35
35
workers --> reg
36
36
```
37
37
38
-
Each component maps to a top-level key in `values.yaml`: `webapp`, `supervisor`, `postgres`, `redis`, `electric`, `clickhouse`, `s3` (object storage), `s2`, and `registry`. The datastores default to `deploy: true` and run in-cluster; set `deploy: false` with an `external` block to bring your own. The registry is the exception - it defaults to `deploy: false`, so you point it at an external one. Webapp and supervisor behaviour is driven by `config` and `extraEnvVars`.
38
+
Each component maps to a top-level key in `values.yaml`: `webapp`, `supervisor`, `postgres`, `redis`, `electric`, `clickhouse`, `s3` (object storage), `s2`, and `registry`. The datastores default to `deploy: true` and run in-cluster; set `deploy: false` with an `external` block to bring your own. The registry is the exception - it defaults to `deploy: false`, so you point it at an external one. Webapp settings live under `webapp`, supervisor settings under `supervisor.config`, and each service takes `extraEnvVars` for anything else.
39
39
40
40
## Requirements
41
41
@@ -135,27 +135,19 @@ Application, control-plane, and bundled-datastore secrets left unset are generat
135
135
136
136
For production, supply your own Secret instead so credentials live outside the release. With `secrets.existingSecret` set, the chart generates nothing and reads every key from your Secret; a preflight check fails the install - before touching a running release - and lists any keys it can't find.
137
137
138
+
To pin values inline instead of letting the chart generate them - for example to share `MANAGED_WORKER_SECRET` with an external supervisor - set them under `secrets`:
139
+
138
140
```yaml
139
-
# Leave these unset to have the chart auto-generate strong values on first
140
-
# install (retained across upgrades). Set them explicitly only if you need to
141
-
# control the value - e.g. sharing MANAGED_WORKER_SECRET with an external
142
-
# supervisor - or use an existingSecret.
143
141
secrets:
144
142
enabled: true
145
143
sessionSecret: "your-32-char-hex-secret-1"
146
144
magicLinkSecret: "your-32-char-hex-secret-2"
147
145
# ...
146
+
```
148
147
149
-
# Recommended: existingSecret, must contain at least the following keys:
150
-
# - SESSION_SECRET
151
-
# - MAGIC_LINK_SECRET
152
-
# - ENCRYPTION_KEY
153
-
# - PROVIDER_SECRET
154
-
# - COORDINATOR_SECRET
155
-
# - MANAGED_WORKER_SECRET
156
-
# Plus s3-auth-access-key-id and s3-auth-secret-access-key if you deploy the
157
-
# bundled MinIO with s3.auth.existingSecret cleared. The chart lists any keys
158
-
# it can't find and fails the install before touching a running release.
148
+
To use an existing Secret instead, leave the values unset and set `existingSecret`. It must contain at least `SESSION_SECRET`, `MAGIC_LINK_SECRET`, `ENCRYPTION_KEY`, `PROVIDER_SECRET`, `COORDINATOR_SECRET`, and `MANAGED_WORKER_SECRET` - plus `s3-auth-access-key-id` and `s3-auth-secret-access-key` if you deploy the bundled MinIO with `s3.auth.existingSecret` cleared:
149
+
150
+
```yaml
159
151
secrets:
160
152
enabled: false
161
153
existingSecret: "your-existing-secret"
@@ -186,7 +178,7 @@ Most values map directly to the environment variables documented in the [webapp]
186
178
APP_ORIGIN=https://trigger.example.com
187
179
188
180
# Becomes Helm value
189
-
config:
181
+
webapp:
190
182
appOrigin: "https://trigger.example.com"
191
183
```
192
184
@@ -205,14 +197,11 @@ helm show values oci://ghcr.io/triggerdotdev/charts/trigger \
205
197
Create a `values-custom.yaml` that overrides the defaults with your URLs and resource requests:
206
198
207
199
```yaml
208
-
# Application URLs
209
-
config:
200
+
# Application URLs and resource limits
201
+
webapp:
210
202
appOrigin: "https://trigger.example.com"
211
203
loginOrigin: "https://trigger.example.com"
212
204
apiOrigin: "https://trigger.example.com"
213
-
214
-
# Resource limits
215
-
webapp:
216
205
resources:
217
206
requests:
218
207
cpu: 1000m
@@ -318,7 +307,7 @@ redis:
318
307
319
308
#### ClickHouse
320
309
321
-
Migration from the old Bitnami subchart to the official `clickhouse/clickhouse-server` image is automatic - a normal upgrade moves you across with no manual step.
310
+
Migration from the old Bitnami subchart to the official `clickhouse/clickhouse-server` image is automatic - a normal upgrade moves you across with no manual step. The one exception: if you pinned `clickhouse.image` to a Bitnami tag, switch it to an official `clickhouse/clickhouse-server` tag first, since Bitnami tags don't exist in the official repository.
322
311
323
312
<Note>
324
313
Trigger.dev requires ClickHouse 25.8 or newer. The bundled ClickHouse is single-node — run
@@ -438,16 +427,15 @@ registry:
438
427
# Part of deployment image ref, for example: your-registry.example.com/your-company/proj_123:20250625.1.prod
439
428
repositoryNamespace: "your-company"
440
429
external:
441
-
host: "your-registry.example.com"
442
-
port: 5000
430
+
host: "your-registry.example.com:5000"
443
431
auth:
444
432
enabled: true
445
433
username: "your-username"
446
434
password: "your-password"
447
435
```
448
436
449
437
<Note>
450
-
The internal registry (`registry.external: false`) is experimental and requires proper TLS setup
438
+
The internal registry (`registry.deploy: true`) is experimental and requires proper TLS setup
451
439
and additional cluster configuration. Use an external registry for production.
452
440
</Note>
453
441
@@ -577,7 +565,6 @@ With external datastores, secrets, registry, and authentication in place, you ha
577
565
578
566
- Point `clickhouse.persistence.existingClaim` at your ClickHouse data volume (`data-<release>-clickhouse-shard0-0`) and keep it set on future syncs, so ClickHouse reuses its data instead of starting on an empty volume.
579
567
- Confirm `PROVIDER_SECRET` and `COORDINATOR_SECRET` are already in your Secret before syncing.
580
-
- If you pinned `clickhouse.image` to a Bitnami tag, switch it to an official `clickhouse/clickhouse-server` tag.
0 commit comments