Skip to content

fix(helm): reject unsupported redis.auth.password configurations#41924

Merged
wyattwalter merged 4 commits into
claude/strange-colden-2a0830from
fm/redis-pw-guard-v3
Jun 25, 2026
Merged

fix(helm): reject unsupported redis.auth.password configurations#41924
wyattwalter merged 4 commits into
claude/strange-colden-2a0830from
fm/redis-pw-guard-v3

Conversation

@wyattwalter

Copy link
Copy Markdown
Contributor

Builds on #41874.

redis.auth.password is a Bitnami subchart value that the Appsmith chart templates do not read on their own, so setting it currently misconfigures Redis silently — the password ends up split between the Redis server and the application, or is dropped entirely, and only surfaces as a runtime authentication failure.

This change:

  • Adds a render-time validation guard (appsmith.validateRedisAuth) that fails fast with actionable guidance unless redis.auth.password is used in the one supported, fully self-managed shape (redis.auth.existingSecret: "" plus a matching applicationConfig.APPSMITH_REDIS_URL).
  • Skips the password-bootstrap hook on the self-managed path, where no chart-managed secret is needed.
  • Fixes the Redis init-container so it does not reference a non-existent secret on the self-managed path (which otherwise wedges the pod in CreateContainerConfigError).
  • Documents the supported configurations in deploy/helm/AGENTS.md.

Verified by rendering the chart across the default, bring-your-own-secret, and self-managed combinations, and by a live install→upgrade test on a k3s cluster: the default path is unaffected, misconfigured upgrades now fail fast with migration guidance, and the self-managed path installs and reconnects cleanly.

wyattwalter and others added 3 commits June 24, 2026 21:55
redis.auth.password is a Bitnami subchart passthrough the Appsmith templates
never read. Used with the chart defaults it silently vanishes (Bitnami ignores
it because existingSecret is non-empty), and used with existingSecret:"" but no
URL it splits the credential between Redis and the app.

Add a render-time guard (appsmith.validateRedisAuth, invoked from configMap.yaml
so it always evaluates): if redis.auth.password is set, require both
redis.auth.existingSecret="" and applicationConfig.APPSMITH_REDIS_URL, else fail
with a message stating the two supported options. This leaves exactly one valid
redis.auth.password path: fully self-managed.

Also skip the password-bootstrap hook when redis.auth.password is set — safe only
because the guard eliminates the case that previously broke (a non-empty
existingSecret pointing at a now-uncreated secret); noted in a comment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ssword path

The redis readiness init-container pulled REDISCLI_AUTH from the chart-managed
Redis Secret whenever redis.auth.enabled. On the self-managed redis.auth.password
path (existingSecret:"" + APPSMITH_REDIS_URL, the only path the new guard allows)
no chart Secret exists — the bootstrap hook is skipped and Bitnami stores the
password under its own <release>-redis Secret — so the secretKeyRef was
unresolvable and wedged the pod in CreateContainerConfigError. Caught by the live
upgrade test, not the render matrix (helm template can't see the missing Secret).

Gate REDISCLI_AUTH on the same (not applicationConfig.APPSMITH_REDIS_URL) condition
the main container already uses for its Redis env. The wait still works without
auth: `redis-cli ping` against an auth-required server replies NOAUTH but exits 0.
Default and BYO-secret paths keep REDISCLI_AUTH (URL unset there).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n AGENTS.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (2)
  • pg
  • release

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 05a3d484-cc69-473b-bfc6-df7c45e3300c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fm/redis-pw-guard-v3

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@wyattwalter wyattwalter merged commit cf9fa0d into claude/strange-colden-2a0830 Jun 25, 2026
5 checks passed
@wyattwalter wyattwalter deleted the fm/redis-pw-guard-v3 branch June 25, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant