block / block/buzz

Relay readiness hard-requires Redis at replicaCount=1, but chart validation and docs say Redis is only needed for multiple replicas

Open
#3,427 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## Symptom

Fresh Helm install (chart 0.1.6, image `sha-9547891`), `replicaCount: 1`, no `REDIS_URL` / `externalRedis.url` / bundled redis. The relay starts cleanly — all startup probes pass, including the S3 git object-store conformance probe — but the pod sits `Running 0/1` forever: `/_readiness` returns 503 and never recovers. Nothing in the logs states that Redis is the missing dependency; the last startup lines look healthy, so the operator is left correlating a silent 503.

Providing a `REDIS_URL` (tiny in-namespace redis) and restarting the pod immediately fixes readiness.

## Why this is surprising

Every chart-side signal says Redis is optional at a single replica:

- `templates/_validate.tpl`: *"Multiple replicas require Redis"* — the fail branch only triggers when `minimumReplicas > 1`.
- `values.yaml`: *"replicaCount > 1 hard-requires Redis for buzz-pubsub"* (implying =1 does not).
- `values.schema.json` `replicaCount` description says the same.

So a single-replica install validates, renders, deploys — and then never becomes ready.

## Ask

Either (a) the relay drops Redis from the `/_readiness` gate when no Redis is configured and single-replica pubsub can run in-process, or (b) if Redis is genuinely a hard runtime dependency at any replica count, chart validation should fail fast at install time (`redis.enabled` / `externalRedis.url` / `existingSecret` with `REDIS_URL` required unconditionally) and the docs updated. Either resolution beats the current silent-503 behavior; a log line naming the unreachable/missing Redis on readiness failure would help regardless.

Happy to PR whichever direction maintainers prefer.

Related: none found in open issues (searched redis/readiness).

Contributor guide

Open the contributing guide

Research direction

Start with the `/_readiness` behavior and compare it with `templates/_validate.tpl`, `values.yaml`, and `values.schema.json`. Reproduce the single-replica install without Redis, then test the configured-Redis case and determine which runtime and chart behavior should be authoritative. Done means the chart, readiness result, and documentation agree, with a useful failure signal if Redis remains required.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes, redis, rust
Domain
databases, devops, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.