VirtualMachine: Implement virtual machines using KubeVirt
Auto adds new VM into given user's Tailscale network
Change-Id: I16847a0b9eacc17b0e794d3b4913eb1d80a93f0a
diff --git a/charts/virtual-machine/templates/vm.yaml b/charts/virtual-machine/templates/vm.yaml
new file mode 100644
index 0000000..d66da80
--- /dev/null
+++ b/charts/virtual-machine/templates/vm.yaml
@@ -0,0 +1,49 @@
+apiVersion: kubevirt.io/v1
+kind: VirtualMachine
+metadata:
+ labels:
+ kubevirt.io/os: linux
+ name: {{ .Values.name }}
+spec:
+ running: true
+ template:
+ metadata:
+ creationTimestamp: null
+ labels:
+ kubevirt.io/domain: debian
+ app: {{ .Values.name }}
+ spec:
+ domain:
+ cpu:
+ cores: {{ .Values.cpuCores }}
+ resources:
+ limits:
+ memory: {{ .Values.memory }}
+ devices:
+ interfaces:
+ - name: default
+ masquerade: {}
+ ports:
+ {{- range .Values.ports }}
+ - port: {{ . }}
+ {{- end }}
+ disks:
+ - name: disk0
+ disk:
+ bus: virtio
+ - name: cloudinitdisk
+ disk:
+ bus: virtio
+ readonly: true
+ networks:
+ - name: default
+ pod: {}
+ volumes:
+ - name: disk0
+ persistentVolumeClaim:
+ claimName: dv-{{ .Values.name }}
+ - name: cloudinitdisk
+ cloudInitNoCloud:
+ userData: |
+ #cloud-config
+ {{- toYaml .Values.cloudInit.userData | nindent 14 }}