Skip to content

Commit 591826f

Browse files
committed
Update deploy-exporters to latest cli and add qemu exporters
Add basic intel qemu exporters, and update the CLI to latest versions.
1 parent ea0c554 commit 591826f

File tree

5 files changed

+123
-24
lines changed

5 files changed

+123
-24
lines changed

hack/demoenv/exporters-statefulset.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ spec:
1616
restartPolicy: Always
1717
containers:
1818
- name: jumpstarter-exporter
19-
image: quay.io/jumpstarter-dev/jumpstarter:0.5.0
20-
imagePullPolicy: IfNotPresent
19+
image: quay.io/jumpstarter-dev/jumpstarter:latest
20+
imagePullPolicy: Always
2121
env:
2222
- name: JUMPSTARTER_GRPC_INSECURE
2323
value: "1"
2424
# note for some reason jmp-exporter run $(cat /etc/hostname) won't find the config, neither does list
25-
command: ["/bin/sh", "-c", "echo running exporter $(cat /etc/hostname); jmp-exporter run -c /etc/jumpstarter/exporters/$(cat /etc/hostname).yaml"]
25+
command: ["/bin/sh", "-c", "echo running exporter $(cat /etc/hostname); jmp run --exporter $(cat /etc/hostname)"]
2626
# map the exporter-configs ConfigMap to /etc/jumpstarter/exporters
2727
volumeMounts:
2828
- name: exporter-configs

hack/demoenv/kustomization.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ namespace: jumpstarter-exporters
33
resources:
44
- exporters-statefulset.yaml
55
- vcan-exporters-statefulset.yaml
6+
- qemu-exporters-statefulset.yaml
67
configMapGenerator:
78
- name: exporter-configs
89
files:
@@ -16,4 +17,8 @@ configMapGenerator:
1617
- gen/vcan-exporter-2.yaml
1718
- gen/vcan-exporter-3.yaml
1819
- gen/vcan-exporter-4.yaml
19-
20+
- gen/qemu-exporter-0.yaml
21+
- gen/qemu-exporter-1.yaml
22+
- gen/qemu-exporter-2.yaml
23+
- gen/qemu-exporter-3.yaml
24+
- gen/qemu-exporter-4.yaml

hack/demoenv/prepare_exporters.sh

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,56 +2,88 @@
22
OUT_DIR=${OUT_DIR:-"hack/demoenv/gen"}
33
NAMESPACE=${NAMESPACE:-"jumpstarter-lab"}
44

5-
mkdir -p ${OUT_DIR}
6-
for i in `seq 0 4`; do
5+
mkdir -p "${OUT_DIR}"
6+
for i in $(seq 0 4); do
77
EXPORTER_NAME="exporter-$i"
88
echo "Creating exporter $EXPORTER_NAME"
99
OUT_FILE="${OUT_DIR}/${EXPORTER_NAME}.yaml"
10-
bin/jmpctl exporter delete "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > /dev/null 2>&1
11-
bin/jmpctl exporter create "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > "${OUT_FILE}"
10+
jmp admin delete exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > /dev/null 2>&1
11+
jmp admin create exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" --out "${OUT_FILE}" -l device-type=mock
12+
sed -i '' '/^\s*export: {}\s*$/d' "${OUT_FILE}"
1213
cat >> "${OUT_FILE}" <<EOF
1314
export:
1415
storage:
15-
type: jumpstarter.drivers.storage.driver.MockStorageMux
16+
type: jumpstarter_driver_opendal.driver.MockStorageMux
1617
power:
17-
type: jumpstarter.drivers.power.driver.MockPower
18+
type: jumpstarter_driver_power.driver.MockPower
1819
echonet:
19-
type: jumpstarter.drivers.network.driver.EchoNetwork
20+
type: jumpstarter_driver_network.driver.EchoNetwork
2021
tcpnet:
21-
type: jumpstarter.drivers.network.driver.TcpNetwork
22+
type: jumpstarter_driver_network.driver.TcpNetwork
2223
config:
2324
host: "192.168.1.52"
2425
port: 80
2526
2627
EOF
27-
kubectl label exporter -n "${NAMESPACE}" "${EXPORTER_NAME}" device-type=mock
2828
done
2929

30-
for i in `seq 0 4`; do
30+
for i in $(seq 0 4); do
3131
EXPORTER_NAME="vcan-exporter-$i"
3232
echo "Creating exporter $EXPORTER_NAME"
3333
OUT_FILE="${OUT_DIR}/${EXPORTER_NAME}.yaml"
34-
bin/jmpctl exporter delete "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > /dev/null 2>&1
35-
bin/jmpctl exporter create "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > "${OUT_FILE}"
34+
jmp admin delete exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > /dev/null 2>&1
35+
jmp admin create exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" --out "${OUT_FILE}" -l device-type=can
36+
sed -i '' '/^\s*export: {}\s*$/d' "${OUT_FILE}"
3637
cat >> "${OUT_FILE}" <<EOF
3738
export:
3839
storage:
39-
type: jumpstarter.drivers.storage.driver.MockStorageMux
40+
type: jumpstarter_driver_opendal.driver.MockStorageMux
4041
power:
41-
type: jumpstarter.drivers.power.driver.MockPower
42+
type: jumpstarter_driver_power.driver.MockPower
4243
echonet:
43-
type: jumpstarter.drivers.network.driver.EchoNetwork
44+
type: jumpstarter_driver_network.driver.EchoNetwork
4445
can:
4546
type: jumpstarter_driver_can.driver.Can
4647
config:
4748
channel: 1
4849
interface: "virtual"
4950
5051
EOF
51-
kubectl label exporter -n "${NAMESPACE}" "${EXPORTER_NAME}" device-type=can
5252
done
5353

