Skip to content
This repository was archived by the owner on Aug 4, 2026. It is now read-only.

Repository files navigation

OSAC CSI Driver

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.

Architecture

The driver runs in two modes controlled by Kubernetes deployment topology:

  • Controller plugin (Deployment): Handles CreateVolume, DeleteVolume, ControllerPublishVolume, and ControllerUnpublishVolume by 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 the osac.backend key in the volume context set at creation time.

Build

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

Configuration

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

License

Apache License 2.0. See LICENSE.

About

OSAC CSI driver for persistent storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages