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
{{ message }}
Repository navigation
Commit 3aa9aa6
Browse filesBrowse the repository at this point in the historyBrowse files
chore(helm): replace Electric with native realtime
Use native realtime for Helm installations and stop deploying the
unavailable Electric image. Remove Electric configuration and health
checks, and enable the native backend through webapp environment
variables. No webapp code changes.
Existing realtimeBackend feature-flag overrides must be unset or set to
native before upgrading.
Mono-RevId: 6a97739883323107714d76d02bffafac5c658b77
Copy file name to clipboardExpand all lines: docs/self-hosting/env/webapp.mdx
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,6 +156,8 @@ mode: "wide"
156
156
|`EVENT_REPOSITORY_DEFAULT_STORE`| No | postgres | Where to store task events. Set to `clickhouse_v2` to store in ClickHouse (recommended for production). |
157
157
|`EVENT_REPOSITORY_POSTGRES_WRITES_DISABLED`| No | 0 | Skip all PostgreSQL task-event writes (set to `1`). Only enable when `EVENT_REPOSITORY_DEFAULT_STORE` is `clickhouse_v2`, otherwise task events are lost. |
158
158
|**Realtime**||||
159
+
|`REALTIME_BACKEND_NATIVE_ENABLED`| No | 0 | Set to `1` to enable native realtime run subscriptions and change notifications. When `0`, subscriptions use Electric. The Helm chart sets this to `1`. |
160
+
|`REALTIME_BACKEND_DEFAULT`| No | electric | Backend for run subscriptions when native realtime is enabled and no `realtimeBackend` feature-flag override is set. One of `electric`, `native`, `shadow`. The Helm chart sets this to `native`. Separate from realtime stream version settings. |
159
161
|`REALTIME_STREAM_VERSION`| No | v1 | Stream version exposed to tasks via the `TRIGGER_REALTIME_STREAM_VERSION` variable. Distinct from `REALTIME_STREAMS_DEFAULT_VERSION`. One of `v1`, `v2`. |
160
162
|`REALTIME_STREAM_MAX_LENGTH`| No | 1000 | Realtime stream max length. |
Copy file name to clipboardExpand all lines: docs/self-hosting/kubernetes.mdx
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,13 @@ 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 settings live under `webapp`, supervisor settings under `supervisor.config`, and each service takes `extraEnvVars` for anything else.
38
+
Each component maps to a top-level key in `values.yaml`: `webapp`, `supervisor`, `postgres`, `redis`, `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
+
40
+
Realtime run subscriptions use the native backend with the configured PostgreSQL, Redis, and ClickHouse services. The chart sets `REALTIME_BACKEND_NATIVE_ENABLED=1` and `REALTIME_BACKEND_DEFAULT=native`; no Electric service is required. These settings are separate from the S2-backed realtime streams configuration.
41
+
42
+
<Warning>
43
+
Before upgrading from a chart that deploys Electric, unset the global `realtimeBackend` feature flag and any organization overrides, or set them to `native`. Both take precedence over the environment default. Values of `electric` or `shadow` still select the Electric backend, which this chart no longer deploys.
44
+
</Warning>
39
45
40
46
## Requirements
41
47
@@ -91,7 +97,7 @@ Bundled datastores let you run the whole stack with a single command and no exte
91
97
--create-namespace
92
98
```
93
99
94
-
The chart deploys the webapp, supervisor, and bundled Postgres, Redis, Electric, ClickHouse, MinIO, and s2-lite. The registry is not deployed by default - configure an external one before deploying tasks.
100
+
The chart deploys the webapp, supervisor, and bundled Postgres, Redis, ClickHouse, MinIO, and s2-lite. The registry is not deployed by default - configure an external one before deploying tasks.
95
101
</Step>
96
102
97
103
<Steptitle="Port-forward the webapp">
@@ -533,9 +539,14 @@ With external datastores, secrets, registry, and authentication in place, you ha
533
539
534
540
### Upgrading
535
541
536
-
`helm upgrade`is safe to run as-is. Your generated secrets, data volumes, and the bundled ClickHouse are preserved and migrated automatically, so a normal upgrade needs no preparation. A few situations need one manual step first — expand any that apply to you.
542
+
Your generated secrets, data volumes, and the bundled ClickHouse are preserved and migrated automatically. Before running `helm upgrade`, complete any prerequisites below that apply to your installation.
537
543
538
544
<AccordionGroup>
545
+
<Accordion title="You upgrade from a chart that deploys Electric">
546
+
Unset the global `realtimeBackend` feature flag and any organization overrides, or set them to `native`, before upgrading. Organization overrides take precedence over the global flag, and the global flag takes precedence over `REALTIME_BACKEND_DEFAULT`.
547
+
548
+
The chart enables native realtime and removes the Electric service. A remaining `electric` or `shadow` flag value directs run subscriptions to that removed service and breaks realtime updates.
549
+
</Accordion>
539
550
<Accordion title="You supply your own secret (secrets.existingSecret)">
540
551
With `secrets.existingSecret` set, the chart reads every key from your Secret and generates none, so any key the app needs must already be present there.
Copy file name to clipboardExpand all lines: hosting/k8s/helm/README.md
+3-26Lines changed: 3 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,7 +107,6 @@ This chart deploys the following components:
107
107
- **Webapp** - Main Trigger.dev application (port 3030)
108
108
- **PostgreSQL** - Primary database with logical replication
109
109
- **Redis** - Cache and job queue
110
-
- **Electric** - Real-time sync service (ElectricSQL)
111
110
112
111
### Worker Services
113
112
- **Supervisor** - Kubernetes worker orchestrator for executing runs
@@ -119,6 +118,8 @@ This chart deploys the following components:
119
118
120
119
## Configuration
121
120
121
+
Realtime run subscriptions use the native backend with the configured Redis, PostgreSQL, and ClickHouse services. Before upgrading, unset the global `realtimeBackend` feature flag and any organization overrides, or set them to `native`. Organization overrides take precedence over the global flag, which takes precedence over the environment default. Values of `electric` or `shadow` select the removed Electric service and break run subscriptions.
122
+
122
123
### Basic Configuration
123
124
124
125
```yaml
@@ -400,30 +401,6 @@ supervisor:
400
401
failureThreshold: 60
401
402
successThreshold: 1
402
403
403
-
# Electric health probes
404
-
electric:
405
-
livenessProbe:
406
-
enabled: true
407
-
initialDelaySeconds: 5
408
-
periodSeconds: 5
409
-
timeoutSeconds: 5
410
-
failureThreshold: 5
411
-
successThreshold: 1
412
-
readinessProbe:
413
-
enabled: true
414
-
initialDelaySeconds: 5
415
-
periodSeconds: 5
416
-
timeoutSeconds: 1
417
-
failureThreshold: 5
418
-
successThreshold: 1
419
-
startupProbe:
420
-
enabled: false
421
-
initialDelaySeconds: 0
422
-
periodSeconds: 10
423
-
timeoutSeconds: 5
424
-
failureThreshold: 60
425
-
successThreshold: 1
426
-
427
404
# Registry health probes
428
405
registry:
429
406
livenessProbe:
@@ -560,7 +537,7 @@ The Helm chart uses three types of versions:
560
537
561
538
1. **Chart Version** (`Chart.yaml:version`) - Helm chart packaging version
562
539
2. **App Version** (`Chart.yaml:appVersion`) - Trigger.dev application version
563
-
3.**Component Versions** (`values.yaml`) - Individual service versions (Electric, ClickHouse, etc.)
540
+
3. **Component Versions** (`values.yaml`) - Individual service versions (ClickHouse, etc.)
Copy file name to clipboardExpand all lines: hosting/k8s/helm/templates/validate-external-config.yaml
-6Lines changed: 0 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -32,12 +32,6 @@ This template will fail the Helm deployment if external config is missing for re
32
32
{{- end }}
33
33
{{/* When s3.deploy=true the MinIO root password is auto-generated into the datastore Secret and consumed via auth.existingSecret; set s3.auth.rootPassword to pin it. */}}
34
34
35
-
{{- if not .Values.electric.deploy }}
36
-
{{- if not .Values.electric.external.url }}
37
-
{{- fail "Electric external configuration is required when electric.deploy=false. Please provide electric.external.url" }}
38
-
{{- end }}
39
-
{{- end }}
40
-
41
35
{{- if and .Values.s2.deploy .Values.s2.external.endpoint }}
42
36
{{- fail "S2 configuration conflict: s2.external.endpoint is set but s2.deploy=true, so the external endpoint would be ignored. Set s2.deploy=false to use an external S2 endpoint, or clear s2.external.endpoint to use the bundled s2-lite." }}
0 commit comments