This document provides an overview of the OnMetal CSI Driver, its components, and usage instructions.
The OnMetal CSI Driver is a Kubernetes storage plugin that enables the management of OnMetal volumes as Kubernetes Persistent Volumes (PVs). The driver supports dynamic provisioning, mounting, and management of OnMetal volumes.
- Kubernetes cluster v1.20 or later
- Go 1.16 or later for building the driver
To install the OnMetal CSI Driver, clone the repository and build the binary using the following command:
git clone https://github.com/onmetal/onmetal-csi-driver.git
cd onmetal-csi-driver
go build -o onmetal-csi-driver ./cmd
The driver can be configured through environment variables and command-line flags.
X_CSI_MODE
: Set the CSI driver mode. Supported modes are node and controller.KUBE_NODE_NAME
: Set the Kubernetes node name when the driver is running in node mode.VOLUME_NS
: Set the OnMetal driver namespace when the driver is running in controller mode.
--target-kubeconfig
: Path pointing to the target kubeconfig.--onmetal-kubeconfig
: Path pointing to the OnMetal kubeconfig.--driver-name
: Override the default driver name. Default value isdriver.CSIDriverName
.
- Run the OnMetal CSI Driver as a controller:
export X_CSI_MODE=controller
export VOLUME_NS=my-driver-namespace
./onmetal-csi-driver --target-kubeconfig=/path/to/target/kubeconfig --onmetal-kubeconfig=/path/to/onmetal/kubeconfig
- Run the OnMetal CSI Driver as a node:
export X_CSI_MODE=node
export KUBE_NODE_NAME=my-node-name
./onmetal-csi-driver --target-kubeconfig=/path/to/target/kubeconfig --onmetal-kubeconfig=/path/to/onmetal/kubeconfig
To contribute to the development of the OnMetal CSI Driver, follow these steps:
- Fork the repository and clone your fork:
git clone https://github.com/yourusername/onmetal-csi-driver.git
cd onmetal-csi-driver
- Create a new branch for your changes:
$ git checkout -b my-new-feature
-
Make your changes and commit them to your branch.
-
Push your branch to your fork:
$ git push origin my-new-feature
- Create a pull request against the original repository.
Remember to keep your fork and branch up-to-date with the original repository before submitting a pull request.
Feedback and contributions are always welcome!
Please report bugs, suggestions or post questions by opening a Github issue.