update
diff --git a/charts/virtual-machine/Chart.yaml b/charts/virtual-machine/Chart.yaml
new file mode 100644
index 0000000..3f9d5b6
--- /dev/null
+++ b/charts/virtual-machine/Chart.yaml
@@ -0,0 +1,6 @@
+apiVersion: v2
+name: virtual-machine
+description: A Helm chart for virtual-machine
+type: application
+version: 0.0.1
+appVersion: "0.0.1"
diff --git a/charts/virtual-machine/templates/data-volume.yaml b/charts/virtual-machine/templates/data-volume.yaml
new file mode 100644
index 0000000..f9d1890
--- /dev/null
+++ b/charts/virtual-machine/templates/data-volume.yaml
@@ -0,0 +1,14 @@
+apiVersion: cdi.kubevirt.io/v1beta1
+kind: DataVolume
+metadata:
+  name: dv-{{ .Values.name }}
+spec:
+  source:
+    http:
+      url: {{ .Values.disk.source }}
+  pvc:
+    accessModes:
+      - ReadWriteOnce
+    resources:
+      requests:
+        storage: {{ .Values.disk.size }}
diff --git a/charts/virtual-machine/templates/vm.yaml b/charts/virtual-machine/templates/vm.yaml
new file mode 100644
index 0000000..63cb978
--- /dev/null
+++ b/charts/virtual-machine/templates/vm.yaml
@@ -0,0 +1,46 @@
+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
+    spec:
+      domain:
+        cpu:
+          cores: {{ .Values.cpuCores }}
+        resources:
+          limits:
+            memory: {{ .Values.memory }}
+        devices:
+          interfaces:
+            - masquerade: {}
+              name: default
+              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: {{ .Values.cloudInit.userData }}
diff --git a/charts/virtual-machine/values.yaml b/charts/virtual-machine/values.yaml
new file mode 100644
index 0000000..c621289
--- /dev/null
+++ b/charts/virtual-machine/values.yaml
@@ -0,0 +1,9 @@
+name: ""
+cpuCores: 1
+memory: "1Gi"
+disk:
+  source: "https://cloud.debian.org/images/cloud/bookworm-backports/latest/debian-12-backports-generic-amd64.qcow2"
+  size: 64Gi
+ports: []
+cloudInit:
+  userData: ""