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

Commit 3c698cd

Browse files
committed
Create qemu exporters
1 parent e11b282 commit 3c698cd

File tree

2 files changed

+63
-67
lines changed

2 files changed

+63
-67
lines changed

action.yml

Lines changed: 14 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -86,75 +86,22 @@ runs:
8686
8787
export JUMPSTARTER_GRPC_INSECURE=1
8888
89-
kubectl create -n default sa test-client-sa
90-
kubectl create -n default sa test-exporter-sa
89+
for i in $(seq 0 2); do
90+
jmp admin create exporter "qemu-exporter-${i}" --out /dev/null \
91+
--oidc-username dex:system:serviceaccount:default:qemu-exporter
92+
done
9193
92-
jmp admin create client test-client-oidc --unsafe --out /dev/null \
93-
--oidc-username dex:test-client-oidc
94-
jmp admin create client test-client-sa --unsafe --out /dev/null \
95-
--oidc-username dex:system:serviceaccount:default:test-client-sa
96-
jmp admin create client test-client-legacy --unsafe --save
94+
sed -i "s|%ENDPOINT%|$ENDPOINT|" "$GITHUB_ACTION_PATH"/qemu-exporter-statefulset.yaml
95+
kubectl -n default apply -f "$GITHUB_ACTION_PATH"/qemu-exporter-statefulset.yaml
9796
98-
jmp admin create exporter test-exporter-oidc --out /dev/null \
99-
--oidc-username dex:test-exporter-oidc \
100-
--label example.com/board oidc
101-
jmp admin create exporter test-exporter-sa --out /dev/null \
102-
--oidc-username dex:system:serviceaccount:default:test-exporter-sa \
103-
--label example.com/board sa
104-
jmp admin create exporter test-exporter-legacy --save \
105-
--label example.com/board legacy
97+
for i in $(seq 0 2); do
98+
kubectl -n default wait --for=condition=Registered --timeout=60s \
99+
"exporters.jumpstarter.dev/qemu-exporter-${i}"
100+
done
106101
107-
jmp client list-configs
108-
jmp exporter list-configs
102+
jmp admin create client test-client --unsafe --save
109103
110-
jmp client login test-client-oidc \
111-
--endpoint "$ENDPOINT" --namespace default --name test-client-oidc \
112-
--issuer https://dex.dex.svc.cluster.local:5556 \
113-
--username test-client-oidc@example.com --password password --unsafe
114-
115-
jmp client login test-client-sa \
116-
--endpoint "$ENDPOINT" --namespace default --name test-client-sa \
117-
--issuer https://dex.dex.svc.cluster.local:5556 \
118-
--connector-id kubernetes \
119-
--token $(kubectl create -n default token test-client-sa) --unsafe
120-
121-
jmp exporter login test-exporter-oidc \
122-
--endpoint "$ENDPOINT" --namespace default --name test-exporter-oidc \
123-
--issuer https://dex.dex.svc.cluster.local:5556 \
124-
--username test-exporter-oidc@example.com --password password
125-
126-
jmp exporter login test-exporter-sa \
127-
--endpoint "$ENDPOINT" --namespace default --name test-exporter-sa \
128-
--issuer https://dex.dex.svc.cluster.local:5556 \
129-
--connector-id kubernetes \
130-
--token $(kubectl create -n default token test-exporter-sa)
131-
132-
go run github.com/mikefarah/yq/v4@latest -i ". * load(\"$GITHUB_ACTION_PATH/exporter.yaml\")" \
133-
/etc/jumpstarter/exporters/test-exporter-oidc.yaml
134-
go run github.com/mikefarah/yq/v4@latest -i ". * load(\"$GITHUB_ACTION_PATH/exporter.yaml\")" \
135-
/etc/jumpstarter/exporters/test-exporter-sa.yaml
136-
go run github.com/mikefarah/yq/v4@latest -i ". * load(\"$GITHUB_ACTION_PATH/exporter.yaml\")" \
137-
/etc/jumpstarter/exporters/test-exporter-legacy.yaml
138-
139-
jmp client list-configs
140-
jmp exporter list-configs
141-
142-
jmp exporter run test-exporter-oidc &
143-
jmp exporter run test-exporter-sa &
144-
jmp exporter run test-exporter-legacy &
145-
146-
kubectl -n default wait --for=condition=Registered exporters.jumpstarter.dev/test-exporter-oidc
147-
kubectl -n default wait --for=condition=Registered exporters.jumpstarter.dev/test-exporter-sa
148-
kubectl -n default wait --for=condition=Registered exporters.jumpstarter.dev/test-exporter-legacy
149-
150-
jmp client shell test-client-oidc --label example.com/board oidc <<EOF
151-
j power on
152-
EOF
153-
154-
jmp client shell test-client-sa --label example.com/board sa <<EOF
155-
j power on
156-
EOF
157-
158-
jmp client shell test-client-legacy --label example.com/board legacy <<EOF
159-
j power on
104+
jmp client shell test-client <<EOF
105+
j qemu power on
106+
j qemu power off
160107
EOF

qemu-exporter-statefulset.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: qemu-exporter
6+
---
7+
apiVersion: apps/v1
8+
kind: StatefulSet
9+
metadata:
10+
name: qemu-exporter
11+
spec:
12+
serviceName: qemu-exporter
13+
replicas: 3
14+
selector:
15+
matchLabels:
16+
exporter-mock: qemu
17+
template:
18+
metadata:
19+
labels:
20+
exporter-mock: qemu
21+
spec:
22+
serviceAccountName: qemu-exporter
23+
restartPolicy: Always
24+
containers:
25+
- name: jumpstarter-exporter
26+
image: quay.io/ncao/jumpstarter:summit
27+
imagePullPolicy: IfNotPresent
28+
env:
29+
- name: JUMPSTARTER_GRPC_INSECURE
30+
value: "1"
31+
command:
32+
- /bin/bash
33+
- -c
34+
- |
35+
curl https://dex.dex.svc.cluster.local:5556 -k -w "%{certs}" -o /dev/null > /tmp/minica.pem
36+
trust anchor --store /tmp/minica.pem
37+
jmp exporter login default \
38+
--endpoint %ENDPOINT% \
39+
--namespace default --name $(cat /etc/hostname) \
40+
--issuer https://dex.dex.svc.cluster.local:5556 \
41+
--connector-id kubernetes \
42+
--token $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
43+
cat <<EOF > /tmp/exporter.yaml
44+
export:
45+
qemu:
46+
type: jumpstarter_driver_qemu.driver.Qemu
47+
EOF
48+
yq -i ". * load(\"/tmp/exporter.yaml\")" /etc/jumpstarter/exporters/default.yaml
49+
jmp exporter run default

0 commit comments

Comments
 (0)