Warning
Be mindful of the content you commit to this repository. Do not commit any material containing Red Hat confidential content, including information about future product development plans.
The OSAC CSI driver is an aggregating meta-driver that presents a single CSI
identity (csi.osac.openshift.io) to Kubernetes and routes storage requests to
vendor-specific CSI drivers (NetApp Trident, VAST, Pure Storage) based on
storage tier resolution from the OSAC fulfillment service.
The driver runs in two modes controlled by Kubernetes deployment topology:
-
Controller plugin (Deployment): Handles
CreateVolume,DeleteVolume,ControllerPublishVolume, andControllerUnpublishVolumeby resolving the storage tier via the fulfillment service and proxying to the appropriate vendor CSI controller. -
Node plugin (DaemonSet): Handles
NodeStageVolume,NodePublishVolume, and related RPCs by routing to vendor node plugins based on theosac.backendkey in the volume context set at creation time.
make build # Build the binary
make test # Run tests
make lint # Run golangci-lint
make image-build # Build container image
make image-push # Push container image| Flag | Default | Description |
|---|---|---|
--csi-endpoint |
unix:///csi/osac/csi.sock |
CSI endpoint this driver listens on |
--node-id |
(required) | Node ID for NodeGetInfo |
--driver-name |
csi.osac.openshift.io |
CSI driver name |
--fulfillment-endpoint |
(empty, uses stub) | gRPC endpoint for the OSAC fulfillment service |
--vendor-sockets |
(empty) | Comma-separated backend=socketpath pairs |
Apache License 2.0. See LICENSE.