DOC-6816 Document smart client handoffs (SCH) for Redis Enterprise on Kubernetes#3597
DOC-6816 Document smart client handoffs (SCH) for Redis Enterprise on Kubernetes#3597andy-stark-redis wants to merge 2 commits into
Conversation
… Kubernetes Add a networking page for enabling SCH on a K8s REC, plus supporting edits to the SCH overview, the networking index, and the REST API cluster-object reference. The enablement steps, the MONITOR-handshake verification, and the two notification flags come from David Maier's Slack/Google doc rather than any released reference. The load-bearing surprise: oss_cluster_client_maint_notifications does not appear in the release notes or the REST API cluster object docs, so I documented it from the source doc and added the reference row myself. Enablement is via the REST API on purpose (a temporary workaround) because the REC cluster spec does not yet expose these settings. The page is deliberately scoped to the same-pod-network / IP-based / no-TLS case; the external/TLS/name-based scenario is a TODO in the source doc, not an oversight. Learned: SCH-for-K8s config sourced from David's doc; the key OSS flag is undocumented upstream Gaps: oss_cluster_client_maint_notifications absent from release notes and REST API reference before this change; unconfirmed whether standalone on 8.0.2-17 accepts it, or whether OSS mode needs both flags — needs eng sign-off Recheck: when the REC cluster spec exposes SCH settings, replace the REST API enablement workaround Directive: external/TLS/name-based SCH is intentionally deferred (source doc TODO) — do not treat its absence as a gap Ticket: DOC-6816 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rrelledge
left a comment
There was a problem hiding this comment.
Thank you! Looks good to me. I just left a couple of comments, but I would ultimately follow Kaitlyn's advice after she has time to review this.
| You need a RedisEnterpriseCluster (REC) running a version of Redis Enterprise Software that supports SCH: | ||
|
|
||
| - Redis Enterprise Software 8.0.2-17 or later for standalone (Enterprise cluster mode) connections. | ||
| - Redis Enterprise Software 8.0.16-29 or later for [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}) connections. |
There was a problem hiding this comment.
On the Redis Software side, we dropped "Enterprise" from the name. But I would go with whatever Kaitlyn thinks is appropriate for the k8s section.
| You need a RedisEnterpriseCluster (REC) running a version of Redis Enterprise Software that supports SCH: | |
| - Redis Enterprise Software 8.0.2-17 or later for standalone (Enterprise cluster mode) connections. | |
| - Redis Enterprise Software 8.0.16-29 or later for [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}) connections. | |
| You need a RedisEnterpriseCluster (REC) running a version of Redis Software that supports SCH: | |
| - Redis Software 8.0.2-17 or later for standalone (Enterprise cluster mode) connections. | |
| - Redis Software 8.0.16-29 or later for [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}) connections. |
|
|
||
| To confirm that SCH reduces disruption during maintenance, [upgrade the Redis Enterprise cluster]({{< relref "/operate/kubernetes/upgrade" >}}), which adds and removes nodes as the operator performs a rolling upgrade of the pods. | ||
|
|
||
| 1. Make sure both the source and target Redis Enterprise Software versions support SCH. |
There was a problem hiding this comment.
| 1. Make sure both the source and target Redis Enterprise Software versions support SCH. | |
| 1. Make sure both the source and target Redis Software versions support SCH. |
|
|
||
| Use the [`/v1/cluster`]({{< relref "/operate/rs/references/rest-api/requests/cluster#put-cluster" >}}) REST API request to enable SCH for both Enterprise cluster mode and OSS Cluster API mode. Set `client_maint_notifications` and `oss_cluster_client_maint_notifications` to `true`. | ||
|
|
||
| The following example uses [`curl`](https://curl.se/) and addresses the cluster REST API on port `9443` of the REC service (for example, `rec` in a cluster named `rec`): |
There was a problem hiding this comment.
Maybe this is just a k8s thing that I'm unfamiliar with, but "for example, rec in a cluster named rec" seems a bit confusing to me.
|
Thanks @rrelledge ! |
|
I will have to run this past engineering SMEs. I haven't heard anything about this or if we are supporting it. |
The CAE "SCH on Kubernetes - Status of Record" page shows the MONITOR handshake capture was never actually done: the expected handshake strings were inferred from client-side rebind/DEBUG logs (Lettuce INTERNAL_IP, redis-py notification logs), not observed server-side via MONITOR. Reframe the verify section to lead with the confirmed client-log evidence and present the MONITOR handshake as expected behaviour, with MONITOR demoted to a secondary server-side option. Learned: MONITOR handshake was never captured in K8s SCH testing; only client-side DEBUG/rebind evidence exists Gaps: exact MONITOR handshake strings remain unconfirmed server-side (per CAE status-of-record, 2026-07-18) Ticket: DOC-6816 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Cross-referenced against the CAE SCH on Kubernetes - Status of Record page (compiled 2026-07-18, evidence-linked to the CAE test pages, Applied in this PR (commit reframing the verification section): the status-of-record marks both Corroborated (raises confidence on an earlier open question): enabling both Scenario 2 deferral confirmed as correct: external/TLS/name-based is "INVESTIGATED, BLOCKED BY PRODUCT GAPS", not merely unwritten — hostname certs lack IP SANs while Follow-up trigger for the REST API workaround: operator PR redis-enterprise-operator#6560 (David Maier) exposes the flags via the REC CRD as |
Summary
Documents Smart client handoffs (SCH) support for Redis Enterprise on Kubernetes (DOC-6816), based on David Maier's input.
content/operate/kubernetes/networking/smart-client-handoffs.md— enables SCH on a K8s REC for the same-pod-network / IP-based / no-TLS scenario: prerequisites and version gates (RS 8.0.2-17 standalone, 8.0.16-29 OSS Cluster API), get cluster credentials, enable via thePUT /v1/clusterREST API request, verify theMONITORhandshake, and validate during an operator upgrade. Includes port-forward guidance for reaching theClusterIPREST service.content/develop/clients/sch.md— the Kubernetes section now says SCH is supported (was "not currently supported") and links to the new page.content/operate/kubernetes/networking/_index.md— adds a Smart client handoffs section.content/operate/rs/references/rest-api/objects/cluster/_index.md— adds theoss_cluster_client_maint_notificationsfield row.Reviewer questions (need eng sign-off)
oss_cluster_client_maint_notificationsis undocumented upstream. It's absent from the release notes and (before this PR) the REST API reference. Please confirm the exact name and default.client_maint_notificationsandoss_cluster_client_maint_notifications. Please confirm whether a standalone-only cluster on 8.0.2-17 accepts the OSS flag, and whether OSS Cluster API mode requires both flags or only the OSS-specific one. If it matters, the command should be split by mode.Deferred (intentional)
Notes
networking/; not mirrored into the8.0/networking/snapshot — leave to release-branch sync unless we want it now.hugo --renderToMemorybuilds clean (exit 0, no relref errors).🤖 Generated with Claude Code
Note
Low Risk
Documentation-only changes with no runtime or security behavior changes in this repo.
Overview
Documents Smart client handoffs (SCH) for Redis Enterprise on Kubernetes when apps and the REC share the same pod network (IP-based, no TLS).
Adds
smart-client-handoffs.mdwith version gates, secret-based REST auth, enablingclient_maint_notificationsandoss_cluster_client_maint_notificationsviaPUT /v1/cluster,kubectl port-forwardfor the ClusterIP API, verification via client debug logs andCLIENT MAINT_NOTIFICATIONShandshakes, and validation during a rolling upgrade.sch.mdnow states K8s SCH is supported (replacing “not currently supported”) and links to the new page. The Kubernetes networking index gets a SCH section. The cluster REST API reference documentsoss_cluster_client_maint_notifications(defaultfalse).External TLS / name-based access is explicitly out of scope.
Reviewed by Cursor Bugbot for commit 2d736de. Bugbot is set up for automated code reviews on this repo. Configure here.