Chart 0.1.6 default image predates auto-migrate — out-of-box install crash-loops on a fresh external Postgres
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Environment
- Chart: `oci://ghcr.io/block/buzz/charts/buzz` **0.1.6**, `image.tag` unset
→ falls back to `appVersion: "0.1.0"` → `ghcr.io/block/buzz:0.1.0`
(= `sha-1fa63ba`, `1fa63badad…`)
- Values: bundled Postgres/Redis disabled, `externalPostgresql` via
`secrets.existingSecret`, fresh empty database
## What happens
The chart sets `BUZZ_AUTO_MIGRATE=true` by default (`migrate.autoMigrate`,
values.yaml) and its deployment template renders the env var — but the
default image **predates the auto-migrate feature** (#988,
`2300248d…`), so the env is silently ignored. Against a fresh database the
relay crash-loops:
```
INFO Postgres connected
ERROR Failed to ensure partitions: … relation "events" does not exist
Error: Failed to bootstrap relay owner (required when BUZZ_REQUIRE_RELAY_MEMBERSHIP=true): … relation "relay_members" does not exist
```
No migration log line at all (neither "complete", "skipping", nor an error) —
which makes the root cause non-obvious: the chart *looks* configured to
migrate.
## Proposal
1. Bump the chart's `appVersion` (or default `image.tag`) to a
post-#988 image so the out-of-box install self-migrates, OR
2. Have the chart fail fast (`fail` in `_validate.tpl`) when
`migrate.autoMigrate=true` with a known-incompatible default image, OR at
minimum
3. Document the minimum image for `migrate.autoMigrate` in values.yaml.
Related observation while debugging: the chart's `serviceMonitor.enabled`
assumes prometheus-operator CRDs, which GKE (Managed Prometheus) clusters
don't have — `helm install` fails with "no matches for kind ServiceMonitor".
A `PodMonitoring` alternative (or a values note) would help GKE deployers.
Contributor guide
Assessment
This issue has not been assessed yet.