54-
kubectl delete statefulset -n jumpstarter-exporters exporter vcan-exporter
54+
for i in $(seq 0 4); do
55+
EXPORTER_NAME="qemu-exporter-$i"
56+
echo "Creating exporter $EXPORTER_NAME"
57+
OUT_FILE="${OUT_DIR}/${EXPORTER_NAME}.yaml"
58+
jmp admin delete exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" > /dev/null 2>&1
59+
jmp admin create exporter "${EXPORTER_NAME}" --namespace "${NAMESPACE}" --out "${OUT_FILE}" -l board=virtual
60+
sed -i '' '/^\s*export: {}\s*$/d' "${OUT_FILE}"
61+
cat >> "${OUT_FILE}" <<EOF
62+
export:
63+
qemu:
64+
type: jumpstarter_driver_qemu.driver.Qemu
65+
config:
66+
smp: 1
67+
mem: "2G"
68+
default_partitions:
69+
OVMF_CODE.fd: /usr/share/AAVMF/OVMF_CODE.fd
70+
OVMF_VARS.fd: /usr/share/AAVMF/OVMF_VARS.fd
71+
hostfwd:
72+
ssh:
73+
hostport: 9022
74+
guestport: 22
75+
console:
76+
ref: qemu.console
77+
flasher:
78+
ref: qemu.flasher
79+
power:
80+
ref: qemu.power
81+
82+
EOF
83+
done
84+
85+
86+
kubectl delete statefulset -n jumpstarter-exporters exporter vcan-exporter qemu-exporter
5587
kubectl delete pod --all -n jumpstarter-exporters --force --grace-period=0
5688

5789
kubectl create namespace jumpstarter-exporters || true
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
apiVersion: apps/v1
2+
kind: StatefulSet
3+
metadata:
4+
name: qemu-exporter
5+
spec:
6+
serviceName: qemu-exporter
7+
replicas: 5
8+
selector:
9+
matchLabels:
10+
exporter-type: qemu
11+
template:
12+
metadata:
13+
labels:
14+
exporter-type: qemu
15+
annotations:
16+
openshift.io/required-scc: privileged
17+
spec:
18+
restartPolicy: Always
19+
20+
containers:
21+
- name: jumpstarter-exporter
22+
# TODO: we need a continuous release of this image in jumpstarter. i.e. quay.io/jumpstarter/jumpstarter-with-qemu:latest
23+
image: quay.io/mangelajo/jumpstarter:rel6-qemu
24+
securityContext:
25+
privileged: true
26+
imagePullPolicy: Always
27+
resources:
28+
limits:
29+
cpu: 2000m
30+
memory: "2G"
31+
requests:
32+
cpu: 100m
33+
memory: "1G"
34+
env:
35+
- name: JUMPSTARTER_GRPC_INSECURE
36+
value: "1"
37+
# note for some reason jmp-exporter run $(cat /etc/hostname) won't find the config, neither does list
38+
command: ["/bin/sh", "-c", "echo running exporter $(cat /etc/hostname); jmp run --exporter $(cat /etc/hostname)"]
39+
# map the exporter-configs ConfigMap to /etc/jumpstarter/exporters
40+
volumeMounts:
41+
- name: exporter-configs
42+
mountPath: /etc/jumpstarter/exporters
43+
- mountPath: /shared
44+
name: shared
45+
- mountPath: /dev/kvm
46+
name: dev-kvm
47+
- mountPath: /dev/vhost-vsock
48+
name: dev-vhost-vsock
49+
volumes:
50+
- name: exporter-configs
51+
configMap:
52+
name: exporter-configs
53+
- name: shared
54+
emptyDir: {}
55+
- name: dev-kvm
56+
hostPath:
57+
path: /dev/kvm
58+
type: CharDevice
59+
- name: dev-vhost-vsock
60+
hostPath:
61+
path: /dev/vhost-vsock
62+
type: CharDevice

hack/demoenv/vcan-exporters-statefulset.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ spec:
1616
restartPolicy: Always
1717
containers:
1818
- name: jumpstarter-exporter
19-
image: quay.io/jumpstarter-dev/jumpstarter:0.5.0
20-
imagePullPolicy: IfNotPresent
19+
image: quay.io/jumpstarter-dev/jumpstarter:latest
20+
imagePullPolicy: Always
2121
env:
2222
- name: JUMPSTARTER_GRPC_INSECURE
2323
value: "1"
2424
# note for some reason jmp-exporter run $(cat /etc/hostname) won't find the config, neither does list
25-
command: ["/bin/sh", "-c", "echo running exporter $(cat /etc/hostname); jmp-exporter run -c /etc/jumpstarter/exporters/$(cat /etc/hostname).yaml"]
25+
command: ["/bin/sh", "-c", "echo running exporter $(cat /etc/hostname); jmp run --exporter $(cat /etc/hostname)"]
2626
# map the exporter-configs ConfigMap to /etc/jumpstarter/exporters
2727
volumeMounts:
2828
- name: exporter-configs

0 commit comments

Comments
 (0)