Skip to content

Commit fbf811c

Browse files
committed
docs(self-hosting): add a Kubernetes upgrade section
Collects the chart changes that need action before an upgrade: the two secret keys the webapp started reading in 4.5.6, the move of the bundled datastore credentials into the chart-managed Secret (with the old-to-new mapping for consumers outside the chart), and a pointer to the ClickHouse image notes. Also corrects the existingSecret key list, which named the S3 environment variables rather than the keys the chart actually reads.
1 parent 17b8238 commit fbf811c

1 file changed

Lines changed: 47 additions & 2 deletions

File tree

docs/self-hosting/kubernetes.mdx

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,50 @@ kubectl port-forward svc/trigger-webapp 3040:3030 -n trigger
8080
kubectl logs -n trigger deployment/trigger-webapp | grep -A1 "magic link"
8181
```
8282

83+
## Upgrading
84+
85+
`helm upgrade` keeps generated secrets, PVCs, and datastore volumes, so most upgrades need no preparation. These chart versions are the exceptions.
86+
87+
### 4.5.6: two new required secret keys
88+
89+
The webapp now reads `PROVIDER_SECRET` and `COORDINATOR_SECRET`. When you supply `secrets.existingSecret` the chart generates nothing and reads every key from your Secret, so both keys must exist there before you upgrade. Inline `secrets.*` values are ignored while `existingSecret` is set.
90+
91+
Add them with two fresh 32-character hex values:
92+
93+
```bash
94+
kubectl patch secret my-trigger-secrets -n trigger --type merge -p \
95+
"{\"stringData\":{\"PROVIDER_SECRET\":\"$(openssl rand -hex 16)\",\"COORDINATOR_SECRET\":\"$(openssl rand -hex 16)\"}}"
96+
```
97+
98+
The chart checks your Secret in a pre-upgrade hook and aborts with the list of missing keys, leaving the running release untouched. Without that check a missing key surfaces as a `CreateContainerConfigError` partway through the webapp rollout.
99+
100+
<Note>
101+
GitOps tools that render with `helm template` have no cluster access, so the check is
102+
skipped and a missing key still reaches the rollout. Verify the keys yourself before syncing.
103+
</Note>
104+
105+
### 4.5.6: ClickHouse credentials moved
106+
107+
The bundled ClickHouse password moved out of the subchart-generated Secret and into the chart-managed datastore Secret:
108+
109+
| | Up to 4.5.5 | 4.5.6 and later |
110+
| ------ | ---------------------- | --------------------------- |
111+
| Secret | `<release>-clickhouse` | `trigger-datastore` |
112+
| Key | `admin-password` | `clickhouse-admin-password` |
113+
114+
The webapp and the ClickHouse server both read the new location, so the upgrade itself needs no action. Repoint anything outside the chart that reads the old Secret — a maintenance CronJob, a Grafana datasource, an external secret sync:
115+
116+
```bash
117+
kubectl get secret trigger-datastore -n trigger \
118+
-o jsonpath='{.data.clickhouse-admin-password}' | base64 -d
119+
```
120+
121+
The same move applies to the bundled PostgreSQL (`postgres-password`) and MinIO (`minio-root-user`, `minio-root-password`).
122+
123+
### Bitnami ClickHouse to the official image
124+
125+
The bundled ClickHouse runs the official `clickhouse/clickhouse-server` image instead of the Bitnami subchart. The chart adopts your existing data volume automatically, with three caveats covered under [ClickHouse](#clickhouse) in external services: rendering without cluster access, pinned Bitnami image tags, and storage that doesn't support `fsGroup`.
126+
83127
## Configuration
84128

85129
Most values map directly to the environment variables documented in the [webapp](/self-hosting/env/webapp) and [supervisor](/self-hosting/env/supervisor) environment variable overview.
@@ -138,8 +182,9 @@ secrets:
138182
# - PROVIDER_SECRET
139183
# - COORDINATOR_SECRET
140184
# - MANAGED_WORKER_SECRET
141-
# - OBJECT_STORE_ACCESS_KEY_ID
142-
# - OBJECT_STORE_SECRET_ACCESS_KEY
185+
# Plus s3-auth-access-key-id and s3-auth-secret-access-key if you deploy the
186+
# bundled MinIO with s3.auth.existingSecret cleared. The chart lists any keys
187+
# it can't find and fails the install before touching a running release.
143188
secrets:
144189
enabled: false
145190
existingSecret: "your-existing-secret"

0 commit comments

Comments
 (0)