Skip to content
This repository was archived by the owner on Jan 22, 2026. It is now read-only.

Commit 433115c

Browse files
committed
Single namespace testing
1 parent 743645c commit 433115c

File tree

2 files changed

+37
-33
lines changed

2 files changed

+37
-33
lines changed

action.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ runs:
8787
sudo mkdir -p /etc/jumpstarter/exporters
8888
sudo chown $USER /etc/jumpstarter/exporters
8989
90+
export JS_NAMESPACE="jumpstarter-lab"
91+
9092
. .venv/bin/activate
9193
9294
export JUMPSTARTER_GRPC_INSECURE=1
9395
94-
kubectl create -n default sa test-client-sa
95-
kubectl create -n default sa test-exporter-sa
96+
kubectl create -n "${JS_NAMESPACE}" sa test-client-sa
97+
kubectl create -n "${JS_NAMESPACE}" sa test-exporter-sa
9698
9799
bats --show-output-of-passing-tests --verbose-run "$GITHUB_ACTION_PATH"/tests.bats

tests.bats

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
JS_NAMESPACE="${JS_NAMESPACE:-jumpstarter-lab}"
2+
13
setup() {
24
bats_load_library bats-support
35
bats_load_library bats-assert
@@ -9,19 +11,19 @@ wait_for_exporter() {
911
# After a lease operation the exporter is disconnecting from controller and reconnecting.
1012
# The disconnect can take a short while so let's avoid catching the pre-disconnect state and early return
1113
sleep 2
12-
kubectl -n default wait --timeout 20m --for=condition=Online --for=condition=Registered \
14+
kubectl -n "${JS_NAMESPACE}" wait --timeout 20m --for=condition=Online --for=condition=Registered \
1315
exporters.jumpstarter.dev/test-exporter-oidc
14-
kubectl -n default wait --timeout 20m --for=condition=Online --for=condition=Registered \
16+
kubectl -n "${JS_NAMESPACE}" wait --timeout 20m --for=condition=Online --for=condition=Registered \
1517
exporters.jumpstarter.dev/test-exporter-sa
16-
kubectl -n default wait --timeout 20m --for=condition=Online --for=condition=Registered \
18+
kubectl -n "${JS_NAMESPACE}" wait --timeout 20m --for=condition=Online --for=condition=Registered \
1719
exporters.jumpstarter.dev/test-exporter-legacy
1820
}
1921

2022
@test "can create clients with admin cli" {
2123
jmp admin create client test-client-oidc --unsafe --out /dev/null \
2224
--oidc-username dex:test-client-oidc
2325
jmp admin create client test-client-sa --unsafe --out /dev/null \
24-
--oidc-username dex:system:serviceaccount:default:test-client-sa
26+
--oidc-username dex:system:serviceaccount:"${JS_NAMESPACE}":test-client-sa
2527
jmp admin create client test-client-legacy --unsafe --save
2628
}
2729

@@ -30,7 +32,7 @@ wait_for_exporter() {
3032
--oidc-username dex:test-exporter-oidc \
3133
--label example.com/board=oidc
3234
jmp admin create exporter test-exporter-sa --out /dev/null \
33-
--oidc-username dex:system:serviceaccount:default:test-exporter-sa \
35+
--oidc-username dex:system:serviceaccount:"${JS_NAMESPACE}":test-exporter-sa \
3436
--label example.com/board=sa
3537
jmp admin create exporter test-exporter-legacy --save \
3638
--label example.com/board=legacy
@@ -41,31 +43,31 @@ wait_for_exporter() {
4143
jmp config exporter list
4244

4345
jmp login --client test-client-oidc \
44-
--endpoint "$ENDPOINT" --namespace default --name test-client-oidc \
46+
--endpoint "$ENDPOINT" --namespace "${JS_NAMESPACE}" --name test-client-oidc \
4547
--issuer https://dex.dex.svc.cluster.local:5556 \
4648
--username test-client-oidc@example.com --password password --unsafe
4749

4850
jmp login --client test-client-oidc-provisioning \
49-
--endpoint "$ENDPOINT" --namespace default --name "" \
51+
--endpoint "$ENDPOINT" --namespace "${JS_NAMESPACE}" --name "" \
5052
--issuer https://dex.dex.svc.cluster.local:5556 \
5153
--username test-client-oidc-provisioning@example.com --password password --unsafe
5254

5355
jmp login --client test-client-sa \
54-
--endpoint "$ENDPOINT" --namespace default --name test-client-sa \
56+
--endpoint "$ENDPOINT" --namespace "${JS_NAMESPACE}" --name test-client-sa \
5557
--issuer https://dex.dex.svc.cluster.local:5556 \
5658
--connector-id kubernetes \
57-
--token $(kubectl create -n default token test-client-sa) --unsafe
59+
--token $(kubectl create -n "${JS_NAMESPACE}" token test-client-sa) --unsafe
5860

5961
jmp login --exporter test-exporter-oidc \
60-
--endpoint "$ENDPOINT" --namespace default --name test-exporter-oidc \
62+
--endpoint "$ENDPOINT" --namespace "${JS_NAMESPACE}" --name test-exporter-oidc \
6163
--issuer https://dex.dex.svc.cluster.local:5556 \
6264
--username test-exporter-oidc@example.com --password password
6365

6466
jmp login --exporter test-exporter-sa \
65-
--endpoint "$ENDPOINT" --namespace default --name test-exporter-sa \
67+
--endpoint "$ENDPOINT" --namespace "${JS_NAMESPACE}" --name test-exporter-sa \
6668
--issuer https://dex.dex.svc.cluster.local:5556 \
6769
--connector-id kubernetes \
68-
--token $(kubectl create -n default token test-exporter-sa)
70+
--token $(kubectl create -n "${JS_NAMESPACE}" token test-exporter-sa)
6971

7072
go run github.com/mikefarah/yq/v4@latest -i ". * load(\"$GITHUB_ACTION_PATH/exporter.yaml\")" \
7173
/etc/jumpstarter/exporters/test-exporter-oidc.yaml
@@ -104,10 +106,10 @@ EOF
104106
@test "can specify client config only using environment variables" {
105107
wait_for_exporter
106108

107-
JMP_NAMEPSACE=default \
109+
JMP_NAMEPSACE="${JS_NAMESPACE}" \
108110
JMP_NAME=test-exporter-legacy \
109-
JMP_ENDPOINT=$(kubectl get clients.jumpstarter.dev -n default test-client-legacy -o 'jsonpath={.status.endpoint}') \
110-
JMP_TOKEN=$(kubectl get secrets -n default test-client-legacy-client -o 'jsonpath={.data.token}' | base64 -d) \
111+
JMP_ENDPOINT=$(kubectl get clients.jumpstarter.dev -n "${JS_NAMESPACE}" test-client-legacy -o 'jsonpath={.status.endpoint}') \
112+
JMP_TOKEN=$(kubectl get secrets -n "${JS_NAMESPACE}" test-client-legacy-client -o 'jsonpath={.data.token}' | base64 -d) \
111113
jmp shell --selector example.com/board=oidc j power on
112114
}
113115

@@ -140,33 +142,33 @@ EOF
140142
}
141143

142144
@test "can delete clients with admin cli" {
143-
kubectl -n default get secret test-client-oidc-client
144-
kubectl -n default get clients.jumpstarter.dev/test-client-oidc
145-
kubectl -n default get clients.jumpstarter.dev/test-client-sa
146-
kubectl -n default get clients.jumpstarter.dev/test-client-legacy
145+
kubectl -n "${JS_NAMESPACE}" get secret test-client-oidc-client
146+
kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-oidc
147+
kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-sa
148+
kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-legacy
147149

148150
jmp admin delete client test-client-oidc --delete
149151
jmp admin delete client test-client-sa --delete
150152
jmp admin delete client test-client-legacy --delete
151153

152-
run ! kubectl -n default get secret test-client-oidc-client
153-
run ! kubectl -n default get clients.jumpstarter.dev/test-client-oidc
154-
run ! kubectl -n default get clients.jumpstarter.dev/test-client-sa
155-
run ! kubectl -n default get clients.jumpstarter.dev/test-client-legacy
154+
run ! kubectl -n "${JS_NAMESPACE}" get secret test-client-oidc-client
155+
run ! kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-oidc
156+
run ! kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-sa
157+
run ! kubectl -n "${JS_NAMESPACE}" get clients.jumpstarter.dev/test-client-legacy
156158
}
157159

158160
@test "can delete exporters with admin cli" {
159-
kubectl -n default get secret test-exporter-oidc-exporter
160-
kubectl -n default get exporters.jumpstarter.dev/test-exporter-oidc
161-
kubectl -n default get exporters.jumpstarter.dev/test-exporter-sa
162-
kubectl -n default get exporters.jumpstarter.dev/test-exporter-legacy
161+
kubectl -n "${JS_NAMESPACE}" get secret test-exporter-oidc-exporter
162+
kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-oidc
163+
kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-sa
164+
kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-legacy
163165

164166
jmp admin delete exporter test-exporter-oidc --delete
165167
jmp admin delete exporter test-exporter-sa --delete
166168
jmp admin delete exporter test-exporter-legacy --delete
167169

168-
run ! kubectl -n default get secret test-exporter-oidc-exporter
169-
run ! kubectl -n default get exporters.jumpstarter.dev/test-exporter-oidc
170-
run ! kubectl -n default get exporters.jumpstarter.dev/test-exporter-sa
171-
run ! kubectl -n default get exporters.jumpstarter.dev/test-exporter-legacy
170+
run ! kubectl -n "${JS_NAMESPACE}" get secret test-exporter-oidc-exporter
171+
run ! kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-oidc
172+
run ! kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-sa
173+
run ! kubectl -n "${JS_NAMESPACE}" get exporters.jumpstarter.dev/test-exporter-legacy
172174
}

0 commit comments

Comments
 (0)