Skip to content

Commit 80719ac

Browse files
jhrozekclaude
andcommitted
Address review feedback for K8s header injection docs
- Split combined Secret+MCPRemoteProxy code block into separate examples - Clarify kubectl visibility (full resource output, not table view) - Clarify ConfigMap storage (secret references only, not actual values) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 9d13acd commit 80719ac

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

docs/toolhive/guides-k8s/remote-mcp-proxy.mdx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ spec:
452452
```
453453

454454
For sensitive values like API keys, reference Kubernetes Secrets using
455-
`addHeadersFromSecret`:
455+
`addHeadersFromSecret`. First, create a Secret containing the header value:
456456

457457
```yaml title="api-key-secret.yaml"
458458
apiVersion: v1
@@ -463,7 +463,11 @@ metadata:
463463
type: Opaque
464464
stringData:
465465
api-key: 'your-api-key-value'
466-
---
466+
```
467+
468+
Then reference the Secret in your MCPRemoteProxy:
469+
470+
```yaml title="analytics-proxy.yaml" {12-17}
467471
apiVersion: toolhive.stacklok.dev/v1alpha1
468472
kind: MCPRemoteProxy
469473
metadata:
@@ -473,14 +477,12 @@ spec:
473477
remoteURL: https://mcp.analytics.example.com
474478
# ... other config ...
475479
476-
# highlight-start
477480
headerForward:
478481
addHeadersFromSecret:
479482
- headerName: 'X-API-Key'
480483
valueSecretRef:
481484
name: api-key-secret
482485
key: api-key
483-
# highlight-end
484486
```
485487

486488
You can combine plaintext and secret-backed headers:
@@ -503,11 +505,12 @@ spec:
503505

504506
:::warning[Security considerations]
505507

506-
- Plaintext header values are visible via `kubectl get` and `kubectl describe`
507-
commands. For sensitive values (API keys, tokens), always use
508-
`addHeadersFromSecret`.
509-
- Secret-backed header values are resolved at runtime from Kubernetes Secrets
510-
and are never stored in ConfigMaps.
508+
- Plaintext header values are visible when you inspect the full resource (e.g.,
509+
`kubectl get ... -o yaml` or `kubectl describe`). For sensitive values (API
510+
keys, tokens), always use `addHeadersFromSecret`.
511+
- Secret-backed header values are stored in Kubernetes Secrets and resolved at
512+
runtime. Only secret references (not actual values) appear in ConfigMaps used
513+
internally by ToolHive.
511514
- Certain headers cannot be configured for security reasons, including `Host`,
512515
`Connection`, `Transfer-Encoding`, and proxy-related headers like
513516
`X-Forwarded-For`.

0 commit comments

Comments
 (0)