1+ JS_NAMESPACE=" ${JS_NAMESPACE:- jumpstarter-lab} "
2+
13setup () {
24 bats_load_library bats-support
35 bats_load_library bats-assert
@@ -9,30 +11,30 @@ 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" {
21- jmp admin create client test-client-oidc --unsafe --out /dev/null \
23+ jmp admin create client -n " ${JS_NAMESPACE} " test-client-oidc --unsafe --out /dev/null \
2224 --oidc-username dex:test-client-oidc
23- jmp admin create client test-client-sa --unsafe --out /dev/null \
24- --oidc-username dex:system:serviceaccount:default :test-client-sa
25- jmp admin create client test-client-legacy --unsafe --save
25+ jmp admin create client -n " ${JS_NAMESPACE} " test-client-sa --unsafe --out /dev/null \
26+ --oidc-username dex:system:serviceaccount:" ${JS_NAMESPACE} " :test-client-sa
27+ jmp admin create client -n " ${JS_NAMESPACE} " test-client-legacy --unsafe --save
2628}
2729
2830@test " can create exporters with admin cli" {
29- jmp admin create exporter test-exporter-oidc --out /dev/null \
31+ jmp admin create exporter -n " ${JS_NAMESPACE} " test-exporter-oidc --out /dev/null \
3032 --oidc-username dex:test-exporter-oidc \
3133 --label example.com/board=oidc
32- jmp admin create exporter test-exporter-sa --out /dev/null \
33- --oidc-username dex:system:serviceaccount:default :test-exporter-sa \
34+ jmp admin create exporter -n " ${JS_NAMESPACE} " test-exporter-sa --out /dev/null \
35+ --oidc-username dex:system:serviceaccount:" ${JS_NAMESPACE} " :test-exporter-sa \
3436 --label example.com/board=sa
35- jmp admin create exporter test-exporter-legacy --save \
37+ jmp admin create exporter -n " ${JS_NAMESPACE} " test-exporter-legacy --save \
3638 --label example.com/board=legacy
3739}
3840
@@ -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,12 @@ EOF
104106@test " can specify client config only using environment variables" {
105107 wait_for_exporter
106108
107- JMP_NAMEPSACE=default \
109+ # we feed the namespace into JMP_NAMESPACE along with all the other client details
110+ # to verify that the client can operate without a config file
111+ JMP_NAMESPACE=" ${JS_NAMESPACE} " \
108112 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) \
113+ JMP_ENDPOINT=$( kubectl get clients.jumpstarter.dev -n " ${JS_NAMESPACE} " test-client-legacy -o ' jsonpath={.status.endpoint}' ) \
114+ JMP_TOKEN=$( kubectl get secrets -n " ${JS_NAMESPACE} " test-client-legacy-client -o ' jsonpath={.data.token}' | base64 -d) \
111115 jmp shell --selector example.com/board=oidc j power on
112116}
113117
@@ -134,39 +138,39 @@ EOF
134138}
135139
136140@test " can get crds with admin cli" {
137- jmp admin get client
138- jmp admin get exporter
139- jmp admin get lease
141+ jmp admin get --namespace " ${JS_NAMESPACE} " client
142+ jmp admin get --namespace " ${JS_NAMESPACE} " exporter
143+ jmp admin get --namespace " ${JS_NAMESPACE} " lease
140144}
141145
142146@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
147-
148- jmp admin delete client test-client-oidc --delete
149- jmp admin delete client test-client-sa --delete
150- jmp admin delete client test-client-legacy --delete
151-
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
147+ kubectl -n " ${JS_NAMESPACE} " get secret test-client-oidc-client
148+ kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-oidc
149+ kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-sa
150+ kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-legacy
151+
152+ jmp admin delete client --namespace " ${JS_NAMESPACE} " test-client-oidc --delete
153+ jmp admin delete client --namespace " ${JS_NAMESPACE} " test-client-sa --delete
154+ jmp admin delete client --namespace " ${JS_NAMESPACE} " test-client-legacy --delete
155+
156+ run ! kubectl -n " ${JS_NAMESPACE} " get secret test-client-oidc-client
157+ run ! kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-oidc
158+ run ! kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-sa
159+ run ! kubectl -n " ${JS_NAMESPACE} " get clients.jumpstarter.dev/test-client-legacy
156160}
157161
158162@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
163-
164- jmp admin delete exporter test-exporter-oidc --delete
165- jmp admin delete exporter test-exporter-sa --delete
166- jmp admin delete exporter test-exporter-legacy --delete
167-
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
163+ kubectl -n " ${JS_NAMESPACE} " get secret test-exporter-oidc-exporter
164+ kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-oidc
165+ kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-sa
166+ kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-legacy
167+
168+ jmp admin delete --namespace " ${JS_NAMESPACE} " exporter test-exporter-oidc --delete
169+ jmp admin delete --namespace " ${JS_NAMESPACE} " exporter test-exporter-sa --delete
170+ jmp admin delete --namespace " ${JS_NAMESPACE} " exporter test-exporter-legacy --delete
171+
172+ run ! kubectl -n " ${JS_NAMESPACE} " get secret test-exporter-oidc-exporter
173+ run ! kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-oidc
174+ run ! kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-sa
175+ run ! kubectl -n " ${JS_NAMESPACE} " get exporters.jumpstarter.dev/test-exporter-legacy
172176}
0 commit comments