From 66374039a3bb71944490880492576b57c22b1181 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 16 May 2024 02:44:47 +0200 Subject: [PATCH] feat: Add Kubernetes manifest (#75) --- kubernetes.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 6 +++++ 2 files changed, 67 insertions(+) create mode 100644 kubernetes.yml diff --git a/kubernetes.yml b/kubernetes.yml new file mode 100644 index 0000000..73490ed --- /dev/null +++ b/kubernetes.yml @@ -0,0 +1,61 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: qemu-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 16Gi +--- +apiVersion: v1 +kind: Pod +metadata: + name: qemu + labels: + name: qemu +spec: + terminationGracePeriodSeconds: 120 # the Kubernetes default is 30 seconds and it may be not enough + containers: + - name: qemu + image: qemux/qemu-arm + ports: + - containerPort: 8006 + protocol: TCP + resources: + limits: + devices.kubevirt.io/kvm: 1 + securityContext: + privileged: true + env: + - name: BOOT + value: "https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/aarch64/alpine-virt-3.19.1-aarch64.iso" + - name: RAM_SIZE + value: 1G + - name: CPU_CORES + value: "1" + - name: DISK_SIZE + value: "16G" + volumeMounts: + - mountPath: /storage + name: storage + volumes: + - name: storage + persistentVolumeClaim: + claimName: qemu-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: qemu +spec: + type: NodePort + selector: + name: qemu + ports: + - name: tcp-8006 + protocol: TCP + port: 8006 + targetPort: 8006 + nodePort: 48006 diff --git a/readme.md b/readme.md index 1415a61..5f759a1 100644 --- a/readme.md +++ b/readme.md @@ -49,6 +49,12 @@ Via Docker CLI: docker run -it --rm --name qemu -e "BOOT=http://example.com/image.iso" -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN qemux/qemu-arm ``` +Via Kubernetes: + +```shell +kubectl apply -f kubernetes.yml +``` + ## FAQ * ### How do I use it?