Belajar Velero - Plugin Ecosystem
Episode 18 of 23

Belajar Velero - Plugin Ecosystem

Kekuatan Velero justru di ekosistem plugin-nya: inti tidak menulis kode vendor, plugin-lah yang menambahkan dukungan. Episode ini membahas jenis-jenis plugin (object store, volume snapshot, item action, custom dalam Go), cara menambahkan lewat velero plugin add, dan contoh plugin provider AWS/Azure/GCP serta CSI plugin.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Di episode 2 kalian mengenal plugin sebagai jembatan Velero ke penyedia eksternal. Episode 18 memperluas gambar itu: plugin bukan pelengkap, melainkan jiwa dari arsitektur Velero. Inti Velero tidak tahu apa itu "EBS snapshot" atau "S3 bucket" — yang tahu adalah plugin. Hasilnya: satu inti, ratusan integrasi.

Bayangkan sistem operasi dan driver printer: OS tidak perlu tahu cara kerja setiap printer — pabrikan menulis driver. Begitu driver dipasang, printer apa pun bisa dipakai. Plugin Velero persis seperti driver itu, dan menambahkan satu sama mudahnya.

Jenis-Jenis Plugin

Object Store Plugin

Menghubungkan Velero ke object storage untuk menyimpan manifest dan file data. Wajib ada minimal satu (kecuali saat install tanpa BSL). Contoh: velero/velero-plugin-for-aws (S3 + MinIO), velero/velero-plugin-for-gcp, velero/velero-plugin-for-microsoft-azure.

Volume Snapshotter Plugin

Membuat dan merestorasi snapshot cloud untuk persistent volume. Menangani EBS (AWS), Persistent Disk (GCP), Azure Disk, dan lain-lain. Tanpa plugin ini, snapshot volume gagal (episode 16).

Backup/Restore Item Action Plugin

Mengubah resource saat proses backup atau restore. Contoh nyata: plugin OpenStack menambahkan/mengubah field tertentu pada resource cloud; plugin CSI memproses VolumeSnapshot. Jenis plugin inilah yang membuat integrasi mendalam menjadi mungkin tanpa menyentuh kode inti.

Custom Plugin

Velero punya framework plugin Go — siapa pun bisa menulis plugin sendiri untuk kebutuhan spesifik: transformasi resource khusus, backup storage yang tidak didukung, atau logika bisnis pada item tertentu. Titik masuknya adalah interface BackupItemAction dan RestoreItemAction di SDK Velero.

Cara Menambahkan Plugin

Saat Install

Install dengan plugin ganda
velero install \
  --provider aws \
  --plugins velero/velero-plugin-for-aws:v1.14.0,velero/velero-plugin-for-csi:v0.10.0 \
  --bucket velero \
  --secret-file ./credentials-velero \
  --backup-location-config region=minio,s3ForcePathStyle=true,s3Url=http://minio:9000

Setelah Install

Tanpa install ulang, tambahkan plugin ke deployment Velero:

Tambahkan plugin ke instalasi berjalan
velero plugin add velero/velero-plugin-for-aws:v1.14.0
Hapus plugin
velero plugin remove velero/velero-plugin-for-aws:v1.14.0

velero plugin add menambahkan init container ke deployment velero — plugin dimuat sebagai binary sebelum server mulai. Verifikasi:

KubernetesLihat init container plugin
kubectl get deploy velero -n velero -o jsonpath='{.spec.template.spec.initContainers[*].name}'

Plugin Provider Populer

PluginImageFungsi
AWSvelero/velero-plugin-for-awsS3, EBS snapshot, MinIO (S3 API)
Azurevelero/velero-plugin-for-microsoft-azureBlob storage, Azure Disk snapshot
GCPvelero/velero-plugin-for-gcpGCS, Persistent Disk snapshot
OpenStackvelero/velero-plugin-for-openstackSwift/Cinder
CSIvelero/velero-plugin-for-csiBackup volume via CSI VolumeSnapshot

Versi plugin mengikuti major release Velero — pastikan versi plugin cocok dengan versi server (misal v1.14.x untuk Velero 1.14+, sesuaikan dengan release terbaru).

Contoh: Plugin CSI

CSI plugin (stabil sejak Velero 1.14) memungkinkan backup volume yang diprovisioning lewat CSI driver — termasuk driver pihak ketiga yang bukan milik cloud provider (misal Rook Ceph, Portworx, atau storage NFS CSI). Tanpa plugin ini, volume CSI hanya dibackup sebagai manifest.

Install CSI plugin
velero plugin add velero/velero-plugin-for-csi:v0.10.0

Dengan plugin ini, setiap PVC dengan VolumeSnapshotClass yang tersedia otomatis dibackup via snapshot CSI. Kita bedah penuh di episode 19.

Tip

Pola debugging plugin: plugin gagal hampir selalu terlihat sebagai error di log server (kubectl logs -n velero deploy/velero). Pesan khas: "plugin process exited", "no object store plugin registered", atau "volume snapshotter plugin not found". Cek versi plugin vs server sebelum mencari penyebab lain.

Bagi yang perlu integrasi khusus, alur singkatnya:

  1. Buat module Go dengan dependency SDK Velero.
  2. Implementasikan interface Plugin (misal BackupItemAction).
  3. Build sebagai binary, bungkus image container yang menyalin binary ke /plugins.
  4. Tambahkan image sebagai init container plugin (velero plugin add <image>).

SDK dan contoh tersedia di repository velero-io/velero (folder pkg/plugin) dan dokumentasi custom plugin. Kami tidak menulis full custom plugin di seri ini, tapi kerangka di atas cukup untuk memulai.

Penutup

Inti yang harus dibawa pulang:

  • Plugin memisahkan kode vendor dari inti: object store, volume snapshotter, dan item action.
  • Tambah plugin saat install (--plugins) atau setelahnya (velero plugin add).
  • Contoh nyata: aws-plugin, azure-plugin, gcp-plugin, OpenStack, dan CSI plugin (stabil sejak 1.14).
  • Cocokkan versi plugin dengan versi server; error plugin muncul di log server.
  • Custom plugin Go memakai framework BackupItemAction/RestoreItemAction di SDK Velero.

Di episode 19 selanjutnya kita dalami CSI Snapshot & Cross-provider — backup volume CSI via VolumeSnapshotClass, dukungan provider CSI penuh, serta memindahkan volume antar cloud lewat file-level atau konversi snapshot.