> 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/service-portal-cloudeka/balancece/custom-resource-definition.md).

# Custom Resource Definition

{% hint style="warning" %}
Anda dapat mengunduh *kubeconfig* di *Service Portal* Cloudeka, dan klik [tautan ini](/guideline-for-enterprise/panduan-untuk-enterprise/deka-gpu/deka-gpu-kubernetes/dashboard/download-kube-config.md) untuk informasi lebih lanjut.
{% endhint %}

{% hint style="warning" %}
Sebelum Anda menggunakan *CRD*, Anda harus mengonfigurasi *kubeconfig* Anda sesuai dengan sistem operasi yang Anda gunakan. Klik [tautan ini](/guideline-for-enterprise/panduan-untuk-enterprise/reference/how-to-use-kubeconfig-on-windows.md) jika Anda menggunakan *Windows*, dan klik [tautan ini](/guideline-for-enterprise/panduan-untuk-enterprise/reference/how-to-use-kubeconfig-on-linux.md) jika Anda menggunakan *Linux*.
{% endhint %}

*Custom Resource Definition (CRD)* adalah fitur yang disediakan oleh *Service Portal* Cloudeka untuk menampilkan *resource* yang digunakan oleh pelanggan. Pada *CRD* di *Service Portal* Cloudeka, terdapat beberapa modul yang tersedia.

## *Cloudeka Tenants*

***Cloudeka Tenants*** adalah modul yang menampilkan daftar informasi terkait *Billing, Charging*, dan *Balance*. Anda dapat menjalankan sintaks berikut.

```bash
kubectl get tenant
```

<figure><img src="https://753761090-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtAYQyBIz2BclZ3ZHHlS4%2Fuploads%2Fgit-blob-d3b67c2ae5b3ce1aa364b5286a10f126b9f979b8%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Pada gambar di atas setelah Anda menjalankan sintaks `kubectl get tenant`, akan ditampilkan beberapa kolom di antaranya sebagai berikut.

<table><thead><tr><th width="173">Kolom</th><th>Deskripsi</th></tr></thead><tbody><tr><td><em><strong>Name</strong></em></td><td>Nama <em>tenant</em>, dalam hal ini, <em>default</em>.</td></tr><tr><td><em><strong>Project</strong></em></td><td>Nama proyek yang terkait dengan <em>tenant</em>, dalam hal ini, <em>post-f-bison</em>.</td></tr><tr><td><em><strong>Organization</strong></em></td><td>Nama organisasi yang memiliki <em>tenant</em> ini, yaitu <em>cv-af2</em></td></tr><tr><td><em><strong>Billing</strong></em></td><td>Metode <em>billing</em>, ditampilkan sebagai <em>postpaid</em> (pembayaran dilakukan setelah penggunaan).</td></tr><tr><td><em><strong>Charging</strong></em></td><td>Model penagihan, diatur sebagai <em>fixed</em> (harga tetap).</td></tr><tr><td><em><strong>Balance</strong></em></td><td>Saldo yang tersedia, saat ini menunjukkan 0.</td></tr><tr><td><em><strong>Update At</strong></em></td><td>Waktu terakhir data diperbarui.</td></tr></tbody></table>

## *Cloudeka Resources Quotas*

***Cloudeka Resources Quotas*** adalah modul yang digunakan untuk melihat batas maksimum *resource* yang dapat digunakan oleh setiap komponen *Service Portal* Cloudeka dan hanya digunakan untuk tipe biaya layanan *SME*: *Prepaid Hourly Quota Fix*, dan *SME*: *Prepaid Fixed* kecuali kolom *Quota Balance* yang hanya digunakan untuk tipe biaya layanan *Enterprise*: *Postpaid Hourly*. Anda dapat menjalankan sintaks berikut.

```bash
kubectl get rquota
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXegSLSTCayi3faJT5VrvscV66tw-PYP-Ul5TBkuOO2DHp3orrI_HJ9MR-n9mtXnjO15LQkprXSPLEnFuDsY6vFLG39tjAnlfgLOEanzM1AKhjvG6NPqs0sI6d0bWFo5di4M8qGl7g?key=j5cAgZ4reQhgRipI177hLQ" alt=""><figcaption></figcaption></figure>

Pada gambar di atas setelah Anda menjalankan sintaks `kubectl get rquota`, akan ditampilkan beberapa kolom di antaranya sebagai berikut.

<table><thead><tr><th width="180">Kolom</th><th>Deskripsi</th></tr></thead><tbody><tr><td><em>Name</em></td><td>Nama <em>resource quota</em>, dalam hal ini, <em>default</em>.</td></tr><tr><td><em>CPU</em></td><td>Jumlah <em>core CPU</em> yang dialokasikan, yaitu 8.</td></tr><tr><td><em>RAM</em></td><td>Memori yang dialokasikan, yaitu 16Gi (16 <em>Gigabyte</em>).</td></tr><tr><td><em>Quota Balance</em></td><td>Sisa saldo <em>quota</em>, juga ditampilkan sebagai Rp1.000.000</td></tr></tbody></table>

## *Cloudeka Prices*

***Cloudeka Prices*** adalah modul yang menampilkan harga pada *Service Portal* Cloudeka, yang dibagi menjadi tipe harga per jam dan per bulan dan secara khusus digunakan untuk tipe biaya layanan *Prepaid Hourly* dan *Prepaid Hourly Quota Fix*.

```bash
kubectl get price -o yaml
```

Setelah Anda menjalankan sintaks `kubectl get price`, akan ditampilkan.

{% code lineNumbers="true" %}

```yaml
apiVersion: v1
items:
- apiVersion: tenants.cloudeka.ai/v1alpha2
  kind: CloudekaPrice
  metadata:
    annotations:
      cloudeka.ai/reconciled: "true"
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"tenants.cloudeka.ai/v1alpha2","kind":"CloudekaPrice","metadata":{"annotations":{},"name":"default","namespace":"default"}}
    creationTimestamp: "2025-02-01T03:05:48Z"
    generation: 3
    name: default
    namespace: default
    resourceVersion: "948453"
    uid: a5586724-04c4-404f-9f3c-96dd72932437
  spec:
    cpu:
      price: 100
      priceMonthly: 500000
    createdBy: cloudeka-system
    floatingIP:
      price: 103
      priceMonthly: 75000
    gpu:
      NVIDIA-H100-80GB-HBM3:
        price: 63356
        priceMonthly: 46250000
      NVIDIA-H100-80GB-HBM3-MIG-1g.10gb:
        price: 19178
        priceMonthly: 14000000
      NVIDIA-H100-80GB-HBM3-MIG-1g.10gb-SHARED:
        price: 19178
        priceMonthly: 14000000
      NVIDIA-H100-80GB-HBM3-MIG-1g.20gb:
        price: 19178
        priceMonthly: 14000000
      NVIDIA-H100-80GB-HBM3-MIG-1g.40gb:
        price: 19178
        priceMonthly: 14000000
      NVIDIA-L40S:
        price: 19452
        priceMonthly: 14200000
      Tesla-T4:
        price: 19452
        priceMonthly: 14200000
    nvaie:
      price: 16000
      priceMonthly: 11680000
    ram:
      price: 60
      priceMonthly: 300000
    storage:
      local-path:
        price: 1
        priceMonthly: 850
      storage-mgmt:
        price: 2
        priceMonthly: 1000
      storage-nlsas:
        price: 1
        priceMonthly: 850
      storage-nvme-c1:
        price: 2
        priceMonthly: 1650
      storage-nvme-c2:
        price: 2
        priceMonthly: 1650
      storage-nvme-lustre:
        price: 3
        priceMonthly: 2450
      storage-nvme-rdma-c1:
        price: 2
        priceMonthly: 1450
      storage-nvme-rdma-c2:
        price: 2
        priceMonthly: 1450
    updatedBy: cloudeka-system
  status:
    CreatedAt: "2025-02-01 03:05:48"
    updatedAt: "2025-02-01 03:05:48"
kind: List
metadata:
  resourceVersion: ""
```

{% endcode %}

### Metadata

Bagian **metadata** dalam *file YAML* ini berisi informasi tentang identitas dan status *resource* **CloudekaPrice** dalam *cluster Kubernetes*. Nama *resource* adalah **`default`**, yang menunjukkan bahwa ini adalah konfigurasi harga default dalam namespace **`default`**. Versi generasi (**`generation: 3`**) menunjukkan bahwa *resource* ini telah diperbarui sebanyak tiga kali. Selain itu, **`resourceVersion: "948453"`** digunakan oleh *Kubernetes* untuk melacak perubahan pada *resource* ini. Setiap *resource* di *Kubernetes* memiliki ***UID*** yang unik, dalam hal ini, **`a5586724-04c4-404f-9f3c-96dd72932437`**, yang memastikan bahwa *resource* ini dapat diidentifikasi secara unik dalam sistem.

### *Specification*

Mendefinisikan **detail harga** untuk berbagai *resource* dalam lingkungan Cloudeka.

#### *CPU Pricing*

```yaml
cpu:
  price: 100
  priceMonthly: 500000
```

*CPU* diberi harga Rp100 per jam atau per unit penggunaan, dan Rp500.000 per bulan.

#### *Floating IP*

```yaml
floatingIP:
  price: 103
  priceMonthly: 75000
```

*Floating IP* diberi harga Rp103 per jam, dan Rp75.000 per bulan.

#### *GPU Pricing*

```yaml
gpu:
  NVIDIA-H100-80GB-HBM3:
    price: 63356
    priceMonthly: 46250000
  NVIDIA-H100-80GB-HBM3-MIG-1g.10gb:
    price: 19178
    priceMonthly: 14000000
  NVIDIA-L40S:
    price: 19452
    priceMonthly: 14200000
```

Harga *GPU* bervariasi berdasarkan model dan konfigurasi *GPU*. Struktur harga mencakup *GPU* berperforma tinggi seperti ***NVIDIA H100 80GB HBM3***, yang memiliki harga per jam sebesar Rp**63.356** dan harga per bulan sebesar Rp**46.250.000**, menjadikannya salah satu opsi termahal karena kemampuannya yang tinggi. Terdapat juga beberapa ***konfigurasi MIG (Multi-Instance GPU)*** dari model *H100*, seperti ***1g.10GB, 1g.10GB-SHARED, 1g.20GB,*****&#x20;dan&#x20;*****1g.40GB***, yang semuanya diberi harga Rp**19.178 per jam** dan Rp**14.000.000 per bulan**. Selain itu, model *GPU* lain seperti ***NVIDIA L40S*** tersedia dengan tarif per jam sebesar Rp**19.452** dan harga per bulan sebesar Rp**14.200.000**, menjadikannya alternatif yang lebih terjangkau.

#### *NVAIE Pricing*

```bash
    nvaie:
      price: 16000
      priceMonthly: 11680000
```

*NVAIE (NVIDIA AI Enterprise)* diberi harga Rp**16.000 per unit** dan Rp**11.680.000 per bulan**.

#### *RAM Pricing*

```yaml
ram:
  price: 60
  priceMonthly: 300000
```

Harga *RAM* adalah Rp60 per jam, dan Rp300.000 per bulan.

#### *Storage Pricing*

```yaml
storage:
  local-path:
    price: 1
    priceMonthly: 850
  storage-mgmt:
    price: 2
    priceMonthly: 1000
  storage-nvme-c1:
    price: 2
    priceMonthly: 1650
  storage-nvme-lustre:
    price: 3
    priceMonthly: 2450
