Advanced Storage Operations for Kubernetes

CSI-Addons extends the Container Storage Interface with powerful operations for disaster recovery, performance optimization, and operational management of storage volumes.

Kubernetes CRs
CSI-Addons Controller
CSI-Addons Sidecar
Storage Backend

Key Features

A comprehensive set of storage operations beyond the core CSI specification

Volume Replication

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

Reclaim Space

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

Network Fencing

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

Volume Groups

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

Encryption Key Rotation

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

Identity Service

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

Architecture

A modular design built on Kubernetes Custom Resources and gRPC

Controller Manager

Watches for Custom Resources in Kubernetes, discovers CSI-Addons sidecars, and routes operations to appropriate drivers. Supports leader election for high availability.

  • Manages operation lifecycle and retries
  • Auto-creates CronJobs from annotations
  • TLS + token-based authentication

Sidecar

Runs alongside CSI driver containers, registers with the controller via CSIAddonsNode CRs, and translates gRPC calls into driver operations.

  • Auto-registers with CSIAddonsNode CR
  • Volume health condition reporting
  • Pluggable operation support

Custom Resources

Kubernetes-native interface for all storage operations. Users create CRs to trigger operations, and status is reported back through CR conditions.

Operation Flow

1

User creates a Custom Resource (e.g., ReclaimSpaceJob)

2

Controller Manager watches and processes the CR

3

Controller sends gRPC request to the appropriate Sidecar

4

Sidecar forwards the operation to the CSI Driver

5

Status is reported back through the CR

Getting Started

Deploy CSI-Addons on your Kubernetes cluster in minutes

Deploy with YAML manifests

bash
# 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

Deploy with Kustomize

bash
# Clone the repository
git clone https://github.com/csi-addons/kubernetes-csi-addons.git
cd kubernetes-csi-addons

# Deploy using make
make deploy

Deploy with Operator SDK

bash
# 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

Example: Reclaim Space on a PVC

yaml
apiVersion: csiaddons.openshift.io/v1alpha1
kind: ReclaimSpaceJob
metadata:
  name: reclaim-space-my-pvc
spec:
  target:
    persistentVolumeClaim: my-pvc
  backOffLimit: 10
  timeout: 600

Repositories

The CSI-Addons ecosystem is composed of several focused repositories

Community

CSI-Addons is an open-source, community-driven project

Mailing List

Join the open discussion list for questions, proposals, and announcements.

Join the List

Archives

Browse past discussions and decisions in the mailing list archives. Requires joining the list with a Google account.

View Archives

Contribute

Contribute code, report bugs, or suggest features on GitHub.

GitHub Organization