Skip to content

Commit f4daea6

Browse files
committed
fix(helm): mount sandbox JWT keys without TLS
1 parent cc41035 commit f4daea6

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

.agents/skills/debug-openshell-cluster/SKILL.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,16 @@ Check required Helm deployment secrets:
116116
kubectl -n openshell get secret \
117117
openshell-server-tls \
118118
openshell-server-client-ca \
119-
openshell-client-tls
119+
openshell-client-tls \
120+
openshell-jwt-keys
120121
```
121122

123+
If the gateway exits with `failed to read sandbox JWT signing key from
124+
/etc/openshell-jwt/signing.pem`, verify that `openshell-jwt-keys` contains
125+
`signing.pem`, `public.pem`, and `kid`, and that the StatefulSet mounts the
126+
`sandbox-jwt` secret at `/etc/openshell-jwt`. The sandbox JWT mount is required
127+
even when local Helm values disable TLS.
128+
122129
Check the image references currently used by the gateway deployment:
123130

124131
```bash

crates/openshell-server/src/multiplex.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ pub struct AuthGrpcRouter<S> {
323323
}
324324

325325
impl<S> AuthGrpcRouter<S> {
326+
#[cfg(test)]
326327
fn new(
327328
inner: S,
328329
authenticator_chain: Option<AuthenticatorChain>,

deploy/helm/openshell/templates/statefulset.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ spec:
7575
- name: gateway-config
7676
mountPath: /etc/openshell
7777
readOnly: true
78+
- name: sandbox-jwt
79+
mountPath: /etc/openshell-jwt
80+
readOnly: true
7881
{{- if not .Values.server.disableTls }}
7982
- name: tls-cert
8083
mountPath: /etc/openshell-tls/server
@@ -84,15 +87,12 @@ spec:
8487
mountPath: /etc/openshell-tls/client-ca
8588
readOnly: true
8689
{{- end }}
87-
- name: sandbox-jwt
88-
mountPath: /etc/openshell-jwt
89-
readOnly: true
90+
{{- end }}
9091
{{- if and .Values.server.oidc.issuer .Values.server.oidc.caConfigMapName }}
9192
- name: oidc-ca
9293
mountPath: /etc/openshell-tls/oidc-ca
9394
readOnly: true
9495
{{- end }}
95-
{{- end }}
9696
ports:
9797
- name: grpc
9898
containerPort: {{ .Values.service.port }}
@@ -134,6 +134,10 @@ spec:
134134
- name: gateway-config
135135
configMap:
136136
name: {{ include "openshell.fullname" . }}-config
137+
- name: sandbox-jwt
138+
secret:
139+
secretName: {{ .Values.server.sandboxJwt.signingSecretName | default (printf "%s-jwt-keys" (include "openshell.fullname" .)) }}
140+
defaultMode: 0400
137141
{{- if not .Values.server.disableTls }}
138142
- name: tls-cert
139143
secret:
@@ -150,16 +154,12 @@ spec:
150154
secretName: {{ .Values.server.tls.clientCaSecretName }}
151155
{{- end }}
152156
{{- end }}
153-
- name: sandbox-jwt
154-
secret:
155-
secretName: {{ .Values.server.sandboxJwt.signingSecretName | default (printf "%s-jwt-keys" (include "openshell.fullname" .)) }}
156-
defaultMode: 0400
157+
{{- end }}
157158
{{- if and .Values.server.oidc.issuer .Values.server.oidc.caConfigMapName }}
158159
- name: oidc-ca
159160
configMap:
160161
name: {{ .Values.server.oidc.caConfigMapName }}
161162
{{- end }}
162-
{{- end }}
163163
{{- with .Values.nodeSelector }}
164164
nodeSelector:
165165
{{- toYaml . | nindent 8 }}

0 commit comments

Comments
 (0)