```

Struktur harga mencakup beberapa tipe *storage*, masing-masing dirancang untuk kasus penggunaan tertentu. Opsi ***local-path*** dan ***storage-nlsas*** adalah yang paling terjangkau, dengan harga per jam sebesar **Rp1,** dan harga per bulan sebesar **Rp850**. *Class **storage-mgmt***, yang kemungkinan menawarkan performa atau fitur manajemen yang lebih baik, diberi harga sedikit lebih tinggi yaitu **Rp2 per jam** dan **Rp1.000 per bulan**. Solusi *storage* yang lebih canggih, seperti ***storage-nvme-c1 dan storage-nvme-c2***, tersedia dengan harga **Rp2 per jam** dan **Rp1.650 per bulan**, memberikan performa *storage* berbasis *NVMe* yang lebih cepat. ***storage-nvme-lustre***, yang dioptimalkan untuk *workload* berperforma tinggi, memiliki tarif yang lebih tinggi yaitu **Rp3 per jam** dan **Rp2.450 per bulan**.

## *Cloudeka Charges*

***Cloudeka Charges*** adalah modul yang menampilkan biaya yang dikenakan berdasarkan penggunaan per jam Anda.

```
kubectl get charges
```

## *Cloudeka Floating IPs*

***Cloudeka Floating IPs*** adalah modul yang digunakan untuk menampilkan alamat *Public IP* yang digunakan untuk terhubung ke *Virtual Machine (VM)*. Anda dapat menjalankan sintaks berikut.

```
kubectl get cfip
```

## Cloudeka Resources

**Cloudeka Resources** menampilkan modul resource yang digunakan dalam Pod yang merupakan kombinasi dari CPU, RAM, dan GPU, serta biaya layanan yang dikenakan per jam. Anda dapat menjalankan sintaks berikut.

```
kubectl get container
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeiCncbjJe3IItTfdwOgMY1rLMELfkEE1FCm1R85cP03R3TDVnvs3dfhacIBBvtXDPv2BcGWZ7cLTPVHoB5Gp6rBE6PKLuE23xKH8DZfz7oasGFvoeDMy5zUraQXK-I7TJKWc7R?key=j5cAgZ4reQhgRipI177hLQ" alt=""><figcaption></figcaption></figure>

Pada gambar di atas setelah Anda menjalankan sintaks `kubectl get container`, akan ditampilkan beberapa kolom di antaranya sebagai berikut.

<table><thead><tr><th width="160">Kolom</th><th>Deskripsi</th></tr></thead><tbody><tr><td><em>NAME</em></td><td>Nama <em>container</em> atau <em>pod</em>. Di sini, <em>gpu-pod, pod-1,</em> dan <em>pod-2</em>.</td></tr><tr><td><em>KIND</em></td><td>Tipe <em>resource</em>. <em>pod-1</em> dan <em>pod-2</em> bertipe <em>Pod</em>, sedangkan <em>gpu-pod</em> tidak menentukan <em>kind</em>, kemungkinan menunjukkan pengelompokan level yang lebih tinggi.</td></tr><tr><td><em>CPU</em></td><td><em>CPU</em> yang dialokasikan untuk setiap <em>pod. Setiap pod (pod-1</em> dan <em>pod-2)</em> memiliki 1 <em>core CPU</em>.</td></tr><tr><td><em>RAM</em></td><td>Memori yang dialokasikan untuk setiap <em>pod</em>, yaitu <em>512Mi (512 Megabyte</em>).</td></tr><tr><td><em>CHARGE</em></td><td>Biaya yang terkait dengan setiap <em>pod</em>, ditampilkan sebagai Rp130.</td></tr><tr><td><em>STATUS</em></td><td>Status <em>container</em> saat ini. Baik <em>pod-1</em> maupun <em>pod-2</em> dalam <em>status Running</em>, yang berarti keduanya aktif dan berfungsi.</td></tr></tbody></table>

## *Cloudeka Resources Storages*

***Cloudeka Resources Storages*** adalah modul yang menampilkan *resource storage* yang digunakan dalam *Persistent Volume Claims (PVC)*, dan biaya layanan yang dikenakan dihitung per jam. Anda dapat menjalankan sintaks berikut.

