Skip to content

Clarify Redis session routing is conditional on Redis being configured#728

Open
yrobla wants to merge 4 commits intomainfrom
issue-727
Open

Clarify Redis session routing is conditional on Redis being configured#728
yrobla wants to merge 4 commits intomainfrom
issue-727

Conversation

@yrobla
Copy link
Copy Markdown
Contributor

@yrobla yrobla commented Apr 16, 2026

Summary

  • Makes it explicit that Redis-backed session-to-pod routing only applies when Redis session storage is configured, not unconditionally whenever backendReplicas > 1
  • Replaces "falls back to" (implying Redis is the default) with "relies on" to avoid the implication that client-IP affinity is a fallback from an always-on Redis path

Closes #727

Type of change

  • Documentation update

Test plan

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-website Ready Ready Preview, Comment Apr 16, 2026 9:08am

Request Review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Kubernetes operator guide to clarify that Redis-backed session-to-pod routing is conditional on Redis session storage being configured, avoiding the implication that Redis is always used whenever backendReplicas > 1.

Changes:

  • Adds a new “Session routing for backend replicas” subsection under Horizontal scaling.
  • Adjusts phrasing to distinguish Redis session storage behavior vs. client-IP affinity behavior.
  • Adds an explanatory note about when SessionStorageWarning fires.

Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
When backendReplicas > 1, the proxy runner only uses Redis for session-to-pod
routing when Redis session storage is actually configured. The previous wording
implied Redis was always used, then contradicted itself in the next paragraph.

Closes #727

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.

Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.

Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Comment thread docs/toolhive/guides-k8s/run-mcp-k8s.mdx Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

but `sessionAffinity: ClientIP` is unreliable behind NAT or shared egress IPs.
For stateful workloads or when per-session routing must remain consistent across
backend pods, Redis session storage is strongly recommended when
`backendReplicas > 1`. Stateless workloads can use `sessionAffinity: None`.
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this note you refer to spec.replicas > 1, but later switch to backendReplicas > 1 without the spec. prefix. For consistency with the rest of the doc’s field-path style (and the earlier spec.backendReplicas bullet), consider using spec.backendReplicas > 1 in both occurrences here.

Suggested change
`backendReplicas > 1`. Stateless workloads can use `sessionAffinity: None`.
`spec.backendReplicas > 1`. Stateless workloads can use `sessionAffinity: None`.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 16, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • cdn.jsdelivr.net
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/docs-website/docs-website/node_modules/.bin/docusaurus build (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@danbarr
Copy link
Copy Markdown
Collaborator

danbarr commented Apr 16, 2026

@yrobla Your previous PR #710 was based off #709's branch and merged into there.

This one will end up conflicting with 709, so should the wording update just be applied directly there instead of reintroducing all of the language that 710 added (and that 709 now contains)?

@jerm-dro jerm-dro self-requested a review April 16, 2026 20:17
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.

docs: clarify Redis session routing is conditional on Redis being configured

5 participants