Skip to content

virer/virium-csi-drv-controller

Repository files navigation

Virim iSCSI CSI Driver for Kubernetes

🚀 Overview

This repository contains the Virim CSI driver (Controller Part) — a Kubernetes CSI-compatible plugin that extends the functionality of the official iSCSI CSI driver to support dynamic provisioning.

CSI plugin name: virium.csi.virer.net

This driver works in conjunction with a running and properly configured Viriumd API server, which handles the underlying LVM and iSCSI operations.


🔧 Features

  • Dynamic volume provisioning and deletion
  • Multi-node support
  • Attach, mount, detach, unmount workflows via CSI
  • Kubernetes native PersistentVolume (PV) lifecycle integration
  • Volume resizing support
  • Snapshot creation
  • Volume cloning

⚠️ Requirements

  • A running instance of Viriumd, configured and reachable by the driver (please check here)
  • iSCSI initiator configured on all cluster nodes
  • Kubernetes v1.20+ (CSI-compatible)

🧪 Project Status and feature status

Status: Beta

  • 🚧 TLS communication and configuration option with Viriumd API
  • 🚧 iSCSI discovery authentication planed
  • 🚧 iSCSI session authentication planed

📚 References


🤝 Contributions

This project is open for testing, feedback, and contributions

Installation:

For installation please use helm charts

Create a values.yaml

virium:
  controller:
    image:
      repository: docker.io/scaps/virium-controller
      tag: v0.2.3.4
  node:
    image:
      repository: docker.io/scaps/virium-csi-driver-iscsi
      tag: v0.2.3.4
  nodeSelector:
    kubernetes.io/os: linux
viriumConfig:
  apiUsername: "virium_api_username"
  apiPassword: "virium_api_password"
  apiurl: "http://192.168.0.147:8787"
  initiator: "iqn.2025-04.net.virer.virium:target1"
  debug: "2"

Then configure the helm repository and deploy the charts

helm repo add virium https://virer.github.io/virium-helm-repo/
helm repo update
helm search repo virium
helm install a1 virium/virium --namespace=virium --create-namespace -f values.yaml 

Then use the following storageClass:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: virium
provisioner: virium.csi.virer.net
allowVolumeExpansion: true

And use the following as snapshotClass:

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: csi-virium-snapclass
driver: virium.csi.virer.net
deletionPolicy: Delete

About

Virium CSI driver (Controller part)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 37