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

Commit 3ec9607

Browse files
committed
Create qemu exporters
1 parent e87deb8 commit 3ec9607

File tree

2 files changed

+61
-95
lines changed

2 files changed

+61
-95
lines changed

action.yml

Lines changed: 12 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -86,98 +86,15 @@ 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
91-
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
97-
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
106-
107-
jmp config client list
108-
jmp config exporter list
109-
110-
jmp login --client 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 login --client 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 login --exporter 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 login --exporter 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 config client list
140-
jmp config exporter list
141-
142-
jmp run --exporter test-exporter-oidc &
143-
jmp run --exporter test-exporter-sa &
144-
jmp run --exporter test-exporter-legacy &
145-
146-
kubectl -n default wait --for=condition=Online exporters.jumpstarter.dev/test-exporter-oidc
147-
kubectl -n default wait --for=condition=Online exporters.jumpstarter.dev/test-exporter-sa
148-
kubectl -n default wait --for=condition=Online exporters.jumpstarter.dev/test-exporter-legacy
149-
150-
jmp config client use test-client-oidc
151-
152-
jmp create lease --selector example.com/board=oidc --duration 1d
153-
jmp get leases
154-
jmp get exporters
155-
jmp delete leases --all
156-
157-
jmp admin get client
158-
jmp admin get exporter
159-
jmp admin get lease
160-
161-
jmp run --exporter test-exporter-oidc &
162-
kubectl -n default wait --for=condition=Online exporters.jumpstarter.dev/test-exporter-oidc
163-
164-
jmp shell --client test-client-oidc --selector example.com/board=oidc <<EOF
165-
j power on
166-
EOF
167-
168-
jmp shell --client test-client-sa --selector example.com/board=sa <<EOF
169-
j power on
170-
EOF
171-
172-
jmp shell --client test-client-legacy --selector example.com/board=legacy <<EOF
173-
j power on
174-
EOF
175-
176-
kubectl -n default get secret test-client-oidc-client
177-
kubectl -n default get secret test-exporter-oidc-exporter
178-
179-
jmp admin delete client test-client-oidc -d
180-
jmp admin delete exporter test-exporter-oidc -d
181-
182-
! kubectl -n default get secret test-client-oidc-client
183-
! kubectl -n default get secret test-exporter-oidc-exporter
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
93+
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
96+
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

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 login --exporter 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+
power:
46+
type: jumpstarter_driver_power.driver.MockPower
47+
EOF
48+
yq -i ". * load(\"/tmp/exporter.yaml\")" /etc/jumpstarter/exporters/default.yaml
49+
jmp run --exporter default

0 commit comments

Comments
 (0)