From 3126b3847b9ab942adc58d68ad3e79a6548a0373 Mon Sep 17 00:00:00 2001 From: Slavik Date: Wed, 15 May 2024 19:42:58 -0400 Subject: [PATCH] feat: Add Kubernetes manifest (#735) --- kubernetes.yml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 6 ++++++ 2 files changed, 64 insertions(+) create mode 100644 kubernetes.yml diff --git a/kubernetes.yml b/kubernetes.yml new file mode 100644 index 00000000..e5853e38 --- /dev/null +++ b/kubernetes.yml @@ -0,0 +1,58 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: dsm-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 16Gi +--- +apiVersion: v1 +kind: Pod +metadata: + name: dsm + labels: + name: dsm +spec: + terminationGracePeriodSeconds: 120 # the Kubernetes default is 30 seconds and it may be not enough + containers: + - name: dsm + image: vdsm/virtual-dsm + ports: + - containerPort: 5000 + protocol: TCP + resources: + limits: + devices.kubevirt.io/kvm: 1 + securityContext: + privileged: true + env: + - name: RAM_SIZE + value: 1G + - name: CPU_CORES + value: "1" + - name: DISK_SIZE + value: "16G" # Kubernetes uses Gi, but DSM uses GB + volumeMounts: + - mountPath: /storage + name: storage + volumes: + - name: storage + persistentVolumeClaim: + claimName: dsm-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: dsm +spec: + type: NodePort + selector: + name: dsm + ports: + - name: tcp-5000 + port: 5000 + targetPort: 5000 + nodePort: 31150 diff --git a/readme.md b/readme.md index 0c87fbb1..0de8785f 100644 --- a/readme.md +++ b/readme.md @@ -47,6 +47,12 @@ Via Docker CLI: docker run -it --rm --name dsm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 vdsm/virtual-dsm ``` +Via Kubernetes: + +```shell +kubectl apply -f kubernetes.yml +``` + ## FAQ * ### How do I use it?