```
kubectl get storage
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdE9e2s19F6Soae6u9PjI05CGuA49KYFd5U4gg_dwtvEfy3Z4XrGBq0VBKpyHUkn4VxClydklBItDfNpTQG3Dc-8vfvT4X58RK1IAYJUtcpTi3dZ9B9W-uUCI-WYpQvkoldQzekTg?key=j5cAgZ4reQhgRipI177hLQ" alt=""><figcaption></figcaption></figure>

Pada gambar di atas setelah Anda menjalankan sintaks `kubectl get storage`, akan ditampilkan beberapa kolom di antaranya sebagai berikut.

<table><thead><tr><th width="238">Kolom</th><th>Deskripsi</th></tr></thead><tbody><tr><td><em>NAME</em></td><td>Nama <em>resource storage</em>, dalam hal ini, <em>persistentvolumeclaim-cufdp</em>.</td></tr><tr><td><em>STORAGECLASSNAME</em></td><td><em>Storage class</em> yang ditetapkan untuk <em>storage</em> tersebut, yaitu <em>storage-mgmt</em>. Ini menentukan tipe dan metode <em>provisioning storage</em>.</td></tr><tr><td><em>SIZE</em></td><td>Ukuran <em>storage</em> yang dialokasikan, yaitu <em>1Gi (1 Gigabyte)</em>.</td></tr><tr><td><em>CHARGE</em></td><td>Biaya <em>storage</em>, ditampilkan sebagai Rp2. Ini dapat menunjukkan unit biaya atau tingkat biaya.</td></tr><tr><td>ST<em>A</em>TUS</td><td>Status <em>storage</em> saat ini, yaitu <em>Bound</em>, yang berarti <em>storage</em> tersebut berhasil terpasang ke <em>Persistent Volume</em>.</td></tr></tbody></table>

## *Cloudeka VPC*

***Cloudeka VPC*** adalah modul yang menampilkan *Virtual Private Cloud (VPC)* untuk melakukan isolasi jaringan pada setiap *namespace virtual di vCluster*. Anda dapat menjalankan sintaks berikut.

```
kubectl get cvpc
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXexGtaX1LoAlAOjnceMPDKYfmfLKl5XBlR-Ln2n1yF8RM-OlevyRNqUQnEc8xMxKn-R6Lsjln5C78dKrLCm5nGCn4GI8q7yMLXvitKtduDhSaAvIKWpg7dbWrRAh5GSp1nU42CA?key=j5cAgZ4reQhgRipI177hLQ" alt=""><figcaption></figcaption></figure>

Pada gambar di atas setelah Anda menjalankan sintaks `kubectl get cvpc`, akan ditampilkan beberapa kolom di antaranya sebagai berikut.

<table><thead><tr><th width="150">Kolom</th><th>Deskripsi</th></tr></thead><tbody><tr><td><em>NAME</em></td><td>Nama <em>Cloud VPC (Virtual Private Cloud)</em>, dalam hal ini, <em>default</em>.</td></tr><tr><td><em>ISOLATE</em></td><td>Menunjukkan apakah <em>VPC</em> terisolasi. Nilai <em>false</em> berarti <em>VPC</em> tidak terisolasi dan dapat berkomunikasi dengan jaringan lain.</td></tr><tr><td><em>CIDR</em></td><td>Blok <em>CIDR (Classless Inter-Domain Routing)</em> yang ditetapkan untuk <em>VPC</em>, yaitu 10.168.176.0/24. Ini berarti jaringan tersebut memiliki rentang alamat IP dari 10.168.176.0 hingga 10.168.176.255.</td></tr><tr><td><em>GATEWAY</em></td><td><em>Gateway default</em> untuk <em>VPC</em>, yaitu 10.168.176.1. <em>IP</em> ini biasanya digunakan untuk merutekan lalu lintas di dalam dan di luar <em>VPC</em>.</td></tr></tbody></table>

## *Cloudeka* *Guard*

***Cloudeka Guard*** adalah modul yang menampilkan kebijakan jaringan yang diterapkan pada suatu *namespace*. Anda dapat menjalankan sintaks berikut.

```
kubectl get guard
```
