Skip to content

Commit 90366f2

Browse files
committed
fix(helm): derive sandboxNamespace from Release.Namespace instead of hardcoding
Signed-off-by: Saurabh Agarwal <sauagarwa@redhat.com>
1 parent 316c788 commit 90366f2

5 files changed

Lines changed: 64 additions & 3 deletions

File tree

deploy/helm/openshell/templates/_helpers.tpl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@ Namespaced Issuer (selfSigned) for cert-manager CA bootstrap.
8282
{{- printf "%s-selfsigned" (include "openshell.fullname" .) | trunc 63 | trimSuffix "-" }}
8383
{{- end }}
8484

85+
{{/*
86+
Namespace where sandbox pods are created. An explicit
87+
.Values.server.sandboxNamespace is used verbatim. Otherwise it defaults to
88+
.Release.Namespace so `helm install -n my-ns` works without extra overrides.
89+
*/}}
90+
{{- define "openshell.sandboxNamespace" -}}
91+
{{- .Values.server.sandboxNamespace | default .Release.Namespace -}}
92+
{{- end }}
93+
8594
{{/*
8695
gRPC endpoint sandbox pods use to call back into the gateway. An explicit
8796
.Values.server.grpcEndpoint is used verbatim. Otherwise it is derived from

deploy/helm/openshell/templates/networkpolicy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ apiVersion: networking.k8s.io/v1
1111
kind: NetworkPolicy
1212
metadata:
1313
name: {{ include "openshell.fullname" . }}-sandbox-ssh
14-
namespace: {{ .Values.server.sandboxNamespace }}
14+
namespace: {{ include "openshell.sandboxNamespace" . }}
1515
labels:
1616
{{- include "openshell.labels" . | nindent 4 }}
1717
spec:

deploy/helm/openshell/templates/statefulset.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ spec:
6363
- {{ .Values.server.dbUrl | quote }}
6464
env:
6565
- name: OPENSHELL_SANDBOX_NAMESPACE
66-
value: {{ .Values.server.sandboxNamespace | quote }}
66+
value: {{ include "openshell.sandboxNamespace" . | quote }}
6767
- name: OPENSHELL_SANDBOX_IMAGE
6868
value: {{ .Values.server.sandboxImage | quote }}
6969
{{- if .Values.server.sandboxImagePullPolicy }}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
suite: sandboxNamespace defaulting
5+
templates:
6+
- templates/statefulset.yaml
7+
- templates/networkpolicy.yaml
8+
release:
9+
name: openshell
10+
namespace: my-namespace
11+
12+
tests:
13+
- it: defaults OPENSHELL_SANDBOX_NAMESPACE to release namespace
14+
template: templates/statefulset.yaml
15+
asserts:
16+
- contains:
17+
path: spec.template.spec.containers[0].env
18+
content:
19+
name: OPENSHELL_SANDBOX_NAMESPACE
20+
value: "my-namespace"
21+
22+
- it: uses explicit sandboxNamespace when set
23+
template: templates/statefulset.yaml
24+
set:
25+
server.sandboxNamespace: other-ns
26+
asserts:
27+
- contains:
28+
path: spec.template.spec.containers[0].env
29+
content:
30+
name: OPENSHELL_SANDBOX_NAMESPACE
31+
value: "other-ns"
32+
33+
- it: defaults NetworkPolicy namespace to release namespace
34+
template: templates/networkpolicy.yaml
35+
set:
36+
networkPolicy.enabled: true
37+
asserts:
38+
- equal:
39+
path: metadata.namespace
40+
value: my-namespace
41+
42+
- it: uses explicit sandboxNamespace for NetworkPolicy
43+
template: templates/networkpolicy.yaml
44+
set:
45+
networkPolicy.enabled: true
46+
server.sandboxNamespace: other-ns
47+
asserts:
48+
- equal:
49+
path: metadata.namespace
50+
value: other-ns

deploy/helm/openshell/values.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ affinity: {}
7979
# Server configuration
8080
server:
8181
logLevel: info
82-
sandboxNamespace: openshell
82+
# Namespace where sandbox pods are created. Defaults to the Helm release
83+
# namespace (.Release.Namespace) when left empty.
84+
sandboxNamespace: ""
8385
dbUrl: "sqlite:/var/openshell/openshell.db"
8486
sandboxImage: "ghcr.io/nvidia/openshell-community/sandboxes/base:latest"
8587
# Kubernetes imagePullPolicy for sandbox pods. Empty = Kubernetes default

0 commit comments

Comments
 (0)