Skip to content

Commit e19f89a

Browse files
jhrozekclaude
andcommitted
Add Redis Sentinel session storage guide and TLS docs
Add a new how-to guide at docs/toolhive/guides-k8s/redis-session-storage.mdx that walks through deploying Redis Sentinel as the session storage backend for the embedded authorization server. The guide uses self-contained Kubernetes manifests instead of the Bitnami Helm chart, which Broadcom moved behind a paid subscription in August 2025. No maintained, freely available Helm chart with Sentinel support exists as a replacement, so the manifests are provided inline. Also adds TLS configuration documentation for Redis connections (both master and Sentinel), updates the auth-k8s guide's session storage snippet for consistency, and resolves a merge conflict in backend-auth.mdx. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 19296c7 commit e19f89a

5 files changed

Lines changed: 647 additions & 3 deletions

File tree

docs/toolhive/concepts/backend-auth.mdx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,11 @@ single ToolHive-issued JWT.
274274
By default, session storage is in-memory only. Upstream tokens are lost when
275275
pods restart, requiring users to re-authenticate. For production deployments,
276276
configure Redis Sentinel as the storage backend for persistent, highly available
277-
session storage. See the
278-
[CRD specification](../reference/crd-spec.md#apiv1alpha1authserverstorageconfig)
279-
for configuration details.
277+
session storage. See
278+
[Configure session storage](../guides-k8s/auth-k8s.mdx#configure-session-storage)
279+
for a quick setup, or the full
280+
[Redis Sentinel session storage](../guides-k8s/redis-session-storage.mdx)
281+
tutorial for an end-to-end walkthrough.
280282

281283
:::
282284

docs/toolhive/guides-k8s/auth-k8s.mdx

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,43 @@ authorization endpoints automatically.
527527

528528
:::
529529

530+
### Configure session storage
531+
532+
By default, the embedded authorization server stores sessions in memory.
533+
Upstream tokens are lost when pods restart, requiring users to re-authenticate.
534+
For production deployments, configure Redis Sentinel as the storage backend by
535+
adding a `storage` block to your `MCPExternalAuthConfig`:
536+
537+
```yaml title="storage block for MCPExternalAuthConfig"
538+
storage:
539+
type: redis
540+
redis:
541+
sentinelConfig:
542+
masterName: mymaster
543+
sentinelService:
544+
name: redis-sentinel
545+
namespace: redis
546+
aclUserConfig:
547+
usernameSecretRef:
548+
name: redis-acl-secret
549+
key: username
550+
passwordSecretRef:
551+
name: redis-acl-secret
552+
key: password
553+
```
554+
555+
Create the Secret containing your Redis ACL credentials:
556+
557+
```bash
558+
kubectl create secret generic redis-acl-secret \
559+
--namespace toolhive-system \
560+
--from-literal=username=toolhive-auth \
561+
--from-literal=password="<REDIS_ACL_PASSWORD>"
562+
```
563+
564+
For a complete walkthrough including deploying Redis Sentinel from scratch, see
565+
[Redis Sentinel session storage](./redis-session-storage.mdx).
566+
530567
### Using an OAuth 2.0 upstream provider
531568

532569
If your upstream identity provider does not support OIDC discovery, you can

0 commit comments

Comments
 (0)