This is a repository for Rclone CSI driver, csi plugin name: rclone.csi.veloxpack.io. This driver enables Kubernetes pods to mount cloud storage backends as persistent volumes using rclone, supporting 50+ storage providers including S3, Google Cloud Storage, Azure Blob, Dropbox, and many more.
| master branch | 1.20+ | GA |
| v1.0.0 | 1.20+ | GA |
install Rclone CSI driver on microk8s
- install via helm charts
- install via kubectl
Please refer to rclone.csi.veloxpack.io driver parameters
Please refer to development guide
- testgrid sig-storage-csi-rclone dashboard.
- Driver image build pipeline: post-csi-driver-rclone-push-images
- 50+ Storage Providers: Supports Amazon S3, Google Cloud Storage, Azure Blob, Dropbox, SFTP, and many more
- No External Dependencies: Uses rclone as a Go library directly - no rclone binary installation required
- No Process Overhead: Direct library integration means no subprocess spawning or external process management
- Dynamic Volume Provisioning: Create persistent volumes via StorageClass
- Secret-based Configuration: Secure credential management using Kubernetes secrets
- Inline Configuration: Direct configuration in StorageClass parameters
- Template Variable Support: Dynamic path substitution using PVC/PV metadata
- VFS Caching: High-performance caching with configurable options
- No Staging Required: Direct mount without volume staging
- Flexible Backend Support: Choose between minimal or full backend support for smaller images
- Kubernetes 1.20 or later
- CSI node driver registrar
- FUSE support on nodes (for mounting)
- No rclone installation required - the driver uses rclone as a Go library directly
This will install:
- CSI Controller (StatefulSet)
- CSI Node Driver (DaemonSet)
- RBAC permissions
- CSIDriver CRD
- Example StorageClass
Create a secret with your storage backend configuration:
Store sensitive credentials in Kubernetes secrets and reference them in StorageClass.
Include configuration directly in StorageClass parameters.
Configure directly in PersistentVolume volumeAttributes.
Priority: volumeAttributes > StorageClass parameters > Secrets
The driver supports all rclone backends, including:
- Amazon S3 and S3-compatible storage (MinIO, DigitalOcean Spaces, etc.)
- Google Cloud Storage
- Azure Blob Storage
- Dropbox
- SFTP/SSH
- Google Drive
- OneDrive
- Box
- Backblaze B2
- WebDAV
- FTP
- And 60+ more backends
See examples for configuration examples.
The driver supports template variables in the remotePath parameter:
| ${pvc.metadata.name} | PVC name | my-pvc-12345 |
| ${pvc.metadata.namespace} | PVC namespace | default |
| ${pv.metadata.name} | PV name | pv-rclone-abc123 |
Example:
The driver now includes optimized default settings for better performance:
- Cache Info Age: 48h (reduced from 72h for better memory usage)
- Cache Cleanup: Every 10 minutes (increased frequency)
- Cache Max Age: 12h (reduced for better performance)
- Directory Cache: 3s (faster directory listing)
- Cache Size Limits: 1GB with 2GB free space requirement
- Authentication failures: Verify credentials in secrets or configData
- Network connectivity: Ensure nodes can reach the storage backend
- Permission errors: Check that credentials have proper access rights
- Configuration format: Ensure configData is valid INI format
- Resource constraints: Verify sufficient memory and disk space
For detailed troubleshooting, see the debug guide.
The driver supports two backend configurations for different use cases:
Includes all 70+ rclone backends for maximum compatibility:
Includes only the most common backends for smaller image size:
Minimal backends include:
- Amazon S3 and S3-compatible storage
- Google Cloud Storage
- Azure Blob Storage
- Dropbox
- Google Drive
- OneDrive
- Box
- Backblaze B2
- SFTP
- WebDAV
- FTP
- Local filesystem
Benefits of minimal build:
- Smaller Docker image size
- Faster container startup
- Reduced attack surface
- Lower memory footprint
Choose the build that fits your needs - full support for maximum compatibility or minimal for production efficiency.
This driver is based on the csi-driver-nfs reference implementation, following CSI specification best practices. It also draws inspiration from the original csi-rclone implementation by WunderIO.
Components:
- Identity Server: Plugin metadata and health checks
- Controller Server: Volume lifecycle management (create/delete)
- Node Server: Volume mounting/unmounting on nodes
Key Design Decisions:
- No Staging: Rclone volumes don't require staging
- Direct Rclone Integration: Uses rclone's Go library directly
- Remote Creation: Creates temporary remotes for each mount
- VFS Caching: Leverages rclone's VFS for improved performance
- Template Variable Support: Dynamic path substitution using PVC/PV metadata
- Use Secrets: Store sensitive credentials in Kubernetes secrets
- RBAC: Ensure proper RBAC permissions are configured
- Network Policies: Consider using network policies to restrict access
- Image Security: Use trusted container images
- Credential Rotation: Regularly rotate storage backend credentials
The driver exposes Prometheus metrics at /metrics endpoint.
Set log level for debugging:
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions welcome! Please ensure:
- All code passes golangci-lint checks
- Follow existing code patterns
- Add tests for new functionality
- Update documentation
This project builds upon the excellent work of several open source communities:
- WunderIO/csi-rclone - The original rclone CSI driver implementation that inspired this project
- Kubernetes CSI NFS Driver - Reference implementation and architectural patterns
- Rclone - The powerful cloud storage sync tool that makes this driver possible
- Kubernetes CSI Community - For the Container Storage Interface specification and ecosystem
Special thanks to the maintainers and contributors of these projects for their dedication to open source software.
.png)


