> 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/guideline-for-enterprise/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
```
