CSI-Addons extends the Container Storage Interface with powerful operations for disaster recovery, performance optimization, and operational management of storage volumes.
A comprehensive set of storage operations beyond the core CSI specification
Define a standard that will enable storage vendors (SP) to develop controllers/plugins for DR or to talk to the different CO systems.
Operations: Enable Volume Replication, Disable Volume Replication, Promote Volume, Demote Volume, Resync Volume, Get Volume Replication Info
Define an extension to the CSI Specification that will enable storage vendors (SP) to develop controllers/plugins that can free unused storage allocations from existing volumes.
Operations: Controller Reclaim Space, Node Reclaim Space
Define a standard that will enable storage providers (SP) to perform node level fencing using corresponding CIDR blocks.
Operations: Fence Cluster Network, Unfence Cluster Network, List Cluster Fence, Get Fence Clients
Define a standard that will enable storage vendors (SP) to develop controllers/plugins for managing VolumeGroups.
Operations: Create Volume Group, Modify Volume Group Membership, Delete Volume Group, List Volume Groups, Controller Get Volume Group
Define an extension to the CSI specification that will enable storage vendors (SP) to develop controllers/plugins that can rotate the Key Encryption Keys (KEK) of existing volumes that are encrypted.
Operations: Encryption Key Rotate
Define an API that makes it possible for the CSI-Addons plugin for a CO to communicate with CSI-driver components that can execute storage maintenance operations.
Operations: Get Identity, Get Capabilities, Probe
A modular design built on Kubernetes Custom Resources and gRPC
Watches for Custom Resources in Kubernetes, discovers CSI-Addons sidecars, and routes operations to appropriate drivers. Supports leader election for high availability.
Runs alongside CSI driver containers, registers with the controller via CSIAddonsNode CRs, and translates gRPC calls into driver operations.
Kubernetes-native interface for all storage operations. Users create CRs to trigger operations, and status is reported back through CR conditions.
User creates a Custom Resource (e.g., ReclaimSpaceJob)
Controller Manager watches and processes the CR
Controller sends gRPC request to the appropriate Sidecar
Sidecar forwards the operation to the CSI Driver
Status is reported back through the CR
Deploy CSI-Addons on your Kubernetes cluster in minutes
# Set the release version
export RELEASE="v0.14.0"
# Install CRDs
kubectl create -f \
https://github.com/csi-addons/kubernetes-csi-addons/releases/download/${RELEASE}/crds.yaml
# Install RBAC
kubectl create -f \
https://github.com/csi-addons/kubernetes-csi-addons/releases/download/${RELEASE}/rbac.yaml
# Deploy the controller
kubectl create -f \
https://github.com/csi-addons/kubernetes-csi-addons/releases/download/${RELEASE}/setup-controller.yaml
# Clone the repository
git clone https://github.com/csi-addons/kubernetes-csi-addons.git
cd kubernetes-csi-addons
# Deploy using make
make deploy
# Create the namespace
kubectl create namespace storage-csi-addons
# Run the operator bundle
operator-sdk run bundle \
-n storage-csi-addons \
quay.io/csiaddons/k8s-bundle:latest
apiVersion: csiaddons.openshift.io/v1alpha1
kind: ReclaimSpaceJob
metadata:
name: reclaim-space-my-pvc
spec:
target:
persistentVolumeClaim: my-pvc
backOffLimit: 10
timeout: 600
The CSI-Addons ecosystem is composed of several focused repositories
CSI-Addons is an open-source, community-driven project
Join the open discussion list for questions, proposals, and announcements.
Join the ListBrowse past discussions and decisions in the mailing list archives. Requires joining the list with a Google account.
View Archives