https://github.com/dell/csi-baremetal
Bare-metal CSI Driver
https://github.com/dell/csi-baremetal
Last synced: 9 months ago
JSON representation
Bare-metal CSI Driver
- Host: GitHub
- URL: https://github.com/dell/csi-baremetal
- Owner: dell
- License: apache-2.0
- Created: 2020-06-26T13:50:16.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T08:54:55.000Z (about 1 year ago)
- Last Synced: 2024-11-18T23:19:08.986Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 4.53 MB
- Stars: 73
- Watchers: 10
- Forks: 33
- Open Issues: 131
-
Metadata Files:
- Readme: docs/README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Codeowners: docs/CODEOWNERS
- Support: docs/supported-mount-options.md
Awesome Lists containing this project
README
[](https://github.com/dell/csi-baremetal/actions/workflows/pr.yml)
[](https://github.com/dell/csi-baremetal/actions/workflows/e2e.yml)
[](https://codecov.io/gh/dell/csi-baremetal)
[](https://goreportcard.com/report/github.com/dell/csi-baremetal)

Bare-metal CSI Driver
=====================
Bare-metal CSI Driver is a [CSI spec](https://github.com/container-storage-interface/spec) implementation to manage locally attached disks for Kubernetes.
- **Project status**: GA
Features
--------
- [Dynamic provisioning](https://kubernetes-csi.github.io/docs/external-provisioner.html): Volumes are created dynamically when `PersistentVolumeClaim` objects are created.
- Volume binding modes
- WaitForFirstConsumer
- Generic ephemeral volumes (k8s v1.21+)
- LVM support
- Storage classes for the different drive types: HDD, SSD, NVMe
- Drive health detection
- Scheduler extender
- Support unique ID for each node in the K8s cluster
- Service procedures - node and disk replacement
- Volume expand support
- Raw block mode
- Ability to deploy on subset of nodes within cluster
- CSI Operator
### Planned features
- User defined storage classes
- NVMeOf support
- Kubernetes Scheduler
- SMART Self Test execution
- Volume cloning
- Support of additional Linux distributions/versions
Related repositories
--------------------
- [Bare-metal CSI Operator](https://github.com/dell/csi-baremetal-operator) - Kubernetes Operator to deploy and manage CSI
- [Bare-metal CSI Scheduling](https://github.com/dell/csi-baremetal-scheduling) - Kubernetes Scheduler and Scheduler Extender to guarantee correct pod placement
Installation process
--------------------
Installation process is documented in [Bare-metal CSI Operator](https://github.com/dell/csi-baremetal-operator)
Upgdare process
--------------------
Upgrade process is documented in [Bare-metal CSI Operator](https://github.com/dell/csi-baremetal-operator)
High level architecture
-----------------------
Bare-metal CSI driver consists from the following components:
- Operator - responsible for CSI deployment and lifecycle (upgrade, node add/remove, etc.)
- Scheduler extender - handles `filter` and `score` requests coming from scheduler, requests capacity reservation from Controller service
- Scheduler patcher - automates scheduler configuration patching, optional component
- Controller service - handles Create/Delete/Expand Volume requests
- Node service - handles Volume Stage/Unstage, Publish/Unpublish requests
- Drive manager - discovers locally attach disks (drives)
- Node controller - maintains persistent node IDs

Contribution
------
Please refer [Contribution Guideline](https://github.com/dell/csi-baremetal/blob/master/docs/CONTRIBUTING.md) fo details