> For the complete documentation index, see [llms.txt](https://docs.cloudeka.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cloudeka.ai/deka-gpu-documentations/panduan-untuk-enterprise/deka-gpu/deka-gpu-vms/how-to-manually-create-a-virtual-machine/configuration-file-dv.yaml.md).

# File Konfigurasi dv.yaml

File `dv.yaml` digunakan untuk mendefinisikan `DataVolume`, yang mengelola penyimpanan persisten terkait pod atau VM. `DataVolume` mengatur cara aplikasi menyimpan dan membaca data dalam cluster Kubernetes. Jalankan sintaks sesuai sistem operasi komputer Anda melalui terminal atau *command prompt*.

1. Sistem operasi *Windows*

Jika menggunakan sistem operasi *Windows*, Anda dapat menggunakan *Notepad++* atau editor teks lain di komputer.

2. Sistem operasi *Linux*

Jika menggunakan sistem operasi *Linux*, gunakan perintah berikut.

{% tabs %}
{% tab title="vim" %}

```bash
vim dv.yaml
```

{% endtab %}

{% tab title="nano" %}

```bash
nano dv.yaml
```

{% endtab %}
{% endtabs %}

Tambahkan kode sumber berikut ke file `dv.yaml`.

```yaml
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
  name: database-prod-dv 
  namespace: default 
  annotations:
    cdi.kubevirt.io/storage.bind.immediate.requested: "True"
spec:
  source:
    registry:
      url: docker://docker.io/shakir31/kubevirt-images:UBUNTU_22.04
  storage:
    storageClassName: storage-nvme-c1
    accessModes:
      - ReadWriteMany
    resources:
      requests:
        storage: 500Gi
```

Berikut penjelasan kode sumber yang dapat disesuaikan dengan kebutuhan Anda.

## Metadata

Bagian `metadata` berisi `name`, `namespace`, dan `annotations`. `name` dan `namespace` menjadi identitas volume data. `annotations` memastikan *Persistent Volume* (PV) segera dibuat dan terikat ke PVC saat volume diminta, tanpa menunggu pod dimulai.

Sesuaikan `name` dengan nama volume data yang digunakan. Kemudian, sesuaikan `namespace` dengan namespace pada vcluster yang digunakan di *Service Portal* Cloudeka.

<figure><img src="https://putri.box.cloudeka.id/cloudeka-assets/docs.cloudeka.ai/1dekagpu/configdvyaml_01.png" alt=""><figcaption></figcaption></figure>

## Spesifikasi

Bagian `spec` berisi `source` dan `storage`. `source` mengarah ke alamat registry Docker yang digunakan untuk membuat disk VM dengan sistem operasi Linux, yaitu Ubuntu 22.04. Bagian `storage` berisi `storageClassName`, `accessModes`, dan `resources`.

`storageClassName` mengidentifikasi kelas penyimpanan yang digunakan, yaitu `storage-nvme-c1`. Sesuaikan nilainya dengan paket penyimpanan yang dipilih melalui *Service Portal* Cloudeka. `accessModes` menentukan mode akses volume. Nilai `ReadWriteMany` memungkinkan banyak pod atau VM mengakses volume yang sama secara bersamaan. `resources` menentukan kapasitas penyimpanan. Sesuaikan nilainya dengan *root disk* yang digunakan di *Service Portal* Cloudeka.

<figure><img src="https://putri.box.cloudeka.id/cloudeka-assets/docs.cloudeka.ai/1dekagpu/configdvyaml_02.png" alt=""><figcaption></figcaption></figure>

Gunakan sintaks perintah berikut untuk menyimpan perubahan pada file `dv.yaml`.

```bash
kubectl apply -f dv.yaml
```
