Skip to content

ironcore-dev/ironcore-csi-driver

IronCore CSI Driver

REUSE status Go Report Card GitHub License PRs Welcome

This document provides an overview of the IronCore CSI Driver, its components, and usage instructions.

Overview

The IronCore CSI Driver is a Kubernetes storage plugin that enables the management of IronCore volumes as Kubernetes Persistent Volumes (PVs). The driver supports dynamic provisioning, mounting, and management of IronCore volumes.

Table of Contents

Prerequisites

  • Kubernetes cluster v1.20 or later
  • Go 1.16 or later for building the driver

Installation

To install the IronCore CSI Driver, clone the repository and build the binary using the following command:

git clone https://github.com/ironcore-dev/ironcore-csi-driver.git
cd ironcore-csi-driver
go build -o ironcore-csi-driver ./cmd

Configuration

The driver can be configured through environment variables and command-line flags.

Environment Variables

  • 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 IronCore driver namespace when the driver is running in controller mode.

Command-Line Flags

  • --target-kubeconfig: Path pointing to the target kubeconfig.
  • --ironcore-kubeconfig: Path pointing to the IronCore kubeconfig.
  • --driver-name: Override the default driver name. Default value is driver.CSIDriverName.

Usage

  1. Run the IronCore CSI Driver as a controller:
export X_CSI_MODE=controller
export VOLUME_NS=my-driver-namespace
./ironcore-csi-driver --target-kubeconfig=/path/to/target/kubeconfig --ironcore-kubeconfig=/path/to/ironcore/kubeconfig
  1. Run the IronCore CSI Driver as a node:
export X_CSI_MODE=node
export KUBE_NODE_NAME=my-node-name
./ironcore-csi-driver --target-kubeconfig=/path/to/target/kubeconfig --ironcore-kubeconfig=/path/to/ironcore/kubeconfig

Development

To contribute to the development of the IronCore CSI Driver, follow these steps:

  1. Fork the repository and clone your fork:
git clone https://github.com/yourusername/ironcore-csi-driver.git
cd ironcore-csi-driver
  1. Create a new branch for your changes:
$ git checkout -b my-new-feature
  1. Make your changes and commit them to your branch.

  2. Push your branch to your fork:

$ git push origin my-new-feature
  1. 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 Support

Feedback and contributions are always welcome!

Please report bugs, suggestions or post questions by opening a Github issue.

License

Apache License 2.0