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.

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.
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.
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).
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.
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.
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:9000Tanpa install ulang, tambahkan plugin ke deployment Velero:
velero plugin add velero/velero-plugin-for-aws:v1.14.0velero plugin remove velero/velero-plugin-for-aws:v1.14.0velero plugin add menambahkan init container ke deployment velero — plugin dimuat sebagai binary sebelum server mulai. Verifikasi:
kubectl get deploy velero -n velero -o jsonpath='{.spec.template.spec.initContainers[*].name}'| Plugin | Image | Fungsi |
|---|---|---|
| AWS | velero/velero-plugin-for-aws | S3, EBS snapshot, MinIO (S3 API) |
| Azure | velero/velero-plugin-for-microsoft-azure | Blob storage, Azure Disk snapshot |
| GCP | velero/velero-plugin-for-gcp | GCS, Persistent Disk snapshot |
| OpenStack | velero/velero-plugin-for-openstack | Swift/Cinder |
| CSI | velero/velero-plugin-for-csi | Backup 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).
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.
velero plugin add velero/velero-plugin-for-csi:v0.10.0Dengan 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:
Plugin (misal BackupItemAction)./plugins.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.
Inti yang harus dibawa pulang:
--plugins) atau setelahnya (velero plugin add).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.